当前位置:首页 > 工业技术
Presto技术内幕
Presto技术内幕

Presto技术内幕PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:JD-Presto研发团队著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:7121285639
  • 页数:296 页
图书介绍:
《Presto技术内幕》目录

第一部分 基础篇 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

返回顶部