当前位置:主页 > 计算机电子书 > 数据库 > Presto下载
Presto技术内幕

Presto技术内幕 PDF 高清版

  • 更新:2019-10-03
  • 大小:171 MB
  • 类别:Presto
  • 作者:JD-Presto研发团队
  • 出版:电子工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

Presto技术内幕 PDF

Presto是专门为大数据实时查询计算而设计和开发的产品。由于Presto是基于Java语言开发的,因此,对使用者和开发者而言,Presto极易学习、使用并针对特定的业务场景进行改造开发和性能优化。无论是对多数据源支持,还是高性能、易用性、可扩展性等方面, Presto都是大数据实时查询计算产品中的佼佼者。

《Presto技术内幕》按照由浅入深的顺序对Presto进行了全方位的细致讲解,具体内容包括Presto概述、 Presto安装与部署、 Presto RESTful框架解析、提交查询、生成查询执行计划、查询调度、查询执行、队列、System Connector、 Hive Connector、 Kafka Connector、 Connector开发、 Functions开发、 JD-Presto功能改造、 Presto性能调优、 Presto应用场景。

目录

  • 第一部分 基础篇
  • 第 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
  • 第二部分 核心设计篇
  • 第 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 IndexJoinOptimizer105
  • 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 Kafka195
  • 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
  • 第三部分 高级篇
  • 第 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 及 DML 支持 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

资源下载

资源下载地址1:https://pan.baidu.com/s/1YmDIIOBQKIEbI0-suhnyZA

相关资源

网友留言