第1章 大数据技术概述 1
1.1 大数据技术的主要内容 2
1.1.1 大数据技术框架 2
1.1.2 知识表示 4
1.1.3 知识发现模型 6
1.1.4 大数据分析基本技术 14
1.2 大数据技术的特征 18
1.2.1 分析全面的数据,而非随机抽样 18
1.2.2 重视数据的复杂性,弱化精确性 18
1.2.3 关注数据的相关性,而非因果关系 19
1.2.4 学习算法复杂度 19
1.3 大数据对计算机科学的冲击与挑战 20
1.3.1 机器学习 20
1.3.2 软件工程 30
1.3.3 算法设计 32
1.3.4 预测分析 33
1.3.5 推荐技术 36
1.3.6 存储技术 40
1.3.7 数据安全 42
1.3.8 可视化 45
1.3.9 数据库技术 46
1.3.10 数据挖掘 49
1.3.11 数据分析技术 54
1.3.12 计算机体系结构 55
1.4 大数据研究方法论 56
1.4.1 科学研究范式 56
1.4.2 数据密集型科学研究范式 57
1.5 常用的大数据计算框架 62
小结 63
第2章 大数据获取与存储 65
2.1 数据获取的定义与数据领域 66
2.1.1 数据获取定义 66
2.1.2 数据获取领域 66
2.2 NewSQL和NoSQL 69
2.2.1 典型的数据库架构 69
2.2.2 BigTatle数据库 72
2.2.3 MongoDB数据库 75
2.3 分布式文件系统 77
2.3.1 分布式文件系统的评价指标 78
2.3.2 Hadoop文件系统 79
2.3.3 NFS文件系统 85
2.4 虚拟存储技术 86
2.4.1 虚拟存储特点 87
2.4.2 虚拟存储的应用 87
2.5 云存储 88
2.5.1 云存储原理 88
2.5.2 网络结构 88
2.5.3 云的分类 89
2.6 分布式存储核心算法 90
2.6.1 哈希算法 90
2.6.2 一致性哈希算法 91
2.7 数据仓库与数据集市 95
2.7.1 数据仓库的特点 95
2.7.2 数据仓库的建立方法 97
2.7.3 数据集市 98
2.7.4 元数据 100
2.8 区块链技术 102
2.8.1 区块链技术原理 102
2.8.2 区块链技术特性 104
2.8.3 区块链分类 104
小结 105
第3章 大数据抽取技术 107
3.1 数据抽取技术概述 108
3.1.1 数据抽取的定义 108
3.1.2 数据映射与数据迁移 109
3.1.3 数据抽取程序 109
3.1.4 ETL 110
3.1.5 数据抽取方式 111
3.2 增量数据抽取技术 112
3.2.1 增量抽取的特点与策略 112
3.2.2 基于触发器的增量抽取方式 113
3.2.3 基于时间戳的增量抽取方式 114
3.2.4 全表删除插入方式 115
3.2.5 全表比对抽取方式 116
3.2.6 日志表方式 116
3.2.7 系统日志分析方式 117
3.2.8 基于CDC与物化视图的数据抽取 117
3.2.9 各种数据抽取机制的比较 120
3.3 非结构化数据抽取 122
3.3.1 非结构化数据类型 123
3.3.2 非结构化数据模型 123
3.3.3 非结构化数据组织 125
3.3.4 纯文本抽取通用程序库 127
3.4 Web数据抽取 128
3.4.1 Web数据抽取问题的提出 128
3.4.2 Web数据抽取的目的与分类 129
3.4.3 Web数据抽取方法 131
3.4.4 Web数据抽取过程 136
小结 137
第4章 大数据清洗技术 139
4.1 数据质量与数据清洗 140
4.1.1 数据质量 140
4.1.2 数据质量提高技术 143
4.1.3 数据清洗算法的衡量标准 146
4.1.4 数据清洗的过程与模型 146
4.1.5 数据清洗技术面临的问题 148
4.2 不完整数据的清洗方法 148
4.2.1 方法简介 148
4.2.2 基于k-NN近邻缺失数据的填充算法 154
4.2.3 基于决策树的缺失数据的填充算法 156
4.3 异常数据清洗 163
4.3.1 异常值产生的原因与检测方法分类 163
4.3.2 统计方法 164
4.3.3 基于邻近度的离群点检测 172
4.3.4 基于密度的离群点检测 173
4.3.5 基于聚类的异常数据检测技术 174
4.4 重复数据清洗 176
4.4.1 使用字段相似度识别重复值算法 177
4.4.2 数组中重复数据清除算法 177
4.4.3 搜索引擎快速去重算法 178
4.5 文本清洗 179
4.5.1 字符串匹配算法 179
4.5.2 文本相似度度量 181
4.5.3 文档去重算法 186
4.6 数据清洗的实现 187
4.6.1 数据清洗的步骤 187
4.6.2 数据清洗的工具 188
小结 188
第5章 大数据转换与约简 189
5.1 数据平滑 190
5.1.1 移动平均法 190
5.1.2 指数平滑法 193
5.1.3 分箱平滑法 198
5.1.4 普拉斯平滑法 200
5.2 数据规范化 200
5.2.1 最小-最大规范化方法 200
5.2.2 z分数规范化方法 201
5.2.3 小数定标规范化方法 201
5.3 数据泛化 202
5.3.1 空间数据支配泛化算法 202
5.3.2 非空间数据支配泛化算法 203
5.3.3 统计信息网格方法 203
5.4 数据约简 205
5.4.1 数据约简定义与策略 205
5.4.2 数据立方体聚集 206
5.4.3 维约简 207
5.5 数据压缩 211
5.6 数值约简 213
5.6.1 有参数值约简 214
5.6.2 无参数值约简 214
5.7 数值数据离散化与概念分层 216
5.7.1 基于数值属性的概念分层 216
5.7.2 数值数据的离散化 217
小结 223
第6章 大数据集成 225
6.1 数据集成技术概述 226
6.1.1 数据集成的概念与相关问题 226
6.1.2 数据集成的核心问题 229
6.1.3 数据集成的分类 230
6.2 数据迁移 232
6.2.1 内部数据移动 233
6.2.2 非结构化数据集成 234
6.2.3 将处理移动到数据端 235
6.3 数据集成模式 235
6.3.1 联邦数据库集成模式 236
6.3.2 中间件集成模式 237
6.3.3 数据仓库集成模式 238
6.4 数据集成系统 239
6.4.1 全局模式 240
6.4.2 语义映射 240
6.4.3 查询重写 241
6.5 数据集成系统的构建 241
6.5.1 模式之间映射关系的生成 241
6.5.2 适应性查询 241
6.5.3 XML 242
6.5.4 P2P数据管理 242
6.6 数据聚类集成 242
6.6.1 数据聚类集成概述 243
6.6.2 高维数据聚类集成 243
6.7 实时数据集成 246
6.7.1 基于中间件层的实时数据集成模式 246
6.7.2 基于数据源层和中间件层的实时数据集成模式 247
6.7.3 基于数据仓库和中间件层的集成模式 247
6.7.4 基于数据网格的实时数据集成模式 248
6.8 企业信息集成 249
6.8.1 数据集成对于企业信息系统的作用 250
6.8.2 企业信息集成的类型 250
6.8.3 企业信息集成的功能 251
6.8.4 信息集成的方法 252
小结 252
第7章 大数据分析 253
7.1 大数据分析定义与方法 254
7.1.1 大数据分析的类型 255
7.1.2 统计方法论 255
7.1.3 模型与构建 256
7.2 统计分析的基本方法 259
7.2.1 指标对比分析 259
7.2.2 分组分析 260
7.2.3 综合评价分析 261
7.2.4 指数分析 262
7.2.5 平衡分析 262
7.2.6 趋势分析 263
7.2.7 显著性检验 265
7.2.8 结构分析 268
7.2.9 因素分析 268
7.2.10 交叉分析 269
7.2.11 漏斗图分析 269
7.3 高级数据分析方法 270
7.3.1 动态分析 270
7.3.2 相关分析 271
7.3.3 回归分析 274
7.3.4 判别分析 278
7.3.5 对应分析 281
7.3.6 主成分分析 281
7.3.7 多维尺度分析 283
7.3.8 方差分析 286
7.4 预测分析 288
7.4.1 预测的基本原理 288
7.4.2 预测方法 289
7.4.3 主要的预测模型 291
7.4.4 大数据预测分析要素 293
7.4.5 大数据预测的步骤 294
7.5 大数据预测分析的应用趋势 295
7.5.1 大数据预测分析的演化 295
7.5.2 大数据预测分析相关问题 296
7.5.3 预测技术的应用 297
小结 298
第8章 数据挖掘 299
8.1 数据挖掘理论基础 300
8.1.1 数据挖掘是面向实际应用的技术 300
8.1.2 数据挖掘的理论基础 301
8.1.3 基于不同数据存储方式的数据挖掘 302
8.2 关联规则挖掘 304
8.2.1 频繁项目集生成算法 305
8.2.2 关联规则挖掘质量 308
8.3 分类 309
8.3.1 分类定义与分类步骤 309
8.3.2 基于距离的分类算法 310
8.3.3 决策树分类方法 311
8.3.4 贝叶斯分类 314
8.4 聚类方法 317
8.4.1 聚类算法分类 317
8.4.2 距离与相似性的度量 319
8.4.3 划分聚类方法 320
8.4.4 层次聚类方法 322
8.4.5 密度聚类方法 323
8.5 序列模式挖掘 325
8.5.1 时间序列预测的常用方法 325
8.5.2 序列模式挖掘 326
8.6 Web挖掘技术 328
8.6.1 Web内容挖掘方法 328
8.6.2 Web访问信息挖掘方法 331
8.6.3 Web结构挖掘方法 333
8.7 空间数据挖掘 334
8.7.1 空间统计学 335
8.7.2 空间聚类算法 336
8.8 非结构化文本数据挖掘 339
8.8.1 用户反馈文本 340
8.8.2 用户反馈文本挖掘的一般过程 341
8.8.3 文本的自然语言处理 343
小结 344
第9章 大数据分析结果解释 345
9.1 数据分析结果的解释 346
9.1.1 数据解释的目的与主要内容 346
9.1.2 检查和验证假设 346
9.1.3 追踪分析过程 348
9.2 数据的基本展现方式 348
9.2.1 基于时间变化的可视化展现 349
9.2.2 由大及小的可视化展现 349
9.2.3 由小及大的可视化展现 349
9.2.4 突出对比的可视化展现 350
9.2.5 地域空间可视化展现 351
9.2.6 概念可视化展现 354
9.2.7 气泡图可视化展现 354
9.2.8 注重交叉点的数据可视化展现 355
9.2.9 剖析原因的数据可视化展现 355
9.2.10 描绘出异常值 355
9.3 大数据可视化 355
9.3.1 文本可视化 355
9.3.2 网络(图)可视化 358
9.3.3 时空数据可视化 360
9.3.4 多维数据可视化 362
9.4 大数据可视分析 363
9.4.1 可视分析的理论基础 364
9.4.2 大数据可视分析技术 368
小结 371
第10章 大数据离线计算技术 373
10.1 数据离线计算概述 374
10.1.1 大数据离线处理特点 374
10.1.2 批量计算 374
10.2 MapReduce的体系结构 375
10.2.1 MapReduce计算描述 375
10.2.2 MapReduce适用情况 377
10.3 Hadoop分布式计算平台 377
10.3.1 Hadoop的结构与特点 378
10.3.2 分布式系统与Hadoop 380
10.3.3 SQL数据库与Hadoop 381
10.3.4 基于Hadoop框架的分布计算 382
10.3.5 单数计数程序分析 387
小结 390
第11章 大数据流式计算技术 391
11.1 流式数据的概念与特征 392
11.1.1 流式数据的概念 392
11.1.2 流式数据源 393
11.1.3 流式数据的特征 395
11.1.4 实时流计算的场景 396
11.2 大数据的流式计算模式 397
11.2.1 大数据流式计算模型 398
11.2.2 大数据流式计算与批量计算的比较 398
11.2.3 流式计算与实时计算的区别 400
11.3 数据流处理 400
11.3.1 流式数据处理器 400
11.3.2 流式计算的问题 401
11.4 流式计算的场景 402
11.4.1 基本流式计算 402
11.4.2 流式查询 403
11.4.3 流式抽样 404
11.4.4 统计独立元素数 405
11.4.5 去重计数 406
11.4.6 流过滤 411
11.4.7 矩估计 413
11.4.8 基于窗口计数 414
11.5 流式计算的系统架构 418
11.5.1 对称式系统架构 418
11.5.2 主从式系统架构 419
11.5.3 数据传输方式 419
11.5.4 编程接口 420
11.6 高可用技术 420
11.6.1 被动等待策略 420
11.6.2 主动等待策略 421
11.6.3 上游备份策略 421
11.7 Storm流式数据处理平台 422
11.7.1 Storm的特点与架构 422
11.7.2 Topology 426
11.7.3 Spout和Bolt 427
11.7.4 数据流组 427
11.7.5 Storm流式数据处理平台的并发机制 429
11.8 单词计数Topology 431
11.8.1 单词计数Topology的数据流 431
11.8.2 单词计数Topology程序设计 432
小结 438
第12章 大数据交互式处理技术 439
12.1 交互式处理系统的问题 440
12.2 数据切分 441
12.2.1 数据切分的概念 441
12.2.2 数据切分的目的 442
12.3 数据钻取 442
12.3.1 向上钻取 442
12.3.2 向下钻取 443
12.3.3 钻取到模板 443
12.3.4 在图形上钻取 443
12.4 Scala编程语言简介 443
12.4.1 Scala语言特性 443
12.4.2 Scala程序执行方式与基本语法 445
12.5 交互式大数据处理框架Spark 459
12.5.1 Spark的主要特点 459
12.5.2 软件栈 460
12.5.3 核心概念 463
12.5.4 RDD 464
12.5.5 实例分析与编程 480
12.6 交互式查询 481
12.6.1 交互式查询的主要方法 481
12.6.2 Spark交互式查询 482
小结 482
参考文献 483