Presto技术内幕PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:JD-Presto研发团队著
- 出 版 社:北京:电子工业出版社
- 出版年份:2016
- ISBN:7121285639
- 页数:296 页
第一部分 基础篇 2
第1章 Presto概述 2
1.1 Presto背景及发展 2
1.2 Presto特点 2
1.3 基本概念 3
1.3.1 Presto服务进程 3
1.3.2 Presto模型 4
1.3.3 Presto查询执行模型 5
1.4 Presto整体架构 9
1.4.1 硬件架构 9
1.4.2 软件架构 9
1.5 小结 11
第2章 Presto安装与部署 12
2.1 环境说明 12
2.2 准备工作 13
2.2.1 建立SSH信任关系 13
2.2.2 安装Java 17
2.2.3 安装Maven 17
2.2.4 安装Hive 18
2.3 源码编译 21
2.3.1 下载源码 21
2.3.2 源码结构说明 22
2.3.3 编译 26
2.4 部署 30
2.4.1 服务部署 30
2.4.2 客户端部署 38
2.4.3 JDBC使用 40
2.5 小结 42
第二部分 核心设计篇 44
第3章 Presto RESTful框架解析 44
3.1 Statement服务接口 44
3.2 Query服务接口 47
3.3 Stage服务接口 48
3.4 Task服务接口 49
3.5 小结 52
第4章 提交查询 53
4.1 提交查询的步骤 53
4.2 源码解析 53
4.3 提交查询的流程 60
4.4 小结 61
第5章 生成查询执行计划 62
5.1 基本概念 63
5.1.1 Node 63
5.1.2 Metadata API 67
5.2 词法与语法分析 68
5.2.1 语法规则 69
5.2.2 词法分析 69
5.2.3 语法分析 71
5.3 获取QueryExecution 72
5.3.1 获取QueryExecutionFactory 72
5.3.2 创建QueryExecution 73
5.3.3 启动QueryExecution 74
5.4 语义分析 77
5.4.1 Statement分析 77
5.4.2 Relation分析 84
5.4.3 表达式分析 91
5.5 执行计划生成 91
5.5.1 执行计划节点 91
5.5.2 SQL执行计划 93
5.5.3 Relation执行计划 95
5.5.4 Query执行计划 99
5.6 执行计划优化 102
5.6.1 ImplementSampleAsFilter 102
5.6.2 CanonicalizeExpressions 102
5.6.3 SimplifyExpressions 102
5.6.4 UnaliasSymbolReferences 103
5.6.5 PruneRedundantProjections 103
5.6.6 SetFlatteningOptimizer 103
5.6.7 LimitPushDown 104
5.6.8 PredicatePushDown 104
5.6.9 MergeProjections 104
5.6.10 ProjectionPushDown 104
5.6.11 IndexJoinOptimizer 105
5.6.12 CountConstantOptimizer 105
5.6.13 WindowFilterPushDown 105
5.6.14 HashGenerationOptimizer 105
5.6.15 PruneUnreferencedOutputs 106
5.6.16 MetadataQueryOptimizer 106
5.6.17 SingleDistinctOptimizer 106
5.6.18 BeginTableWrite 106
5.6.19 AddExchanges 107
5.6.20 PickLayout 107
5.7 执行计划分段 107
5.7.1 Source 107
5.7.2 Fixed 107
5.7.3 Single 107
5.7.4 Coordinator only 107
5.8 示例 108
5.8.1 Count执行计划 108
5.8.2 Join执行计划 108
5.9 小结 110
第6章 查询调度 111
6.1 生成调度执行器 111
6.2 查询调度过程 113
6.2.1 NodeManager 114
6.2.2 NodeSelector 115
6.3 小结 118
第7章 查询执行 119
7.1 查询执行逻辑 120
7.2 Task调度 120
7.2.1 Source Task调度 120
7.2.2 Fixed Task调度 126
7.2.3 Single Task调度 128
7.2.4 Coordinator_Only Task调度 128
7.3 Task执行 129
7.3.1 创建Task 129
7.3.2 更新Task 135
7.3.3 运行Task 140
7.4 小结 147
第8章 队列 148
8.1 配置说明 148
8.1.1 queues队列定义 149
8.1.2 rules规则定义 149
8.2 队列加载 150
8.3 队列匹配 151
8.4 小结 154
第9章 System Connector 155
9.1 System Connector使用 155
9.1.1 Information schema 155
9.1.2 Metadata 157
9.1.3 Runtime 157
9.2 System Connector实现 159
9.2.1 Information schema实现 160
9.2.2 System Connector实现 163
9.3 小结 168
第10章 Hive Connector 169
10.1 与Hive的结合 170
10.2 Split分片管理 175
10.3 数据读取 179
10.4 Create Table As Select的实现 182
10.5 小结 186
第11章 Kafka Connector 187
11.1 认识Kafka Connector 187
11.1.1 配置 187
11.1.2 配置属性 187
11.1.3 内置字段 189
11.1.4 表定义文件 190
11.1.5 Kafka中的key和message 191
11.1.6 行解码 192
11.1.7 日期和时间解码器 194
11.1.8 文本解码器 194
11.1.9 数值解码器 194
11.2 Kafka连接器使用教程 194
11.2.1 安装Apache Kafka 195
11.2.2 下载数据 195
11.2.3 在Presto中配置Kafka topics 197
11.2.4 基本数据查询 197
11.2.5 添加表定义文件 199
11.2.6 将message中所有值映射到不同列 200
11.2.7 使用实时数据 202
11.3 Kafka Connector获取数据 207
11.3.1 Split分片管理 207
11.3.2 数据读取 209
11.4 小结 210
第12章 Connector开发 211
12.1 创建Maven工程 211
12.2 注册Plugin 213
12.3 Connector 213
12.4 Metadata 215
12.5 SplitManager 217
12.6 RecordSetProvider 218
12.7 小结 219
第13章 Functions开发 220
13.1 Function注册 220
13.2 窗口函数 225
13.3 聚合函数 229
13.4 小结 232
第三部分 高级篇 234
第14章 JD-Presto功能改造 234
14.1 PDBO功能开发 234
14.1.1 JDBC Split剖析 235
14.1.2 JdbcRecordCursor剖析 238
14.1.3 分批次读取实现原理 240
14.1.4 动态步长实现原理 243
14.1.5 条件下发 245
14.1.6 PDBO配置定义 247
14.2 DDL及D ML支持 250
14.2.1 Hive连接器Insert功能 250
14.2.2 Hive连接器CTAS动态分区表功能 252
14.3 动态增加、修改、删除Catalog 254
14.3.1 目的 254
14.3.2 现状 254
14.3.3 实现 255
14.3.4 效果 258
14.4 小结 258
第15章 Presto性能调优 259
15.1 合理设计分区 259
15.2 Group By字句优化 259
15.3 使用模糊聚合函数 259
15.4 合并多条Like子句为一条regexp_like子句 260
15.5 大表放在Join子句左边 260
15.6 关闭distributed hash join 261
15.7 使用ORC存储 261
15.8 小结 262
第16章 Presto应用场景 263
16.1 ETL 263
16.2 实时数据计算 264
16.3 Ad-Hoc查询 266
16.4 实时数据流分析 266
16.5 小结 268
附录A 常见问题及解决办法 269
A.1 同时访问两个Hadoop集群 269
A.2 Kafka集群重启后无法获取数据 272
A.3 Task exceeded max memory size 277
A.4 SQL中In子句太长导致栈溢出错误 278
A.5 高并发导致大量查询出错 279
附录B Presto配置参数说明 282
附录C Presto执行信息说明 289
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《Prometheus技术秘笈》百里燊 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《林下养蜂技术》罗文华,黄勇,刘佳霖主编 2017
- 《脱硝运行技术1000问》朱国宇编 2019
- 《催化剂制备过程技术》韩勇责任编辑;(中国)张继光 2019
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017