ODPS权威指南:阿里大数据平台应用开发实践
作者:李妹芳 著
出版时间:2015年版
内容简介
ODPS(Open Data Processing Service)是阿里巴巴自主研发的海量数据处理和分析的服务平台,主要应用于数据分析、海量数据统计、数据挖掘、机器学习和商业智能等领域。目前,ODPS不仅在阿里内部得到广泛应用,享有很好的口碑,正逐步走向第三方开放市场。
《ODPS权威指南 阿里大数据平台应用开发实践》是学习和掌握ODPS的权威指南,作者来自阿里ODPS团队。全书共13章,主要内容包括:ODPS入门、整体架构、数据通道、MapReduce编程、SQL查询分析、安全,以及基于真实数据的各种场景分析实战。本书基于很多范例解析,通过在各种应用场景下的示例来说明如何通过ODPS完成各种需求,以期引导读者从零开始轻松掌握和使用ODPS。同时,本书不局限于示例分析,也致力于提供更多关于大数据处理的编程思想和经验分享。书中所有示例代码都可以在作者提供的网站上免费下载。
《ODPS权威指南 阿里大数据平台应用开发实践》适合想要了解和使用ODPS的读者阅读学习,对于从事大数据存储和应用以及分布式计算的专业人士来说,也是很好的参考资料。
目 录
目录
前言
第1章ODPS概述
1.1引言
1.2初识ODPS
1.2.1背景和挑战
1.2.2为什么做ODPS
1.2.3ODPS是什么
1.2.4ODPS做什么
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.1RESTfulAPI
1.4.2ODPSSDK
1.4.3ODPSCLT
1.4.4管理控制台
1.4.5IDE
1.5一些典型场景
1.5.1阿里金融数据仓库
1.5.2CNZZ数据仓库
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.3CLT运行模式
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.1DSHIP工具
3.2收集WEB日志
3.2.1场景和需求说明
3.2.2问题分析和设计
3.2.3实现说明
3.2.4进一步探讨
3.2.5为什么这么难
3.3MYSQL数据同步到ODPS
3.3.1场景和需求说明
3.3.2问题分析和实现
3.3.3进一步探讨
3.4下载结果表
3.5小结
第4章使用SQL处理海量数据
4.1ODPSSQL是什么
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多表关联UNIONALL
4.2.8多路输出(MULTI-INSERT)
4.3网站日志分析
4.3.1准备数据和表
4.3.2维度表
4.3.3访问路径分析
4.3.4TopK查询
4.3.5IP黑名单
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.1UDF是什么
5.2入门示例
5.3实际应用案例
5.3.1URL解码
5.3.2简单的LBS应用
5.3.3网站访问日志UserAgent解析
5.4SQL实现原理
5.4.1词法分析
5.4.2语法分析
5.4.3逻辑分析
5.4.4物理分析
5.5SQL调优
5.5.1数据倾斜
5.5.2一些优化建议
5.5.3一些注意事项
5.6小结
第6章通过TUNNEL迁移数据
6.1ODPSTUNNEL是什么
6.2入门示例
6.2.1下载和配置
6.2.2准备数据
6.2.3上传数据
6.2.4下载数据
6.3TUNNEL原理
6.3.1数据如何传输
6.3.2客户端和服务端如何交互
6.3.3如何实现高并发
6.4从HADOOP迁移到ODPS
6.4.1问题分析
6.4.2客户端实现和分析
6.4.3Mapper实现和分析
6.4.4编译和运行
6.4.5进一步探讨
6.5一些注意点
6.6小结
第7章使用MAPREDUCE处理数据
7.1MAPREDUCE编程模型
7.2MAPREDUCE应用场景
7.3初识ODPSMAPREDUCE
7.4入门示例
7.4.1准备工作
7.4.2问题分析
7.4.3代码实现和分析
7.4.4运行和输出分析
7.4.5扩展:使用Combiner?
7.5TOPK查询
7.5.1场景和数据说明
7.5.2问题分析
7.5.3具体实现分析
7.5.4运行和结果输出
7.5.5扩展:忽略StopWords
7.5.6扩展:数据和任务统计
7.5.7扩展:MR2模型
7.6SQL和MAPREDUCE,用哪个?
7.7小结
第8章MAPREDUCE进阶
8.1再谈SHUFFLE&SORT
8.2好友推荐
8.2.1场景和数据说明
8.2.2问题定义和分析
8.2.3代码实现
8.3LBS应用探讨:周边定位
8.3.1场景和数据说明
8.3.2问题定义和分析
8.3.3代码实现和分析
8.3.4运行和测试
8.4MAPREDUCE调试
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.3ACL授权特点
11.1.4简单的Policy授权
11.1.5RolePolicy
11.1.6ACL授权和Policy授权小结
11.2资源管理
11.2.1Project内的资源管理
11.2.2跨Project的资源共享
11.3数据管理
11.3.1表生命周期
11.3.2数据归并(Merge)
11.3.3数据保护(ProjectProtection)
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执行逻辑 目录
前言
第1章ODPS概述
1.1引言
1.2初识ODPS
1.2.1背景和挑战
1.2.2为什么做ODPS
1.2.3ODPS是什么
1.2.4ODPS做什么
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.1RESTfulAPI
1.4.2ODPSSDK
1.4.3ODPSCLT
1.4.4管理控制台
1.4.5IDE
1.5一些典型场景
1.5.1阿里金融数据仓库
1.5.2CNZZ数据仓库
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.3CLT运行模式
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.1DSHIP工具
3.2收集WEB日志
3.2.1场景和需求说明
3.2.2问题分析和设计
3.2.3实现说明
3.2.4进一步探讨
3.2.5为什么这么难
3.3MYSQL数据同步到ODPS
3.3.1场景和需求说明
3.3.2问题分析和实现
3.3.3进一步探讨
3.4下载结果表
3.5小结
第4章使用SQL处理海量数据
4.1ODPSSQL是什么
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多表关联UNIONALL
4.2.8多路输出(MULTI-INSERT)
4.3网站日志分析
4.3.1准备数据和表
4.3.2维度表
4.3.3访问路径分析
4.3.4TopK查询
4.3.5IP黑名单
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.1UDF是什么
5.2入门示例
5.3实际应用案例
5.3.1URL解码
5.3.2简单的LBS应用
5.3.3网站访问日志UserAgent解析
5.4SQL实现原理
5.4.1词法分析
5.4.2语法分析
5.4.3逻辑分析
5.4.4物理分析
5.5SQL调优
5.5.1数据倾斜
5.5.2一些优化建议
5.5.3一些注意事项
5.6小结
第6章通过TUNNEL迁移数据
6.1ODPSTUNNEL是什么
6.2入门示例
6.2.1下载和配置
6.2.2准备数据
6.2.3上传数据
6.2.4下载数据
6.3TUNNEL原理
6.3.1数据如何传输
6.3.2客户端和服务端如何交互
6.3.3如何实现高并发
6.4从HADOOP迁移到ODPS
6.4.1问题分析
6.4.2客户端实现和分析
6.4.3Mapper实现和分析
6.4.4编译和运行
6.4.5进一步探讨
6.5一些注意点
6.6小结
第7章使用MAPREDUCE处理数据
7.1MAPREDUCE编程模型
7.2MAPREDUCE应用场景
7.3初识ODPSMAPREDUCE
7.4入门示例
7.4.1准备工作
7.4.2问题分析
7.4.3代码实现和分析
7.4.4运行和输出分析
7.4.5扩展:使用Combiner?
7.5TOPK查询
7.5.1场景和数据说明
7.5.2问题分析
7.5.3具体实现分析
7.5.4运行和结果输出
7.5.5扩展:忽略StopWords
7.5.6扩展:数据和任务统计
7.5.7扩展:MR2模型
7.6SQL和MAPREDUCE,用哪个?
7.7小结
第8章MAPREDUCE进阶
8.1再谈SHUFFLE&SORT
8.2好友推荐
8.2.1场景和数据说明
8.2.2问题定义和分析
8.2.3代码实现
8.3LBS应用探讨:周边定位
8.3.1场景和数据说明
8.3.2问题定义和分析
8.3.3代码实现和分析
8.3.4运行和测试
8.4MAPREDUCE调试
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.3ACL授权特点
11.1.4简单的Policy授权
11.1.5RolePolicy
11.1.6ACL授权和Policy授权小结
11.2资源管理
11.2.1Project内的资源管理
11.2.2跨Project的资源共享
11.3数据管理
11.3.1表生命周期
11.3.2数据归并(Merge)
11.3.3数据保护(ProjectProtection)
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底层数据存储