次の方法で共有


動的ファイルの整理

動的ファイルの排除により、Delta Lake tablesに対する多くのクエリのパフォーマンスが大幅に向上します。 フィルター ステートメントまたは WHERE 句を含むクエリの動的ファイル排除トリガー。 Photon対応のコンピューティングを使用して、MERGEUPDATE、および DELETE ステートメントで動的ファイルプルーニングを行う必要があります。 Photon が使用されていない場合は、SELECT ステートメントのみが動的ファイルの排除を利用します。

動的ファイルの排除は、パーティション分割されていない tablesや、パーティション分割されていない columnsでの結合の場合に特に効率的です。 動的ファイルの排除のパフォーマンスへの影響は、多くの場合、データのクラスタリングに関連付けられるため、利点を最大限に高めるために Z-Ordering の使用を検討してください。

動的ファイルの排除の背景とユース ケースについては、「動的ファイルの排除を使用した Delta Lake での SQL クエリの高速化 」を参照してください。

設定

動的ファイルの排除は、次の Apache Spark 構成オプションによって制御されます。

  • spark.databricks.optimizer.dynamicFilePruning (既定値は true): オプティマイザーにフィルターのプッシュダウンを指示するメイン フラグ。 set から falseの場合、動的ファイルの排除は有効になりません。
  • spark.databricks.optimizer.deltaTableSizeThreshold (既定値は 10,000,000,000 bytes (10 GB)): 動的ファイルの排除をトリガーするために必要な join のプローブ側のデルタ table の最小サイズ (バイト単位) を表します。 プローブ側があまり大きくない場合は、フィルターを押し下げる価値はないでしょう。table全体をスキャンするだけです。 デルタ table のサイズは、DESCRIBE DETAIL table_name コマンドを実行し、sizeInBytescolumnを確認することで確認できます。
  • spark.databricks.optimizer.deltaTableFilesThreshold (既定値は 10): 動的ファイルの排除をトリガーするために必要な join のプローブ側のデルタ table のファイルの数を表します。 プローブ側の table にしきい値より少ないファイルが含まれている場合、動的ファイル排除はトリガーされません。 table に少数のファイルしかない場合は、動的ファイルの排除を有効にする価値はおそらくありません。 デルタ table のサイズは、DESCRIBE DETAIL table_name コマンドを実行し、numFilescolumnを確認することで確認できます。