什麼是 Photon?
本文說明在 Photon 查詢引擎上執行工作負載的優點。
Photon 是高效能 Azure Databricks 本機向量化查詢引擎,可更快地執行 SQL 工作負載和 DataFrame API 調用,以降低每個工作負載的總成本。 Photon 與 Apache Spark API 相容,因此可與現有程式碼搭配使用。
Photon 功能
以下是使用 Photon 的主要特性和優點。
- 支援使用 Delta 和 Parquet 資料表的 SQL 和等效 DataFrame 作業。
- 加快處理資料的加速查詢,並包含彙總和聯結。
- 從磁碟快取重複存取資料時,效能更快。
- 對具有許多資料行和許多小型檔案之資料表具有強大的掃描效能。
- 使用
UPDATE
、DELETE
、MERGE INTO
、INSERT
和CREATE TABLE AS SELECT
加快 Delta 及 Parquet 寫入速度,包括含數千個資料行的寬資料表。 - 以雜湊聯結取代排序合併聯結。
- 對於 AI 和 ML 工作負載,Photon 使用 Spark SQL、Spark DataFrames、特徵工程、GraphFrames 和 xgboost4j 提高應用程式效能。
Photon 啟用
Photon 啟用情況因計算類型而異:
Photon 預設在 SQL 倉儲以及筆記本和工作流程的無伺服器計算上執行。
預設會對執行 Databricks Runtime 9.1 LTS 及以上版本的計算啟用 Photon。
可以對執行適用於機器學習的 Databricks Runtime 15.2 或以上版本之計算手動啟用 Photon。
設定 Photon 啟用
若要對全用途和工作計算啟用或停用 Photon,請選取計算 UI 中的 [使用 Photon 加速] 核取方塊。
使用叢集 API 或工作 API 建立的任何計算預設不啟用 Photon。 若要啟用 Photon,必須將 runtime_engine
屬性設定為 PHOTON
。
支援的執行個體類型
Photon 支援驅動程式和背景工作角色節點上的多個執行個體類型。 Photon 執行個體類型消耗 DBU 的速率與執行非 Photon 執行階段的相同執行個體類型不同。 如需 Photon 執行個體和 DBU 使用量的詳細資訊,請參閱 Azure Databricks 定價頁面。
支援的運算子、運算式和資料類型
以下是 Photon 涵蓋的運算子、運算式和資料類型。
運算子
- 掃描, 篩選, 專案
- 雜湊彙總/聯結/隨機顯示
- 巢狀迴圈聯結
- Null 感知反聯結
- 聯合, 擴展, ScalarSubquery
- Delta/Parquet 寫入接收器
- Sort
- Window 函式
運算式
- 比較 / 邏輯
- 算術 / 數學 (大部分)
- 條件式 (IF、CASE 等)
- 字串 (常見字串)
- 轉型
- 彙總 (最常見的彙總)
- 日期/時間戳記
資料類型
- 位元組/短/整型/長
- 布林值
- 字串/二進位
- Decimal
- 浮點數/雙精確度
- 日期/時間戳記
- 結構
- 陣列
- 地圖
需要 Photon 的功能
以下是需要 Photon 的功能。
- 讀取和寫入的預測性 I/O。 請參閱什麼是預測性 I/O?。
- H3 地理空間表達式。 請參閱 H3 地理空間函式。
- 動態檔案剪除。 請參閱動態檔案剪除。
限制
- 結構化串流:Photon 目前支援使用 Delta、Parquet、CSV 和 JSON 的無狀態串流。 寫入 Delta 或 Parquet 接收器時,支援無狀態 Kafka 和 Kinesis 串流。
- Photon 不支援 UDF 或 RDD API。
- Photon 不會影響一般在兩秒之內執行的查詢。
如果您的工作負載遇到不支援的作業,計算資源將切換到標準執行階段引擎來處理剩餘的工作負載。