Photon とは
適用対象: Databricks SQL Databricks Runtime 9.1 以上
Photon でワークロードを実行する利点と、それがサポートする機能、および Photon を有効または無効にする方法について説明します。 Photon は Databricks SQL ウェアハウスで既定でオンになり、Apache Spark API と互換性があるため、既存のコードで動作します。
Photon の用途
Photon は、ハイパフォーマンスの Azure Databricks ネイティブ ベクター化クエリ エンジンであり、SQL ワークロードと DataFrame API 呼び出しをより高速に実行し、ワークロードあたりの総コストを削減します。
Photon を使用する主な機能と利点を次に示します。
- Delta および Parquet テーブルでの SQL および同等のデータフレーム操作のサポート。
- データをより高速に処理し、集計と結合を含む高速クエリ。
- データがディスク キャッシュから繰り返しアクセスされるときのパフォーマンスが向上します。
- 多くの列と多くの小さなファイルを含むテーブルでの堅牢なスキャン パフォーマンス。
- 数千の列を含むワイド テーブルを含む
UPDATE
、DELETE
、MERGE INTO
、INSERT
、CREATE TABLE AS SELECT
を使用した、Delta と Parquet の書き込みの高速化。 - 並べ替えマージ結合をハッシュ結合に置き換えます。
Photon の使用を開始する
Photon は、既定で Databricks Runtime 9.1 LTS 以上を実行しているクラスターで有効です。
クラスターで Photon を手動で無効または有効にするには、クラスターの作成時または編集時に [Photon Acceleration を使用] チェックボックスをオンにしてください。
クラスター API を使用してクラスターを作成する場合は、runtime_engine
を PHOTON
に設定してください。
インスタンスの種類
ドライバー ノードおよびワーカー ノード上のインスタンス番号については、限られたセットが Photon でサポートされています。 Photon のインスタンス型では、Photon 以外のランタイムを実行しているインスタンス型とは異なる速度で DBU が消費されます。 Photon インスタンスと DBU の消費の詳細については、Azure Databricks の価格に関するページを参照してください。
演算子、式、データ型
Photon が対象とする演算子、式、データ型を以下に示します。
演算子
- スキャン、フィルター、プロジェクト
- ハッシュ集計 / 結合 / シャッフル
- 入れ子になったループの結合
- Null-Aware の反結合
- Union、Expand、ScalarSubquery
- Delta/Parquet の書き込みシンク
- 並べ替え
- Windows 関数
式
- 比較 / ロジック
- 算術演算 / 数学 (最も多い)
- 条件付き (IF、CASE など)
- 文字列 (一般的なもの)
- キャスト
- 集計 (最も一般的なもの)
- 日付 / タイムスタンプ
データ型
- Byte/Short/Int/Long
- Boolean
- String または Binary
- Decimal
- フローティング / ダブル
- 日付 / タイムスタンプ
- 構造体
- Array
- マップ
Photon を必要とする機能
Photon を必要とする機能を以下に示します。
- 読み取りと書き込み用の予測 I/O。 「予測 I/O とは」を参照してください。
- H3 地理空間式。 「H3 地理空間の関数」を参照してください。
- 動的なファイルの排除。 「動的なファイルの排除」を参照してください。
制限事項
- 構造化ストリーミング: Photon は現在、Delta、Parquet、CSV、JSON を使用したステートレス ストリーミングをサポートしています。 デルタ シンクまたは Parquet シンクに書き込む場合、ステートレス Kafka および Kinesis ストリーミングがサポートされます。
- Photon では、UDF や RDD API はサポートされていません。
- Photon は、通常 2 秒以内に実行されるクエリには影響しません。
Photon でサポートされていない機能は、Databricks Runtime と同じように実行されます。