基於成本的Spark SQL優化器框架 [session]
Strata Data Conference早期門票優惠6月9日截止!點選閱讀原文可登入會議網站,儘快報名以確定留位!
基於成本的Spark SQL優化器框架
講師:Ron Hu (Huawei Technologies), 王振華 (Huawei Technologies)
14:00–14:40 Friday, 2017-07-14
Spark及更多發展 (Spark & beyond)
地點: 紫金大廳B(Grand Hall B)
觀眾水平: 中級 (Intermediate)
必要預備知識
SQL, Apache Spark, 資料庫。
您將學到什麼
優化器有架構上的改變,和對效能的影響。
描述
在Spark SQL的Catalyst優化器中,許多基於規則的優化技術已經實現,但優化器本身仍然有很大的改進空間。例如,沒有關於資料分佈的詳細列統計資訊,因此難以精確地估計過濾(filter)、連線(join)等資料庫操作符的輸出大小和基數 (cardinality)。由於不準確的估計,它經常導致優化器產生次優的查詢執行計劃。
我們在Spark SQL引擎內新增了一個基於成本的優化器框架。在我們的框架中,我們使用analyze table SQL語句收集表和列統計資訊,並將它們儲存到metastore中。對於列的統計資訊,我們收集不同值的數量(number of distinct value),空值的數量,最大/最小值,平均/最大列長度等等。此外,我們儲存等高直方圖以更好地描述列的資料分佈,從而有效地處理資料傾斜。此外,使用列的不同值的數量和表的行數量,我們可以確定列的唯一性,儘管Spark SQL不支援主鍵。這有助於確定例如 join 聯接操作和多列 group by 分組操作的輸出大小。
我們已把這個基於成本的優化器框架貢獻給社群版本Spark 2.2。在我們的框架中,我們計算每個資料庫操作符的基數和輸出大小。通過可靠的統計和精確的估算,我們能夠在這些領域做出好的決定:選擇雜湊連線(hash join)操作的正確構建端(build side),選擇正確的連線演算法(如broadcast hash join與 shuffled hash join), 調整連線的順序等等。在這次演講中,我們將展示Spark SQL的新的基於成本的優化器框架及其對TPC-DS查詢的效能影響。
講師介紹:
Ron Hu (Huawei Technologies)
Ron-Chung Hu is a database system architect at Huawei Technologies, where he works on building a big data analytics platform based on Apache Spark. Previously, he worked at Teradata, Sybase, and MarkLogic, focusing on parallel database systems and search engines. Ron holds a PhD in computer science from the University of California, Los Angeles.
王振華 (Huawei Technologies)
王振華 (Zhenhua Wang) is a research engineer at Huawei Technologies, where he works on building a big data analytics platform based on Apache Spark. He holds a PhD in computer science from Zhejiang University. His research interests include information retrieval and web data mining.
相關文章
- CBO Cost Formulas基於成本優化器的成本計算公式大全ORM優化公式
- 【CBO】基於成本優化器的基本原則(二)優化
- 【CBO】基於成本優化器的基本原則(一)優化
- Spark SQL 效能優化再進一步 CBO 基於代價的優化SparkSQL優化
- 基於成本的Oracle優化法則Oracle優化
- 袋鼠雲數棧基於CBO在Spark SQL優化上的探索SparkSQL優化
- 基於成本的優化器 — 一般錯誤概念和問題(轉)優化
- [zt] 基於索引的SQL語句優化索引SQL優化
- [zt] 收集基於成本的優化統計資料 - 分割槽表優化
- Spark效能優化指南:基礎篇Spark優化
- Spark 是一個基於Java的微Web框架SparkJavaWeb框架
- SQL優化基礎SQL優化
- 【中亦安圖】SQL優化之基於SQL特徵的改寫(9)SQL優化特徵
- 對一條基於分割槽的簡單SQL的優化SQL優化
- Oracle Optimizer:遷移到使用基於成本的最佳化器-----系列1.1 (轉)Oracle
- 關於SQL優化的闢謠SQL優化
- 關於sql語句的優化SQL優化
- hive、spark優化HiveSpark優化
- Spark效能優化Spark優化
- Spark3學習【基於Java】3. Spark-Sql常用APISparkJavaSQLAPI
- 基於mysql資料庫 關於sql優化的一些問題MySql資料庫優化
- 前端基於瀏覽器儲存的AJAX效能優化前端瀏覽器優化
- 基於索引的SQL語句優化之降龍十八掌索引SQL優化
- [摘錄] 基於索引的SQL優化之降龍十八掌索引SQL優化
- 關於SQL優化的小知識SQL優化
- 基於Oracle的SQL最佳化OracleSQL
- sql優化基礎視訊SQL優化
- soar-PHP - SQL 語句優化器和重寫器的 PHP 擴充套件包、 方便框架中 SQL 語句調優PHPSQL優化套件框架
- spark效能優化(一)Spark優化
- SQL優化器探討(zt)SQL優化
- 讀書筆記-《基於Oracle的SQL優化》-第二章-1筆記OracleSQL優化
- 【SQL優化器】初始化引數SQL優化
- 基於Oracle的sql最佳化(1)OracleSQL
- 起源自天文學的PostgreSQL優化器成本因子校對SQL優化
- Spinach: 使用Spark SQL進行即席查詢 [session]SparkSQLSession
- Spark效能優化:優化資料結構Spark優化資料結構
- 基於 PageSpeed 的效能優化實踐優化
- 基於CBO優化器謂詞選擇率的計算方法優化