Photonとは?
この記事では、Photonクエリエンジンでワークロードを実行する利点について説明します。
Photon は、SQL ワークロードと データフレーム API 呼び出しをより高速に実行し、ワークロードあたりの総コストを削減する、高性能な Databricks ネイティブのベクトル化クエリ エンジンです。 Photon は Apache Spark APIsと互換性があるため、既存のコードで動作します。
Photonの機能
Photonを使用する主な機能と利点は次のとおりです。
- Delta テーブルと Parquet テーブルでの SQL および同等の データフレーム 操作のサポート。
- データをより高速に処理し、集計と結合を含む高速クエリ。
- ディスク・キャッシュからデータが繰り返しアクセスされる場合のパフォーマンスが高速になります。
- 多くの列と多数の小さなファイルを含むテーブルでの堅牢なスキャンパフォーマンス。
UPDATE
、DELETE
、MERGE INTO
、INSERT
、CREATE TABLE AS SELECT
を使用した Delta と Parquet の書き込みが高速化され、数千の列を含む幅の広いテーブルが含まれます。- ソート・マージ・ジョインをハッシュ・ジョインで置き換えます。
- AI および ML ワークロードの場合、Photon は Spark SQL、Spark データフレーム、特徴量エンジニアリング、GraphFrames、xgboost4j を使用するアプリケーションのパフォーマンスを向上させます。
Photon イネーブルメント
Photon の有効化は、コンピュートのタイプによって異なります。
-
SQLウェアハウス、ノートブックやワークフローのサーバレス コンピュートでは、デフォルトでPhotonが実行されます。
-
Photonは、Databricks Runtime 9.1LTS 以上を実行しているコンピュート デフォルトによって有効になります。
-
Photon は、 Databricks Runtime 15.2 for Machine Learning(EoS) 以降を実行しているコンピュートで手動で有効にできます。
Photonの有効化を設定する
Photonall-purpose とジョブ コンピュートの を有効または無効にするには、コンピュート UI の[UsePhoton Acceleration (アクセラレーションを使用)] チェックボックスをオンにします。
Photon は、クラスター (クラスター) API または Jobs (ジョブ) APIで作成されたコンピュートでは、デフォルトによって有効になっていません。Photon を有効にするには、 runtime_engine
属性を PHOTON
に設定する必要があります。
サポートされているインスタンスタイプ
Photonは、ドライバーノードとワーカーノードでいくつかのインスタンスタイプをサポートしています。 Photon インスタンスタイプは、非 Photon ランタイムを実行している同じインスタンスタイプとは異なる速度で DBU を消費します。 Photon インスタンスとDBU消費量の詳細については、Databricks の価格ページを参照してください。
サポートされている演算子、式、およびデータ型
以下は、Photonがカバーする演算子、式、およびデータ型です。
演算子
- スキャン、フィルター、プロジェクト
- ハッシュ集約/結合/シャッフル
- ネストループ結合
- NULL 対応アンチジョイン
- ユニオン、拡張、スカラーサブクエリ
- Delta/Parquet 書き込みシンク
- 並べ替え
- ウィンドウ機能
式
- 比較 / ロジック
- 算数/数学(ほとんど)
- 条件付き(IF、CASEなど)
- 文字列(一般的なもの)
- キャスト
- 骨材(最も一般的なもの)
- 日付/タイムスタンプ
データの種類
- バイト/ショート/int/ロング
- ブール値
- 文字列/バイナリ
- DECIMALタイプ
- フロート/ダブル
- 日付/タイムスタンプ
- 構造体
- array
- Map
Photon を必要とする機能
Photonが必要な機能は次のとおりです。
- 読み取りと書き込みの予測I/O。 「予測 I/O とは」を参照してください。
- H3 地理空間式。 H3 地理空間関数を参照してください。
MERGE
、UPDATE
、およびDELETE
ステートメントでの動的ファイルプルーニング。「動的ファイルプルーニング」を参照してください。
制限
- 構造化ストリーミング: Photonは現在、Delta、Parquet、CSV、JSONによるステートレスストリーミングをサポートしています。 ステートレスな Kafka と Kinesis のストリーミングは、Delta または Parquet シンクに書き込むときにサポートされます。
- Photon は、UDF、 RDD APIs、またはデータセット APIsをサポートしていません。
- Photonは、通常2秒未満で実行されるクエリに影響を与えません。
ワークロードがサポートされていないオペレーションにヒットした場合、コンピュート リソースは残りのワークロードで標準のランタイムエンジンに切り替わります。