《寻路大数据 :海量数据与大规模分析》是一本系统化解读大数据工程处理基础技术的书籍。技术热潮已然催生了形形色色的大数据处理技术及工具,但重要的并非鱼与熊掌的孰优孰劣,而是如何选择或组合这些技术并应用于实现不同的商业目标。
《寻路大数据 :海量数据与大规模分析》正是从这个角度评估了针对不同使用场景的大数据处理技术,从而帮助技术负责人及架构师做出不同的选型决策。我很高兴看到了这《寻路大数据 :海量数据与大规模分析》的出版,它必将有益于大数据技术的各种具体实践。
目录
- 第1 部分 大数据时代指引 1
- 第1 章 数据成功四原则 3
- 1.1 当数据成为一件“大”事 3
- 1.2 数据和单台服务器 4
- 1.3 大数据的权衡 5
- 1.3.1 构建可(限)扩展的解决方案 6
- 1.3.2 构建可(在互联网上)共享数据的系统 7
- 1.3.3 构建解决方案,而非基础设施 8
- 1.3.4 关注从数据中解放价值 8
- 1.4 大数据流水线剖析 9
- 1.5 终极数据库 10
- 1.6 总结 10
- 第2 部分 收集和共享海量数据 13
- 第2 章 托管和共享TB 级原始数据 15
- 2.1 文件之殇 16
- 2.1.1 共享大量文件的挑战 16
- 2.2 存储:基础设施即服务 17
- 2.2.1 网络很慢 18
- 2.3 选择合适的数据格式 18
- 2.3.1 XML :数据,描述你自己 20
- 2.3.2 JSON :程序员的选择 21
- 2.4 字符编码 22
- 2.4.1 文件转换 24
- 2.5 移动中的数据:数据序列化格式 25
- 2.5.1 Apache Thrift 和Protocol Buffers 26
- 2.6 总结 27
- 第3 章 构建基于NoSQL 的Web 应用采集众包数据 29
- 3.1 关系型数据库:命令及控制 30
- 3.1.1 关系数据库的ACID 测试 32
- 3.2 当关系型数据库遇上互联网 33
- 3.2.1 CAP 原理与BASE 34
- 3.3 非关系型数据库的模式 36
- 3.3.1 键- 值数据库 36
- 3.3.2 文档存储 38
- 3.4 为写入性能优化:Redis 40
- 3.5 在多个Redis 实例上分片 43
- 3.5.1 使用Twemproxy 自动分区 44
- 3.5.2 Redis 的替代选项 46
- 3.6 NewSQL :Codd 归来 46
- 3.7 总结 47
- 第4 章 解决数据孤岛问题的策略 49
- 4.1 堆满术语的仓库 49
- 4.1.1 实践中的问题 51
- 4.1.2 数据合规与安全规划 52
- 4.1.3 走进数据仓库 53
- 4.1.4 数据仓库的口诀:抽取、转换和加载 54
- 4.2 Hadoop :数据仓库中的大象 55
- 4.3 数据孤岛也可能是个优点 55
- 4.3.1 专注于数据问题,而不是技术 56
- 4.3.2 鼓励员工提出他们自己的问题 57
- 4.3.3 投资沟通数据孤岛的技术 57
- 4.4 融合:数据孤岛的终结 58
- 4.4.1 Luhn 的商业智能系统是否能成为现实 59
- 4.5 总结 59
- 第3 部分 数据探究 61
- 第5 章 使用Hadoop、Hive 和Shark 探索大规模数据集 63
- 5.1 什么是数据仓库 64
- 5.2 Apache Hive :在Hadoop 上进行交互式查询 66
- 5.2.1 Hive 用例 66
- 5.2.2 Hive 实战 67
- 5.2.3 在Hive 中使用其他数据源 71
- 5.3 Shark :以内存的速度进行查询 72
- 5.4 云中的数据仓库 73
- 5.5 总结 74
- 第6 章 使用Google BigQuery 构建数据信息中心 77
- 6.1 分析型数据库 78
- 6.2 Dremel :均贫富 79
- 6.2.1 Dremel 与MapReduce 的不同之处 80
- 6.3 BigQuery :数据分析即服务 81
- 6.3.1 BigQuery 的查询语言 82
- 6.4 建造自己的大数据信息面板 83
- 6.4.1 授权访问BigQuery API 84
- 6.4.2 运行查询并获取结果 87
- 6.4.3 缓存查询结果 88
- 6.4.4 添加可视化图形 89
- 6.5 分析型查询引擎的未来 91
- 6.6 总结 91
- 第7 章 探索大数据的可视化策略 93
- 7.1 警世良言:将数据翻译成故事 94
- 7.2 人类尺度 VS 机器尺度 97
- 7.2.1 交互性 97
- 7.3 开发交互式数据应用 98
- 7.3.1 使用R 和ggplot2 实现交互式可视化 98
- 7.3.2 matplotlib: Python 的2D 图形库 100
- 7.3.3 D3.js :用于Web 的交互式可视化库 100
- 7.4 总结 104
- 第4 部分 构建数据流水线 107
- 第8 章 整合:MapReduce 数据流水线 109
- 8.1 数据流水线是什么 109
- 8.1.1 正确的工具 110
- 8.2 使用Hadoop Streaming 搭建数据流水线 111
- 8.2.1 MapReduce 和数据转换 111
- 8.2.2 最简单的流水线:stdin 到stdout 113
- 8.3 单步MapReduce 变换 115
- 8.3.1 从原始NVSS 数据中抽取相关信息:map 阶段 116
- 8.3.2 合计每月出生数:reducer 阶段 117
- 8.3.3 在本地测试MapReduce 流水线 118
- 8.3.4 在Hadoop 集群上运行我们的MapReduce 作业 119
- 8.4 降低复杂性:Hadoop 上Python 的MapReduce 框架 120
- 8.4.1 使用mrjob 重写Hadoop Streaming 示例 121
- 8.4.2 建造一个多步流水线 122
- 8.4.3 在Elastic MapReduce 上运行mrjob 脚本 124
- 8.4.4 其他基于Python 的MapReduce 框架 125
- 8.5 总结 125
- 第9 章 使用Pig 和Cascading 构建数据转换工作流 127
- 9.1 大规模数据工作流实战 128
- 9.2 多步MapReduce 转换真复杂 128
- 9.2.1 Apache Pig :拒绝复杂 129
- 9.2.2 使用交互式Grunt shell 运行Pig 130
- 9.2.3 过滤和优化数据工作流 132
- 9.2.4 以批处理模式运行Pig 脚本 132
- 9.3 Cascading :构建健壮的数据工作流应用 133
- 9.3.1 以source 和sink 的方式思考 134
- 9.3.2 构建Cascading 应用 135
- 9.3.3 创建一个Cascade :一个简单的JOIN 例子 136
- 9.3.4 在Hadoop 集群上部署Cascading 应用 138
- 9.4 何时选择Pig 或Cascading 139
- 9.5 总结 140
- 第5 部分 基于大规模数据集的机器学习 141
- 第10 章 使用Mahout 构建数据分类系统 143
- 10.1 机器能否预测未来 144
- 10.2 机器学习的挑战 144
- 10.2.1 贝叶斯分类 146
- 10.2.2 聚类 146
- 10.2.3 推荐引擎 148
- 10.3 Apache Mahout :可伸缩的机器学习工具 148
- 10.3.1 使用Mahout 进行文本分类 149
- 10.4 MLbase :分布式机器学习框架 152
- 10.5 总结 152
- 第6 部分 基于大规模数据集的统计分析 155
- 第11 章 使用R 语言处理大数据集 157
- 11.1 统计学为什么性感 158
- 11.1.1 R 处理大型数据集的局限性 159
- 11.1.2 R 的数据帧和矩阵 161
- 11.2 处理大数据集的策略 162
- 11.2.1 大矩阵处理:bigmemory 和biganalytics 162
- 11.2.2 ff: 使用大于内存的数据帧 164
- 11.2.3 biglm :大规模数据集的线性回归 165
- 11.2.4 RHadoop: 使用R 访问Apache Hadoop 166
- 11.3 总结 168
- 第12 章 使用Python 和Pandas 构建分析工作流 171
- 12.1 数据乐园中自在的蟒蛇――Python 172
- 12.1.1 为统计性计算选择一门语言 172
- 12.1.2 扩展现有代码 173
- 12.1.3 工具和测试 174
- 12.2 用于数据处理的Python 库 174
- 12.2.1 NumPy 175
- 12.2.2 SciPy :Python 的科学计算库 176
- 12.2.3 数据分析库Pandas 178
- 12.3 构建更复杂的工作流 182
- 12.3.1 处理损坏或丢失的记录 184
- 12.4 iPython :科学计算工具链的最后一环 185
- 12.4.1 在集群上并行执行iPython 186
- 12.5 总结 190
- 第7 部分 展望未来 191
- 第13 章 何时选择自制、购买或外包 193
- 13.1 功能重合的解决方案 193
- 13.2 理解你的数据问题 195
- 13.3 自制还是购买问题的参考手册 197
- 13.3.1 你已经对哪些技术有所投入 197
- 13.3.2 从小处着手 198
- 13.3.3 规划时考虑可扩展性 198
- 13.4 私人数据中心 199
- 13.5 了解开源的成本 201
- 13.6 一切皆服务 202
- 13.7 总结 202
- 第14 章 未来:数据科技的几个趋势 205
- 14.1 Hadoop :搅局者与被搅局者 206
- 14.2 一切皆在云中 208
- 14.3 数据科学家的兴衰 209
- 14.4 融合:终极数据库 212
- 14.5 文化融合 213
- 14.6 总结 214