宣布光子公共預覽:下一代查詢引擎的磚Lakehouse平台Beplay体育安卓版本
2021年6月17日 在Beplay体育安卓版本平台的博客
磚光子現在一般用於AWS和Azure。
今天,我們很高興宣布的可用性光子在公共預覽。光子是一個本機c++開發的矢量化引擎顯著提高查詢性能。你所要做的受益於光子是打開它。光子將無縫協調工作和資源和透明地加快您的SQL和火花的查詢。不需要調優或用戶幹預。
探索為什麼lakehouses未來的數據架構與數據倉庫的父親,Bill Inmon。
而新引擎的目的是最終加速所有工作負載,在預覽,光子是專注於運行SQL工作負載更快,同時減少你的總成本每工作負載。有兩種方法你可以受益於光子:
- 作為默認查詢引擎磚的SQL在沒有額外的費用
- 作為一個新的高性能的一部分運行時磚集群上以不同的速度消耗DBUs比相同的實例運行non-Photon運行時類型。
在這個博客中,我們將討論建立光子的動機,解釋光子在幕後工作,如何監控查詢執行的光子在磚磚SQL和傳統的集群數據科學與數據工程。
快與光子
人可能想知道,為什麼建立一個新的查詢引擎?他們說一個條形圖抵得上一千字,所以我們允許數據告訴這個故事。
從這個圖表可以看出磚使用功率測試運行時性能的TPC-DS基準(比例因子1 tb),業績穩步上升。然而,隨著光子的引入,我們看到一個巨大的飛躍在查詢性能——光子比磚快2倍8.0運行時。這就是為什麼我們非常興奮光子的潛力,我們剛剛開始——光子路線圖包含更大的覆蓋範圍和更優化的計劃。
早期的私人客戶預覽觀察用平均光子加速使用SQbeplay体育app下载地址L工作負載如:
- 基於sql的工作——在SQL和火花DataFrames加速大規模生產工作。
- 物聯網的用例——使用光子速度時間序列分析相比,火花和傳統磚運行時。
- 數據隱私和遵從性——查詢petabytes-scale數據識別和刪除記錄與三角洲湖沒有複製數據,生產工作和光子。
- 加載數據到三角洲和拚花——光子的矢量化的I / O速度為三角洲和拚花表數據加載,降低整體運行和成本數據的工程工作。
光子是如何工作的
而光子是用c++編寫的,它集成了直接在磚運行時和火花。這意味著不需要任何代碼更改使用光子。讓我帶您經曆一個快速查詢的“生命周期”,以幫助您理解光子插頭的地方。
當客戶端提交一個給定的查詢或命令的火花司機,解析,催化劑優化器的分析、規劃和優化就像如果沒有涉及光子。光子的一個區別是,運行時引擎使經過物理計劃和決定哪些部分可以運行在光子。次要的修改可能會使光子的計劃,例如,改變排序合並連接散列連接,但計劃的總體結構,包括連接順序,將保持不變。因為光子還不支持所有功能,火花,一個查詢可以運行部分光子和部分火花。該混合執行模型對用戶是完全透明的。
然後查詢計劃分解成原子單元的分布式執行稱為任務在線程工作節點上運行,哪個操作在一個特定的分區的數據。在這個層次上,光子引擎工作。你可以把它作為替代火花的整體階段codegen本地引擎實現。光子庫加載到JVM,火花和光子通過溝通JNI,傳遞數據指向堆內存的指針。光子還集成了火花的內存管理器混合協調溢出的計劃。火花和光子都配置為使用堆內存和協調下內存壓力。
光子與公共預覽版,支持許多——但並不是所有的數據類型,運營商和表達式。指的是光子概述文檔的細節。
光子執行分析
考慮到並不是所有工作負載和運營商支持的今天,您可能想知道如何選擇工作負載,可以受益於光子和如何檢測光子的存在的執行計劃。簡而言之,光子是自下而上——它開始執行表掃描操作符和持續的DAG(有向無環圖),直到達到一個不支持的操作。在這一點上,執行葉子光子,光子和其餘的操作將不運行。
- 如果您使用的是光子在磚SQL,很容易看到多大的查詢使用光子跑:
- 單擊查詢曆史在側邊欄圖標。
- 單擊包含查詢您想要分析的線。
- 在查詢詳細信息彈出,點擊執行細節。
- 看一下任務時間在光子公製在底部。
一般來說,更大的任務時間的百分比在光子,光子性能受益越大。
如果您使用的是光子在磚集群,您可以查看光子行動引發的UI。下麵的屏幕截圖顯示了查詢細節DAG。有兩個光子在DAG的跡象。首先,PhotonGroupingAgg等與光子,光子運營商開始。其次,在DAG光子運營商和階段是彩色的桃子,而non-Photon的是藍色的。
紐約出租車上開始使用一個工作示例數據
正如上麵所討論的,有兩種方法可以使用光子:
- 光子在磚SQL的所有端點的默認。隻是提供一個SQL端點,運行您的查詢和使用上麵的方法來確定有多少光子性能產生了影響。
- 磚集群上運行光子(AWS隻在公共預覽版),選擇一個光子運行時配置一個新的集群。新的光子實例類型以不同的速度消耗DBUs比相同實例類型運行non-Photon運行時。為更多的細節在光子的細節實例和DBU消費,請參考AWS磚價格頁麵。
一旦你創建了一個Photon-enabled SQL端點或集群,您可以嚐試運行查詢紐約出租車數據集從磚SQL編輯器或一個筆記本。我們有預裝摘錄,訪問我們的一部分磚的數據集。
首先,創建一個新表指向現有數據使用以下SQL代碼片段:
創建如果數據庫不存在photon_demo;創建表photon_demo.nyctaxi_yellowcab_table使用δ選項(路徑“/ databricks-datasets / nyctaxi /表/ nyctaxi_yellow /”);
試試這個查詢和享受光子的速度!
選擇vendor_id,總和(trip_distance)作為SumTripDistance,AVG(trip_distance)作為AvgTripDistance從photon_demo.nyctaxi_yellowcab_table在哪裏passenger_count在(1,2,4)集團通過vendor_id訂單通過vendor_id;
我們測量的響應時間上麵的查詢與光子和傳統的磚運行時加熱了的AWS集群和2 i3.2xlarge執行人i3.2xlarge司機。這裏是結果。
如果你想了解更多關於光子,你也可以看我們的數據和AI峰會會議:激進的光子速度的SQL查詢。感謝您的閱讀,期待您的反饋!