什麼是 Photon?

適用于: check marked yes Databricks SQL check marked yes Databricks Runtime 9.1 和更新版本

瞭解在 Photon 上執行工作負載的優點、其支援的功能,以及如何啟用或停用 Photon。 Photon 預設會在 Databricks SQL 倉儲中開啟,且與 Apache Spark API 相容,因此它適用于您現有的程式碼。

Photon 的用途為何?

Photon 是高效能的 Azure Databricks 原生向量化查詢引擎,可更快速地執行 SQL 工作負載和 DataFrame API 呼叫,以降低每個工作負載的總成本。

以下是使用 Photon 的主要功能和優點。

  • 支援使用 Delta 和 Parquet 資料表的 SQL 和對等 DataFrame 作業。
  • 加快處理資料的加速查詢,並包含匯總和聯結。
  • 從磁片快取重複存取資料時,效能更快。
  • 具有許多資料行和許多小型檔案之資料表的強固掃描效能。
  • 使用 UPDATE 、 、 INSERTDELETEMERGE INTO 、 和 CREATE TABLE AS SELECT 撰寫的 Delta 和 Parquet 更快,包括包含數千個數據行的寬資料表。
  • 以雜湊聯結取代排序合併聯結。

開始使用 Photon

在執行 Databricks Runtime 9.1 LTS 和更新版本之叢集上,預設會啟用 Photon。

若要在叢集上手動停用或啟用 Photon,請在建立 或編輯叢集 時選取 [使用 Photon 加速 ] 核取方塊。

如果您使用叢集 API 建立叢集 ,請將 設定 runtime_enginePHOTON

執行個體類型

Photon 支援驅動程式和背景工作節點上的一些實例類型。 Photon 實例類型會以與執行非 Photon 執行時間的相同實例類型不同的速率取用 DBU。 如需 Photon 實例和 DBU 耗用量的詳細資訊,請參閱 Azure Databricks 定價頁面

運算子、運算式和資料類型

以下是 Photon 所涵蓋的運算子、運算式和資料類型。

運算子

  • 掃描、篩選、專案
  • 雜湊匯總/聯結/隨機顯示
  • 巢狀迴圈聯結
  • Null 感知反聯結
  • Union、Expand、ScalarSubquery
  • Delta/Parquet 寫入接收
  • Sort
  • 視窗函式

運算式

  • 比較 / 邏輯
  • 算術/數學(大部分)
  • 條件式 (IF、CASE 等)
  • 字串 (常見字串)
  • 轉型
  • 匯總(最常見的匯總)
  • 日期/時間戳記

資料類型

  • Byte/Short/Int/Long
  • 布林值
  • 字串/二進位
  • Decimal
  • 浮點數/雙精度浮點數
  • 日期/時間戳記
  • 結構
  • 陣列
  • 地圖

需要 Photon 的功能

以下是需要 Photon 的功能。

限制

  • 結構化串流:Photon 目前支援使用 Delta、Parquet、CSV 和 JSON 的無狀態串流。 寫入 Delta 或 Parquet 接收時,支援無狀態 Kafka 和 Kinesis 串流。
  • Photon 不支援 UDF 或 RDD API。
  • Photon 不會影響通常在兩秒內執行的查詢。

Photon 不支援的功能會以與 Databricks Runtime 相同的方式執行。