メインコンテンツまでスキップ

Photonとは?

この記事では、Photonクエリエンジンでワークロードを実行する利点について説明します。

Photon は、SQL ワークロードと データフレーム API 呼び出しをより高速に実行し、ワークロードあたりの総コストを削減する、高性能な Databricks ネイティブのベクトル化クエリ エンジンです。 Photon は Apache Spark APIsと互換性があるため、既存のコードで動作します。

Photonの機能

Photonを使用する主な機能と利点は次のとおりです。

  • Delta テーブルと Parquet テーブルでの SQL および同等の データフレーム 操作のサポート。
  • データをより高速に処理し、集計と結合を含む高速クエリ。
  • ディスク・キャッシュからデータが繰り返しアクセスされる場合のパフォーマンスが高速になります。
  • 多くの列と多数の小さなファイルを含むテーブルでの堅牢なスキャンパフォーマンス。
  • UPDATEDELETEMERGE INTOINSERTCREATE 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が必要な機能は次のとおりです。

制限

  • 構造化ストリーミング: Photonは現在、Delta、Parquet、CSV、JSONによるステートレスストリーミングをサポートしています。 ステートレスな Kafka と Kinesis のストリーミングは、Delta または Parquet シンクに書き込むときにサポートされます。
  • Photon は、UDF、 RDD APIs、またはデータセット APIsをサポートしていません。
  • Photonは、通常2秒未満で実行されるクエリに影響を与えません。

ワークロードがサポートされていないオペレーションにヒットした場合、コンピュート リソースは残りのワークロードで標準のランタイムエンジンに切り替わります。