基於成本的Spark SQL優化器框架 [session]

OReillyData發表於2017-06-02

Strata Data Conference早期門票優惠6月9日截止!點選閱讀原文可登入會議網站,儘快報名以確定留位

640?wx_fmt=png



基於成本的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)

640?wx_fmt=jpeg

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)

640?wx_fmt=jpeg

王振華 (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.

640?wx_fmt=png


相關文章