具体描述
ODPS(Open Data Processing Service)是阿里巴巴自主研发的海量数据处理和分析的服务平台,主要应用于数据分析、海量数据统计、数据挖掘、机器学习和商业智能等领域。目前,ODPS不仅在阿里内部得到广泛应用,享有很好的口碑,正逐步走向第三方开放市场。
本书是学习和掌握ODPS的权威指南,作者来自阿里ODPS团队。全书共13章,主要内容包括:ODPS入门、整体架构、数据通道、MapReduce编程、SQL查询分析、安全,以及基于真实数据的各种场景分析实战。本书基于很多范例解析,通过在各种应用场景下的示例来说明如何通过ODPS完成各种需求,以期引导读者从零开始轻松掌握和使用ODPS。同时,本书不局限于示例分析,也致力于提供更多关于大数据处理的编程思想和经验分享。书中所有示例代码都可以在作者提供的网站上免费下载。
本书是学习和掌握ODPS的权威指南,作者来自阿里ODPS团队。
本书包括以下重要内容:
ODPS概览及其基本知识;
如何高效地使用ODPS SQL;
MapReduce编程和进阶应用;
ODPS机器学习算法;
ODPS权限、资源和数据管理;
深入了解ODPS体系结构和高级机制。
书中所有示例代码都可以通过https://github.com/duckrun/odps_book免费下载。
本书适合想要了解和使用ODPS的读者阅读学习,对于从事大数据存储和应用以及分布式计算的专业人士来说,也是很好的参考资料。
作者简介
李妹芳,阿里数据平台事业部工程师,曾译有《Linux系统编程》、《数据之美》、《数据可视化之美》等书,她喜欢儿童文学,她的微博是http://weibo.com/duckrun。
目录信息
第1章 ODPS概述 9
1.1 引言 9
1.2 初识ODPS 9
1.2.1 背景和挑战 9
1.2.2 为什么做ODPS 10
1.2.3 ODPS是什么 10
1.2.4 ODPS做什么 11
1.3 基本概念 11
1.3.1 账号(Account) 12
1.3.2 项目空间(Project) 13
1.3.3 表(Table) 13
1.3.4 分区(Partition) 14
1.3.5 任务(Task)、作业(Job)和作业实例(Instance) 14
1.3.6 资源(Resource) 14
1.4 应用开发模式 15
1.4.1 RESTful API 15
1.4.2 ODPS SDK 18
1.4.3 ODPS CLT 18
1.4.4 管理控制台 18
1.4.5 IDE 18
1.5 一些典型场景 19
1.5.1 阿里金融数据仓库 19
1.5.2 CNZZ数据仓库 19
1.5.3 支付宝账号影响力圈 19
1.5.4 阿里金融水文衍生算法 19
1.5.5 阿里妈妈广告CTR预估 20
1.6 现状和前景 20
1.7 小结 21
第2章 ODPS入门 22
2.1 准备工作 22
2.1.1 创建云账号 22
2.1.2 开通ODPS服务 24
2.2 使用管理控制台 24
2.3 配置ODPS客户端 26
2.3.1 下载和配置CLT 26
2.3.2 准备dual表 28
2.3.3 CLT运行模式 30
2.3.4 下载和配置dship 30
2.3.5 通过dship上传下载数据 31
2.4 网站日志分析实例 32
2.4.1 场景和数据说明 32
2.4.2 需求分析 33
2.4.3 数据准备 33
2.4.4 创建表并添加分区 34
2.4.5 数据解析和导入 35
2.4.6 数据加工 39
2.4.7 数据分析 43
2.4.8 自动化运行 47
2.4.9 应用数据集市 49
2.4.10 结果导出 51
2.4.11 结果展现 51
2.4.12 删除数据 53
2.5 小结 53
第3章 收集海量数据 54
3.1 DSHIP工具 54
3.2 收集WEB日志 56
3.2.1 场景和需求说明 56
3.2.2 问题分析和设计 56
3.2.3 实现说明 57
3.2.4 进一步探讨 59
3.2.5 为什么这么难 61
3.3 MYSQL数据同步到ODPS 61
3.3.1 场景和需求说明 61
3.3.2 问题分析和实现 61
3.3.3 进一步探讨 63
3.4 下载结果表 63
3.5 小结 63
第4章 使用SQL处理海量数据 64
4.1 ODPS SQL是什么 64
4.2 入门示例 64
4.2.1 场景说明 64
4.2.2 简单的DDL操作 64
4.2.3 生成数据 68
4.2.4 单表查询 69
4.2.5 多表连接JOIN 71
4.2.6 高级查询 79
4.2.7 多表关联UNION ALL 87
4.2.8 多路输出(MULTI-INSERT) 88
4.3 网站日志分析 88
4.3.1 准备数据和表 89
4.3.2 维度表 89
4.3.3 访问路径分析 96
4.3.4 TopK查询 97
4.3.5 IP黑名单 98
4.4 天猫品牌预测 103
4.4.1 主题说明和前期准备 103
4.4.2 理解数据 104
4.4.3 两个简单的实践 106
4.4.4 问题分析和算法设计 108
4.4.5 生成特征 109
4.4.6 抽取正负样本 111
4.4.7 生成模型 114
4.4.8 验证模型 115
4.4.9 预测结果 118
4.4.10 进一步探讨 118
4.5 小结 118
第5章 SQL进阶 120
5.1 UDF是什么 120
5.2 入门示例 120
5.3 实际应用案例 122
5.3.1 URL解码 122
5.3.2 简单的LBS应用 123
5.3.3 网站访问日志UserAgent解析 125
5.4 SQL实现原理 129
5.4.1 词法分析 130
5.4.2 语法分析 130
5.4.3 逻辑分析 130
5.4.4 物理分析 136
5.5 SQL调优 137
5.5.1 数据倾斜 137
5.5.2 一些优化建议 140
5.5.3 一些注意事项 141
5.6 小结 141
第6章 通过TUNNEL迁移数据 142
6.1 ODPS TUNNEL 是什么 142
6.2 入门示例 142
6.2.1 下载和配置 142
6.2.2 准备数据 142
6.2.3 上传数据 143
6.2.4 下载数据 148
6.3 TUNNEL原理 149
6.3.1 数据如何传输 149
6.3.2 客户端和服务端如何交互 150
6.3.3 如何实现高并发 151
6.4 从HADOOP迁移到ODPS 151
6.4.1 问题分析 151
6.4.2 客户端实现和分析 152
6.4.3 Mapper实现和分析 155
6.4.4 编译和运行 157
6.4.5 进一步探讨 159
6.5 一些注意点 159
6.6 小结 160
第7章 使用MAPREDUCE处理数据 161
7.1 MAPREDUCE编程模型 161
7.2 MAPREDUCE应用场景 163
7.3 初识ODPS MAPREDUCE 164
7.4 入门示例 165
7.4.1 准备工作 165
7.4.2 问题分析 165
7.4.3 代码实现和分析 166
7.4.4 运行和输出分析 169
7.4.5 扩展:使用Combiner? 171
7.5 TOPK查询 173
7.5.1 场景和数据说明 174
7.5.2 问题分析 174
7.5.3 具体实现分析 175
7.5.4 运行和结果输出 179
7.5.5 扩展:忽略Stop Words 180
7.5.6 扩展:数据和任务统计 182
7.5.7 扩展: MR2模型 184
7.6 SQL和MAPREDUCE,用哪个? 186
7.7 小结 186
第8章 MAPREDUCE进阶 187
8.1 再谈SHUFFLE & SORT 187
8.2 好友推荐 188
8.2.1 场景和数据说明 188
8.2.2 问题定义和分析 189
8.2.3 代码实现 190
8.3 LBS应用探讨:周边定位 193
8.3.1 场景和数据说明 193
8.3.2 问题定义和分析 194
8.3.3 代码实现和分析 195
8.3.4 运行和测试 199
8.4 MAPREDUCE调试 200
8.4.1 带bug的代码 200
8.4.2 通过本地模式调试 201
8.4.3 通过Counter调试 201
8.4.4 通过log调试 202
8.5 一些注意点 203
8.6 小结 204
第9章 机器学习算法 205
9.1 初识ODPS算法 205
9.2 入门示例 205
9.2.1 通过CLT统计分析 205
9.2.2 通过XLab统计分析 207
9.3 几个经典的算法 209
9.3.1 逻辑回归 209
9.3.2 随机森林 210
9.4 天猫品牌预测 211
9.4.1 逻辑回归 211
9.4.2 随机森林 218
9.4.3 脚本实现和自动化 228
9.4.4 进一步探讨 231
9.5 小结 232
第10章 使用SDK访问ODPS服务 233
10.1 主要的PACKAGE和接口 233
10.1.1 主要的Package 233
10.1.2 核心接口 233
10.2 入门示例 233
10.3 基于ECLIPSE插件开发 235
10.4 小结 236
第11章 ODPS账号、资源和数据管理 237
11.1 权限管理 237
11.1.1 账号授权 237
11.1.2 角色(Role)授权 240
11.1.3 ACL授权特点 241
11.1.4 简单的Policy授权 242
11.1.5 Role Policy 243
11.1.6 ACL授权和Policy授权小结 245
11.2 资源管理 245
11.2.1 Project内的资源管理 246
11.2.2 跨Project的资源共享 246
11.3 数据管理 247
11.3.1 表生命周期 248
11.3.2 数据归并(Merge) 249
11.3.3 数据保护(Project Protection) 249
11.4 小结 251
第12章 深入了解ODPS 253
12.1 体系架构 253
12.1.1 客户端 254
12.1.2 接入层 254
12.1.3 逻辑层 254
12.1.4 存储/计算层 255
12.2 执行流程 256
12.2.1 提交作业 256
12.2.2 运行作业 256
12.2.3 查询作业状态 256
12.2.4 执行逻辑图 256
12.3 底层数据存储 257
12.3.1 CFILE是什么 257
12.3.2 CFILE逻辑结构 257
12.4 内聚式框架 258
12.4.1 元数据 258
12.4.2 运维管理 258
12.4.3 多控制集群和多计算集群 259
12.5 跨集群复制 260
12.5.1 数据迁移 260
12.5.2 跨集群同步 261
12.6 小结 264
第13章 探索ODPS之美 265
13.1 R语言数据探索 265
13.1.1 安装和配置 265
13.1.2 一些基本操作 265
13.1.3 分析建模 265
13.2 实时流计算 267
13.3 图计算模型 268
13.4 准实时SQL 269
13.5 机器学习平台 270
附录一 ODPS消息认证机制 271
后记 274
· · · · · · (收起)
读后感
谈起ODPS,还得从阿里金融的故事说起。一直以来,阿里金融始终是ODPS的第一客户,见证了ODPS一路的成长历程。几年的坚持和信任,我们一起走了过来,而且越走越好。 2010年初,集群规模只有几十台,为了完成阿里金融的信贷产品的模型计算,每天增量同步1TB左右的数据,执行几十...
谈起ODPS,还得从阿里金融的故事说起。一直以来,阿里金融始终是ODPS的第一客户,见证了ODPS一路的成长历程。几年的坚持和信任,我们一起走了过来,而且越走越好。 2010年初,集群规模只有几十台,为了完成阿里金融的信贷产品的模型计算,每天增量同步1TB左右的数据,执行几十...
谈起ODPS,还得从阿里金融的故事说起。一直以来,阿里金融始终是ODPS的第一客户,见证了ODPS一路的成长历程。几年的坚持和信任,我们一起走了过来,而且越走越好。 2010年初,集群规模只有几十台,为了完成阿里金融的信贷产品的模型计算,每天增量同步1TB左右的数据,执行几十...
谈起ODPS,还得从阿里金融的故事说起。一直以来,阿里金融始终是ODPS的第一客户,见证了ODPS一路的成长历程。几年的坚持和信任,我们一起走了过来,而且越走越好。 2010年初,集群规模只有几十台,为了完成阿里金融的信贷产品的模型计算,每天增量同步1TB左右的数据,执行几十...
谈起ODPS,还得从阿里金融的故事说起。一直以来,阿里金融始终是ODPS的第一客户,见证了ODPS一路的成长历程。几年的坚持和信任,我们一起走了过来,而且越走越好。 2010年初,集群规模只有几十台,为了完成阿里金融的信贷产品的模型计算,每天增量同步1TB左右的数据,执行几十...
用户评价
这本书的编排结构给我一种“由繁化简”的魔力感。很多大数据平台的概念本身就容易让人迷失在术语的海洋里,但这本书的作者显然深谙此道,他总能找到最简洁、最贴近现实的类比来解释那些晦涩难懂的技术细节。我特别喜欢其中关于资源调度和成本控制的章节,作者用生动的比喻说明了并行度设置对集群负载的影响,让我这个以前只知道跑任务的人,开始真正关心起背后的资源哲学。翻阅时,我能感受到作者投入的巨大心血,不仅仅是知识的搬运工,更是智慧的提炼者。很多地方的讲解,那种“顿悟”的感觉,是其他很多资料无法给予的。对于那些追求效率和精度的技术人员,这本书无疑是打开新世界大门的一把钥匙,它让你学会如何更聪明地使用工具,而不是被工具所奴役。
这本书的封面设计很吸引人,那种深邃的蓝色配上金色的字体,一看就是本很有分量的专业书籍。我刚翻开目录,就被它详尽的结构给镇住了。从基础概念的梳理到高级应用的深入探讨,几乎涵盖了所有你能想到的方面。尤其是关于数据治理和安全性的章节,讲得非常透彻,很多我之前在实际工作中感到模糊的地方,通过书中的图解和案例分析,一下子就清晰明了了。作者显然是科班出身,逻辑严密,行文流畅,即便是初学者也能循序渐进地跟上节奏。我特别欣赏它不是那种干巴巴的理论堆砌,而是大量穿插了“实战经验谈”,这些小贴士对于我们这些一线工程师来说,简直是无价之宝。读完前几章,我感觉自己对整个数据平台的认知框架都被重新梳理了一遍,对未来项目的规划也更有信心了。希望接下来的内容能继续保持这种水准,这本书绝对是值得放在案头随时翻阅的工具书。
我拿到这本书时,第一印象是它的厚度,但随后的阅读体验证明,每一页的重量都是值得的。这本书的亮点之一在于其与时俱进的视角。它没有沉溺于过时的技术栈,而是聚焦于当下最前沿、最成熟的实践方法论。特别是在讨论平台扩展性和容错机制时,作者分享了一些独家的调优经验,这些细节在公开论坛上是很难搜集到的孤本信息。例如,关于如何构建一个高可用的容灾备份策略,书中的模型设计,我打算立即在下一季度的工作计划中引入试点。这本书的文字密度很高,信息量爆炸,但阅读起来却不觉得累,因为作者总能在关键节点提供总结性的概括或者对比性的表格,帮助读者消化吸收海量信息。毫无疑问,这是一部凝聚了大量实战经验的集大成之作,它不仅教授了技能,更塑造了一种严谨、务实的技术信仰。
说实话,我买了很多号称“权威”的技术书籍,很多都是名不副实,内容陈旧或者泛泛而谈。但这一本,读起来完全是另一种感受。它的深度和广度都超出了我的预期。我最喜欢的是它对不同业务场景下,如何灵活运用平台特性的分析。比如,在处理实时流数据和批处理数据融合的章节,作者并没有简单地给出几种方案,而是对比了每种方案的性能瓶颈、资源消耗和维护成本,这种全方位的考量,才是真正体现了“权威”二字的价值。我昨天对照着书里的最佳实践,优化了一个我们系统中的查询脚本,效率提升了近三成,这直接的收益让我对这本书的推崇度直线上升。这本书的排版也很用心,关键代码片段都用醒目的颜色标注出来,阅读体验非常舒适,长时间阅读也不会感到视觉疲劳。强烈推荐给那些不仅想知道“怎么做”,更想知道“为什么这么做”的技术同仁们。
我一直认为,衡量一本技术书的价值,不在于它包含了多少知识点,而在于它能帮你建立起多少有效的思考模型。这本书在这方面做得极其出色。它不仅仅是一本操作手册,更像是一位资深架构师在手把手地教你如何从宏观角度去设计和维护一个复杂的数据生态系统。尤其是关于元数据管理和数据血缘追踪的那部分,逻辑链条清晰到令人叹服,解决了我们团队长期以来在数据溯源上遇到的老大难问题。作者的语言风格非常沉稳、专业,没有丝毫浮夸,每一个论断都有数据或理论作为支撑,让人不得不信服。我甚至发现,书中的一些概念解析,比官方文档还要精炼易懂,简直是为快速上手和深入理解搭建了一座坚固的桥梁。对于那些希望从初级工程师跃升到架构师层级的人来说,这本书的战略指导意义是无法估量的。
阿里移动算法推荐比赛有那么一点儿用指南。。。
如果你只是想学会这么用odps,看这本就够用了。
粗略的翻完一遍,感觉只适合一种软件体系,没有太多可扩展或借鉴的地方。纯属阿里自己产品的说明书,使用此款产品的人应该很受用。没有其他感受。
不是很详细,可以阅读,看看以后哪些场景,自己可以利用odps平台去做。感慨一下,odps的功能,我们仅用到他的10%都不到。对于了解odps能应用到哪些场景,这本书,还是不错的。
不是很详细,可以阅读,看看以后哪些场景,自己可以利用odps平台去做。感慨一下,odps的功能,我们仅用到他的10%都不到。对于了解odps能应用到哪些场景,这本书,还是不错的。