编辑推荐
2014年天猫双11购物狂欢节成交额创下了571.12亿元的纪录!
交易创建峰值能力达到每秒钟8万笔,支付宝的支付峰值突破了每分钟285万笔。
成功创下这项纪录背后,有ODPS很大的功劳!
阿里巴巴集团副总裁刘振飞表示,云计算在今年双11 起到了非常重要的基础性作用。天猫、淘宝、支付宝的大数据处理,都是基于阿里云计算的大数据处理平台ODPS 完成,ODPS为天猫双十一的商品个性化推荐提供了技术支持,这是自主研发能力的一个很大提升。
ODPS(Open Data Processing Service)是阿里巴巴自主研发的海量数据处理和分析的服务平台,主要应用于数据分析、海量数据统计、数据挖掘、机器学习和商业智能等领域。目前,ODPS不仅在阿里内部得到广泛应用,享有很好的口碑,正逐步走向第三方开放市场
本书是学习和掌握ODPS的专业指南,作者来自阿里ODPS团队。
本书包括以下重要内容:
ODPS概览及其基本知识;
如何高效地使用ODPS SQL;
MapReduce编程和进阶应用;
ODPS机器学习算法;
ODPS权限、资源和数据管理;
深入了解ODPS体系结构和高级机制。
书中所有示例代码都可以通过https://github.com/duckrun/odps_book免费下载。
内容简介
ODPS(Open Data Processing Service)是阿里巴巴自主研发的海量数据处理和分析的服务平台,主要应用于数据分析、海量数据统计、数据挖掘、机器学习和商业智能等领域。目前,ODPS不仅在阿里内部得到广泛应用,享有很好的口碑,正逐步走向第三方开放市场。
本书是学习和掌握ODPS的专业指南,作者来自阿里ODPS团队。全书共13章,主要内容包括:ODPS入门、整体架构、数据通道、MapReduce编程、SQL查询分析、安全,以及基于真实数据的各种场景分析实战。本书基于很多范例解析,通过在各种应用场景下的示例来说明如何通过ODPS完成各种需求,以期引导读者从零开始轻松掌握和使用ODPS。同时,本书不局限于示例分析,也致力于提供更多关于大数据处理的编程思想和经验分享。书中所有示例代码都可以在作者提供的网站上免费下载。
本书适合想要了解和使用ODPS的读者阅读学习,对于从事大数据存储和应用以及分布式计算的专业人士来说,也是很好的参考资料。
作者简介
李妹芳,阿里数据平台事业部工程师,曾译有《Linux系统编程》、《数据之美》、《数据可视化之美》等书
精彩书评
如果你有大数据分析处理方面的实际需求,可以考虑阿里云自主研制的海量数据处理服务ODPS,而如何使用ODPS快速解决你的实际问题,这本书告诉你。
——清华大学计算机系 教授、博士生导师 武永卫
ODPS可为企业管理海量数据提供很好的支持,包括海量数据存储、数据仓库构建、数据统计和挖掘、机器学习和商业智能管理等。ODPS将为您低成本地管理海量数据提供安全、正确、稳定的优质服务。本书以用户应用为中心,简明地介绍了ODPS的功能和先进技术,并融入了许多应用案例。该书将带您轻松走进ODPS。
——东北大学信息科学与工程学院 教授、博士生导师 申德荣
云计算大数据是非常宏大的主题,这本书通过示例和原理结合的方式,从读者角度,通过实践可以更容易理解。书中示例涉及网站日志分析、LBS和推荐,这些都是非常主流的领域。我相信读者会喜欢这本书。
——美国斯坦福大学博士、加利福尼亚大学(UC San Diego)终身教授/博导 祝效国 (Kevin Zhu)
本书内容不仅包括ODPS的使用指南和独到的注解,也会对涉及数据处理相关的知识点与工具详加注释。……这本书对深入了解ODPS内核无疑也是很好的敲门砖。
——徐常亮 阿里技术专家(ODPS技术负责人)
古语说得好,有容乃大!当“大”数据遇到ODPS这种体量的“容”器,数据变得触手可得。愿这本书为你和ODPS、大数据之间建立起一座桥梁。
——陈鹏宇(不老) 阿里高级数据仓库专家(ODPS骨灰级用户)
目录
前言
第1章 ODPS概述
1.1 引言
1.2 初识ODPS
1.2.1 背景和挑战
1.2.2 为什么做ODPS
1.2.3 ODPS是什么
1.2.4 ODPS做什么
1.3 基本概念
1.3.1 账号(Account)
1.3.2 项目空间(Project)
1.3.3 表(Table)
1.3.4 分区(Partition)
1.3.5 任务(Task)、作业(Job)和作业实例(Instance)
1.3.6 资源(Resource)
1.4 应用开发模式
1.4.1 RESTful API
1.4.2 ODPS SDK
1.4.3 ODPS CLT
1.4.4 管理控制台
1.4.5 IDE
1.5 一些典型场景
1.5.1 阿里金融数据仓库
1.5.2 CNZZ数据仓库
1.5.3 支付宝账号影响力圈
1.5.4 阿里金融水文衍生算法
1.5.5 阿里妈妈广告CTR预估
1.6 现状和前景
1.7 小结
第2章 ODPS入门
2.1 准备工作
2.1.1 创建云账号
2.1.2 开通ODPS服务
2.2 使用管理控制台
2.3 配置ODPS客户端
2.3.1 下载和配置CLT
2.3.2 准备dual表
2.3.3 CLT运行模式
2.3.4 下载和配置dship
2.3.5 通过dship上传下载数据
2.4 网站日志分析实例
2.4.1 场景和数据说明
2.4.2 需求分析
2.4.3 数据准备
2.4.4 创建表并添加分区
2.4.5 数据解析和导入
2.4.6 数据加工
2.4.7 数据分析
2.4.8 自动化运行
2.4.9 应用数据集市
2.4.10 结果导出
2.4.11 结果展现
2.4.12 删除数据
2.5 小结
第3章 收集海量数据
3.1 DSHIP工具
3.2 收集WEB日志
3.2.1 场景和需求说明
3.2.2 问题分析和设计
3.2.3 实现说明
3.2.4 进一步探讨
3.2.5 为什么这么难
3.3 MYSQL数据同步到ODPS
3.3.1 场景和需求说明
3.3.2 问题分析和实现
3.3.3 进一步探讨
3.4 下载结果表
3.5 小结
第4章 使用SQL处理海量数据
4.1 ODPS SQL是什么
4.2 入门示例
4.2.1 场景说明
4.2.2 简单的DDL操作
4.2.3 生成数据
4.2.4 单表查询
4.2.5 多表连接JOIN
4.2.6 高级查询
4.2.7 多表关联UNION ALL
4.2.8 多路输出(MULTI-INSERT)
4.3 网站日志分析
4.3.1 准备数据和表
4.3.2 维度表
4.3.3 访问路径分析
4.3.4 TopK查询
4.3.5 IP黑名单
4.4 天猫品牌预测
4.4.1 主题说明和前期准备
4.4.2 理解数据
4.4.3 两个简单的实践
4.4.4 问题分析和算法设计
4.4.5 生成特征
4.4.6 抽取正负样本
4.4.7 生成模型
4.4.8 验证模型
4.4.9 预测结果
4.4.10 进一步探讨
4.5 小结
第5章 SQL进阶
5.1 UDF是什么
5.2 入门示例
5.3 实际应用案例
5.3.1 URL解码
5.3.2 简单的LBS应用
5.3.3 网站访问日志UserAgent解析
5.4 SQL实现原理
5.4.1 词法分析
5.4.2 语法分析
5.4.3 逻辑分析
5.4.4 物理分析
5.5 SQL调优
5.5.1 数据倾斜
5.5.2 一些优化建议
5.5.3 一些注意事项
5.6 小结
第6章 通过TUNNEL迁移数据
6.1 ODPS TUNNEL 是什么
6.2 入门示例
6.2.1 下载和配置
6.2.2 准备数据
6.2.3 上传数据
6.2.4 下载数据
6.3 TUNNEL原理
6.3.1 数据如何传输
6.3.2 客户端和服务端如何交互
6.3.3 如何实现高并发
6.4 从HADOOP迁移到ODPS
6.4.1 问题分析
6.4.2 客户端实现和分析
6.4.3 Mapper实现和分析
6.4.4 编译和运行
6.4.5 进一步探讨
6.5 一些注意点
6.6 小结
第7章 使用MAPREDUCE处理数据
7.1 MAPREDUCE编程模型
7.2 MAPREDUCE应用场景
7.3 初识ODPS MAPREDUCE
7.4 入门示例
7.4.1 准备工作
7.4.2 问题分析
7.4.3 代码实现和分析
7.4.4 运行和输出分析
7.4.5 扩展:使用Combiner?
7.5 TOPK查询
7.5.1 场景和数据说明
7.5.2 问题分析
7.5.3 具体实现分析
7.5.4 运行和结果输出
7.5.5 扩展:忽略Stop Words
7.5.6 扩展:数据和任务统计
7.5.7 扩展: MR2模型
7.6 SQL和MAPREDUCE,用哪个?
7.7 小结
第8章 MAPREDUCE进阶
8.1 再谈SHUFFLE & SORT
8.2 好友推荐
8.2.1 场景和数据说明
8.2.2 问题定义和分析
8.2.3 代码实现
8.3 LBS应用探讨:周边定位
8.3.1 场景和数据说明
8.3.2 问题定义和分析
8.3.3 代码实现和分析
8.3.4 运行和测试
8.4 MAPREDUCE调试
8.4.1 带bug的代码
8.4.2 通过本地模式调试
8.4.3 通过Counter调试
8.4.4 通过log调试
8.5 一些注意点
8.6 小结
第9章 机器学习算法
9.1 初识ODPS算法
9.2 入门示例
9.2.1 通过CLT统计分析
9.2.2 通过XLab统计分析
9.3 几个经典的算法
9.3.1 逻辑回归
9.3.2 随机森林
9.4 天猫品牌预测
9.4.1 逻辑回归
9.4.2 随机森林
9.4.3 脚本实现和自动化
9.4.4 进一步探讨
9.5 小结
第10章 使用SDK访问ODPS服务
10.1 主要的PACKAGE和接口
10.1.1 主要的Package
10.1.2 核心接口
10.2 入门示例
10.3 基于ECLIPSE插件开发
10.4 小结
第11章 ODPS账号、资源和数据管理
11.1 权限管理
11.1.1 账号授权
11.1.2 角色(Role)授权
11.1.3 ACL授权特点
11.1.4 简单的Policy授权
11.1.5 Role Policy
11.1.6 ACL授权和Policy授权小结
11.2 资源管理
11.2.1 Project内的资源管理
11.2.2 跨Project的资源共享
11.3 数据管理
11.3.1 表生命周期
11.3.2 数据归并(Merge)
11.3.3 数据保护(Project Protection)
11.4 小结
第12章 深入了解ODPS
12.1 体系架构
12.1.1 客户端
12.1.2 接入层
12.1.3 逻辑层
12.1.4 存储/计算层
12.2 执行流程
12.2.1 提交作业
12.2.2 运行作业
12.2.3 查询作业状态
12.2.4 执行逻辑图
12.3 底层数据存储
12.3.1 CFILE是什么
12.3.2 CFILE逻辑结构
12.4 内聚式框架
12.4.1 元数据
12.4.2 运维管理
12.4.3 多控制集群和多计算集群
12.5 跨集群复制
12.5.1 数据迁移
12.5.2 跨集群同步
12.6 小结
第13章 探索ODPS之美
13.1 R语言数据探索
13.1.1 安装和配置
13.1.2 一些基本操作
13.1.3 分析建模
13.2 实时流计算
13.3 图计算模型
13.4 准实时SQL
13.5 机器学习平台
附录一 ODPS消息认证机制
后记
前言/序言
谈起ODPS,还得从阿里金融的故事说起。一直以来,阿里金融始终是ODPS的第一客户,见证了ODPS一路的成长历程。几年的坚持和信任,我们一起走了过来,而且越走越好。
2010年初,集群规模只有几十台,为了完成阿里金融的信贷产品的模型计算,每天增量同步1TB左右的数据,执行几十个模型计算,运行时间在18小时左右。当时问题较多,实际上是24小时人肉运维,大家都习惯了凌晨下班,一起解决各种问题。期间的痛自不必说,但一点点的进步,都让人充满喜悦。
2011年初,集群规模达到100多台,数据规模达到数百TB,模型计算任务量是原来的10倍左右,而运行时间却不到原来的1/3。集群能力完成计算任务游刃有余,大家第一次体会到一种说不清的舒畅。
2012年,ODPS集群规模达到1500台,阿里金融数据仓库的所有数据计算都运行在上面,数据规模达到数PB,运行任务数千个。用户体验也得到不断改善。
2013年,ODPS单集群规模达到5000台,阿里金融的数据仓库专家们,不再需要考虑集群方面的问题(如升级、扩容、运维等),可以专注于自己的业务,包括数据采集、ETL和数据仓库构建、BI分析和报表,通过分布式编程模型生成特征、衍生指标,通过统计和机器学习构建风险控制模型,把分析建模后的结果数据导出到线上系统服务,其中涉及数据安全性、正确性,平台稳定性和易用性等诸多方面。阿里小贷推出了“3-1-0”服务条款:3分钟申请、1秒钟获贷和0人工审批,其背后实质上是“准入资质评估、个性化授信和风险监控”,而这一切离不开海量数据计算的支撑!基于ODPS,阿里金融可以充分挖掘大数据的价值,实现数据化运营,在大促期间创下了30分钟贷款5亿元的纪录!有了强大的存储和计算支持,各种创新业务不断开花结果。BI团队也逐渐把业务迁移到ODPS上,和使用SAS相比,性能上有了很大提升。
阿里金融不但锤炼了ODPS,其成功也为ODPS赢得了口碑。在阿里巴巴集团内,淘宝、支付宝、阿里妈妈的业务都开始运行在ODPS集群。此外,外部的一些独立软件开发商也在使用ODPS。
回首走过的路,我们充满感恩,尤其感谢阿里金融的一路陪伴。这些年的辛苦耕耘,这些年的积累和沉淀,我们也更有信心!
作为一个海量数据处理平台,ODPS涉及很多前沿技术领域,包括分布式、云计算和大数据等。本书的定位是帮助ODPS用户快速了解如何使用ODPS解决其实际问题,在内容介绍上是以用户应用场景为中心,对功能和技术的介绍都是围绕并服务于这一中心。作者假设用户是带着如何使用ODPS解决自身的大数据问题来阅读本书,期望这本书能够帮助用户解决实际问题。
由于ODPS更新发展非常快,鉴于“出版”很难赶上“开放”的节奏,本书中也涉及一些尚未开放的功能。本书是依据目前的最新版来写的,可能后续会有变更,请以最新用户手册为准。尽管如此,我相信本书依然是了解和学习ODPS必备的“敲门砖”。
本书重点通过示例来说明如何通过ODPS完成各种需求,写得尽量简单、明白。本书不是手册,因而不会罗列出详细的语法说明,也不会全面覆盖ODPS的所有功能。实际上,由于是基于示例引导,它展示的仅仅是ODPS功能的冰山一角。你可以通过实践和使用手册了解更多。本书的在线地址是如果你愿意参与一起改进,将不甚感激。
致谢
感谢所有为本书付出努力的同事们!要感谢的人太多,在此不一一列出。但我却不能不特别提到阿里巴巴研究员张东晖先生,如果没有他的指导、帮助和鼓励,就不会有这本书。感谢阿里****和加州大学祝效国教授百忙中抽空阅读本书并作序。
最后,衷心希望这本书能带给你美好的ODPS编程之旅!
李妹芳
于阿里(北京),2014年9月
ODPS权威指南:阿里大数据平台应用开发实践 电子书 下载 mobi epub pdf txt