Photonとは
この記事では、Photonクエリエンジンでワークロードを実行する利点について説明します。
Photon は、SQL ワークロードと DataFrame API 呼び出しをより高速に実行し、ワークロードあたりの総コストを削減する、高性能な Databricks ネイティブのベクトル化クエリ エンジンです。 Photon は Apache Spark APIsと互換性があるため、既存のコードで動作します。
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 の有効化は、コンピュートのタイプによって異なります。
SQLウェアハウス、ノートブックやワークフローのサーバレス コンピュートでは、デフォルトでPhotonが実行されます。
Photonは、Databricks Runtime 9.1LTS 以上を実行しているコンピュート デフォルトによって有効になります。
Photon は、 Databricks Runtime 15.2 for Machine Learning 以降を実行しているコンピュートで手動で有効にできます。
Photonの有効化を設定する
all-purposeコンピュートとジョブコンピュートでPhotonを有効または無効にするには、 コンピュート UI のUse Photon Acceleration (Photonアクセラレーションを使用)チェックボックスをオンにします。
Photon は、 クラスターAPIまたは ジョブAPIで作成されたコンピュートでは、デフォルトによって有効になっていません。 Photon を有効にするには、 runtime_engine
属性を PHOTON
に設定する必要があります。
サポートされているインスタンスタイプ
Photonは、ドライバーノードとワーカーノードで多くのインスタンスタイプをサポートしています。 Photonインスタンスタイプは、非Photonランタイムを実行している同じインスタンスタイプとは異なるレートでDBUを消費します。 Photon インスタンスと DBU の消費量の詳細については、 Databricks の価格ページを参照してください。
サポートされている演算子、式、およびデータ型
以下は、Photonがカバーする演算子、式、およびデータ型です。
演算子
スキャン、フィルター、投影
ハッシュ集計/結合/シャッフル
ネスト・ループ結合
ヌル対応アンチジョイン(Null-Aware Anti Join)
Union、Expand、ScalarSubquery
Delta/Parquet 書き込みシンク
並べ替え
ウィンドウ関数
式
比較/ロジック
算数/数学(ほとんど)
条件付き (IF、CASE など)
文字列(一般的なもの)
キャスト
アグリゲート(最も一般的なもの)
日付/タイムスタンプ
データの種類
バイト/ショート/イント/ロング
ブール値
文字列/バイナリ
DECIMALタイプ
Float/Double (浮動小数点数/倍精度
日付/タイムスタンプ
構造体
配列
Map
Photonを必要とする機能
以下は、Photonを必要とする機能です。
読み取りと書き込みの予測 I/O。 予測 I/O とはを参照してください。
H3 地理空間式。 H3 地理空間関数を参照してください。
動的ファイルプルーニング。 動的ファイルプルーニングを参照してください。