标签分类
当前位置:首页 > 数据库电子书 > Presto电子书网盘下载
Presto技术内幕 Presto技术内幕
wangzaidali

wangzaidali 提供上传

资源
23
粉丝
35
喜欢
196
评论
8

    Presto技术内幕 PDF 高清版

    Presto电子书
    • 发布时间:

    给大家带来的一篇关于Presto相关的电子书资源,介绍了关于Presto、技术内幕方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小171 MB,JD-Presto研发团队编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.8,更多相关的学习资源可以参阅 数据库电子书、等栏目。

  • Presto技术内幕 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1YmDIIOBQKIEbI0-suhnyZA
  • 分享码:ssn8
  • 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

    上一篇:简约至上:交互式设计四策略  下一篇:Matlab R2016a从入门到精通

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    Presto相关电子书
    学习笔记
    网友NO.766787

    Yii框架分页技术实例分析

    本文实例讲述了Yii框架分页技术。分享给大家供大家参考,具体如下: 直接上代码: 1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){ $data = Field::find(); //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写 $pages = new Pagination(['totalCount' =$data-count(), 'pageSize' = '2']); //实例化分页类,带上参数(总条数,每页显示条数) $model = $data-offset($pages-offset)-limit($pages-limit)-all(); return $this-renderPartial('fenye',[ 'model' = $model, 'pages' = $pages, ]);} 2.model层就是直接用../yii/frontend/web/index.php?r=gii 生成的model(详细链接) 3.最后是显示页面 ?php use yii\widgets\LinkPager;??php foreach($model as $key=$val){ ? ?= $val-Id; ? //相当于 ?php echo $val['Id']; ? ?= $val-Field; ? //相当于 ?php echo $val['Field']; ??php } ??=LinkPager::widget([ 'pagination' = $pages, ]);? 可以自己尝试一下 更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。 ……

    网友NO.486059

    《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》PDF 笔记分享

    asdasdasdasdasdasdas wetrwerwerwerwerw hdrfgdrgdfg ……

    网友NO.316760

    MySQL分页技术、6种分页方法总结

    概述 有朋友问: MySQL的分页似乎一直是个问题,有什么优化方法吗? 网上看到赶集网XX推荐了一些分页方法,但似乎不太可行,你能点评一下吗? 方法总结 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). Limit限制的是从结果集的M位置处取出N条输出,其余抛弃. 方法2: 建立主键或唯一索引, 利用索引(假设每页10条) 语句样式: MySQL中,可用如下方法: SELECT FROM 表名称 WHERE id_pk (pageNum10) LIMIT M 适应场景: 适用于数据量多的情况(元组数上万) 原因: 索引扫描,速度会很快. 有朋友提出: 因为数据查询出来并不是按照pk_id排序的,所以会有漏掉数据的情况,只能方法3 方法3: 基于索引再排序 语句样式: MySQL中,可用如下方法: SELECT FROM 表名称 WHERE id_pk (pageNum10) ORDER BY id_pk ASC LIMIT M 适应场景: 适用于数据量多的情况(元组数上万). 最好ORDER BY后的列对象是主键或唯一所以,使得ORDERBY操作能利用索引被消除但结果集是稳定的(稳定的含义,参见方法1) 原因: 索引扫描,速度会很快. 但MySQL的排序操作,只有ASC没有DESC(DESC是假的,未来会做真正的DESC,期待…). 方法4……

    网友NO.750582

    mysql的分区技术详细介绍

    一、概述 当 MySQL的总记录数超过了100万后,会出现性能的大幅度下降吗?答案是肯定的,但是,性能下降的比率不一而同,要看系统的架构、应用程序、还有包括索引、服务器硬件等多种因素而定。当有网友问我这个问题的时候,我最常见的回答就是:分表,可以根据id区间或者时间先后顺序等多种规则来分表。分表很容易,然而由此所带来的应用程序甚至是架构方面的改动工作却不容小觑,还包括将来的扩展性等。 在以前,一种解决方案就是使用 MERGE 类型,这是一个非常方便的做饭。架构和程序基本上不用做改动,不过,它的缺点是显见的: 1.只能在相同结构的 MyISAM 表上使用 2.无法享受到 MyISAM 的全部功能,例如无法在 MERGE 类型上执行 FULLTEXT 搜索 3.它需要使用更多的文件描述符 4.读取索引更慢 这个时候,MySQL 5.1 中新增的分区(Partition)功能的优势也就很明显了: 1.与单个磁盘或文件系统分区相比,可以存储更多的数据 2.很容易就能删除不用或者过时的数据 3.一些查询可以得到极大的优化 4.涉及到 SUM()/COUNT() 等聚合函数时,可以并行进行 5.IO吞吐量更大 分区允许可以设置为任意大小的规则,跨文件系统分配单个表的多个部分。实际上,表的不同部分在不同的位置被存储为单独的表。 分区应该注意的事项: 1、 做分区时……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明