会员   密码 您忘记密码了吗?
1,652,684 本书已上架      购物流程 | 常见问题 | 联系我们 | 关于我们 | 用户协议

有店 App


当前分类

商品分类

浏览历史

当前位置: 首页 > 简体书 > Spark SQL內核剖析
Spark SQL內核剖析
上一张
下一张
prev next

Spark SQL內核剖析

作者: 朱鋒,張韶全,黃明
出版社: 電子工業出版社
出版日期: 2018-07-01
商品库存: 点击查询库存
以上库存为海外库存属流动性。
可选择“空运”或“海运”配送,空运费每件商品是RM14。
配送时间:空运约8~12个工作天,海运约30个工作天。
(以上预计配送时间不包括出版社库存不足需调货及尚未出版的新品)
定价:   NT414.00
市场价格: RM74.43
本店售价: RM66.24
购买数量:
collect Add to cart Add booking
详细介绍 商品属性 商品标记
內容簡介

經過多年的發展,大資料處理技術逐步成熟。作為業界大資料計算的事實標準,Apache Spark系統已經廣泛應用於各大企業與研究機構,並形成完整的生態系統。Spark系統包含了SQL、GraphX和R等各個子系統以支援不同業務領域的需求。作為傳統關聯式資料庫/資料倉庫在大資料場景下的解決方案,Spark SQL已經成為了業界的重要選擇方案,同時也成為了Spark開源社區中最為活躍的部分。

本書聚焦於Spark SQL系統,對其整體架構、內部各個模組的技術實現機制進行源碼級別的剖析,涉及到SQL編譯、邏輯計畫、物理執行計畫、重要查詢(如Aggregation與Join等)的技術細節。此外,本書內容上還會結合生產環境的海量應用,分享大量真實開發案例與實踐優化經驗。


作者介紹

黃明,騰訊雲機器學習平臺負責人,T4 專家。目前負責騰訊 DI-X 機器學習平臺建設以及高緯度機器學習框架 Angel 的開發,助力騰訊內部各種資料和機器學習業務快速發展。黃明在分散式運算和機器學習領域,有豐富的研究和開發經驗,也是 Spark 早期的研究者和佈道者之一。
 
朱鋒,博士畢業于中科院軟體所,研究方向為分散式運算與軟體工程。長期關注資料分析、資料庫技術和大資料相關系統,並積極參與開源社區貢獻。2017年加入騰訊,負責Spark SQL相關平臺的開發、優化和維護工作,在SQL-on-Hadoop方面積累了豐富的經驗。
 
張韶全,香港中文大學博士,博士期間的研究方向為系統最優分散式演算法。曾任香港應用研究院研究員、聯想香港研發中心高級研究員。現任騰訊大資料平臺高級研發工程師,負責騰訊大資料SQL平臺的建設與研發,平臺規模達到上萬台伺服器,百萬級別業務量,PB級日資料計算量,支撐著騰訊全公司的資料分析業務。擁有多年互聯網公司一線大資料平臺設計與研發經驗,旨在傳播大資料技術和實踐經驗,使其在不同行業落地生根。


目錄

第 1 章 Spark SQL 背景
1.1 大資料與 Spark 系統
1.2 關係模型與 SQL 語言
1.3 Spark SQL 發展歷程
1.4 本章小結

第 2 章 Spark 基礎知識介紹
2.1 RDD 程式設計模型
2.2 DataFrame 與 Dataset
2.3 本章小結

第 3 章 Spark SQL 執行全過程概述
3.1 從 SQL 到 RDD:一個簡單的案例
3.2 重要概念
3.2.1 InternalRow 體系
3.2.2 TreeNode 體系
3.2.3 Expression 體系
3.3 內部資料類型系統
3.4 本章小結

第 4 章 Spark SQL 編譯器 Parser
4.1 DSL 工具之 ANTLR 簡介
4.1.1 基於 ANTLR 4 的計算器
4.1.2 訪問者模式
4.2 SparkSqlParser 之 AstBuilder
4.3 常見 SQL 生成的抽象語法樹概覽
4.4 本章小結

第 5 章 Spark SQL 邏輯計畫(LogicalPlan)
5.1 Spark SQL 邏輯計畫概述
5.2 LogicalPlan 簡介
5.2.1 QueryPlan 概述
5.2.2 LogicalPlan 基本操作與分類
5.2.3 LeafNode 類型的 LogicalPlan
5.2.4 UnaryNode 類型的 LogicalPlan
5.2.5 BinaryNode 類型的 LogicalPlan
5.2.6 其他類型的 LogicalPlan
5.3 AstBuilder 機制:Unresolved LogicalPlan 生成
5.4 Analyzer 機制:Analyzed LogicalPlan 生成
5.4.1 Catalog 體系分析
5.4.2 Rule 體系
5.4.3 Analyzed LogicalPlan 生成過程
5.5 Spark SQL 優化器 Optimizer
5.5.1 Optimizer 概述
5.5.2 Optimizer 規則體系
5.5.3 Optimized LogicalPlan 的生成過程
5.6 本章小結

第 6 章 Spark SQL 物理計畫(PhysicalPlan)
6.1 Spark SQL 物理計畫概述
6.2 SparkPlan 簡介
6.2.1 LeafExecNode 類型
6.2.2 UnaryExecNode 類型
6.2.3 BinaryExecNode 類型
6.2.4 其他類型的 SparkPlan
6.3 Metadata 與 Metrics 體系
6.4 Partitioning 與 Ordering 體系
6.4.1 Distribution 與 Partitioning 的概念
6.4.2 SparkPlan 的常用分區排序操作
6.5 SparkPlan 生成
6.5.1 物理計畫 Strategy 體系
6.5.2 常見 Strategy 分析
6.6 執行前的準備
6.6.1 PlanSubqueries 規則
6.6.2 EnsureRequirements 規則
6.7 本章小結

第 7 章 Spark SQL 之 Aggregation 實現
7.1 Aggregation 執行概述
7.1.1 文法定義
7.1.2 聚合語句 Unresolved LogicalPlan 生成
7.1.3 從邏輯運算元樹到物理運算元樹
7.2 彙總函式(AggregateFunction)
7.2.1 聚合緩衝區與聚合模式(AggregateMode)
7.2.2 DeclarativeAggregate 彙總函式
7.2.3 ImperativeAggregate 彙總函式
7.2.4 TypedImperativeAggregate 彙總函式
7.3 聚合執行
7.3.1 執行框架 AggregationIterator
7.3.2 基於排序的聚合運算元 SortAggregateExec
7.3.3 基於 Hash 的聚合運算元 HashAggregateExec
7.4 視窗(Window)函數
7.4.1 窗口函式定義與簡介
7.4.2 視窗函數相關運算式
7.4.3 視窗函數的邏輯計畫階段與物理計畫階段
7.4.4 視窗函數的執行
7.5 多維分析
7.5.1 OLAP 多維分析背景
7.5.2 Spark SQL 多維查詢
7.5.3 多維分析 LogicalPlan 階段
7.5.4 多維分析 PhysicalPlan 與執行
7.6 本章小結

第 8 章 Spark SQL 之 Join 實現
8.1 Join 查詢概述
8.2 文法定義與抽象語法樹
8.3 Join 查詢邏輯計畫
8.3.1 從 AST 到 Unresolved LogicalPlan
8.3.2 從 Unresolve LogicalPlan 到 Analyzed LogicalPlan
8.3.3 從 Analyzed LogicalPlan 到 Optimized LogicalPlan
8.4 Join 查詢物理計畫
8.4.1 Join 物理計畫的生成
8.4.2 Join 物理計畫的選取
8.5 Join 查詢執行
8.5.1 Join 執行基本框架
8.5.2 BroadcastJoinExec 執行機制
8.5.3 ShuffledHashJoinExec 執行機制
8.5.4 SortMergeJoinExec 執行機制
8.6 本章小結

第 9 章 Tungsten 技術實現
9.1 記憶體管理與二進位處理
9.1.1 Spark 記憶體管理基礎
9.1.2 Tungsten 記憶體管理優化基礎
9.1.3 Tungsten 記憶體優化應用
9.2 緩存敏感計算(Cache-aware computation)
9.3 動態代碼生成(Code generation)
9.3.1 漫談代碼生成
9.3.2 Janino 編譯器實踐
9.3.3 基本(運算式)代碼生成
9.3.4 全階段代碼生成(WholeStageCodegen)
9.4 本章小結

第 10 章 Spark SQL 連接 Hive
10.1 Spark SQL 連接 Hive 概述
10.2 Hive 相關的規則和策略
10.2.1 HiveSessionCatalog 體系
10.2.2 Analyzer 之 Hive-Specific 分析規則
10.2.3 SparkPlanner 之 Hive-Specific 轉換策略
10.2.4 Hive 相關的任務執行
10.3 Spark SQL 與 Hive 資料類型
10.3.1 Hive 資料類型與 SerDe 框架
10.3.2 DataTypeToInspector 與 Data Wrapping
10.3.3 InspectorToDataType 與 Data Unwrapping
10.4 Hive UDF 管理機制
10.5 Spark Thrift Server 實現
10.5.1 Service 體系
10.5.2 Operation 與 OperationManager
10.5.3 Session 與 SessionManager
10.5.4 Authentication 安全認證管理
10.5.5 Spark Thrift Server 執行流程
10.6 本章小結

第 11 章 Spark SQL 開發與實踐
11.1 騰訊大資料平臺(TDW)簡介
11.2 騰訊大資料平臺 SQL 引擎(TDW-SQL-Engine)
11.2.1 SQL-Engine 背景與演化歷程
11.2.2 SQL-Engine 整體架構
11.3 TDW-Spark SQL 開發與優化
11.3.1 業務運行支撐框架
11.3.2 新功能開發案例
11.3.3 性能優化開發案例
11.4 業務實踐經驗與教訓
11.4.1 Spark SQL 集群管理的經驗
11.4.2 Spark SQL 業務層面調優
11.4.3 SQL 寫法的“陷阱”
11.5 本章小結

總結
參考文獻