動的なファイルの排除Dynamic file pruning

動的ファイル排除 (DFP) を使用すると、デルタテーブルに対する多くのクエリのパフォーマンスを大幅に向上させることができます。Dynamic file pruning (DFP), can significantly improve the performance of many queries on Delta tables. DFP は、パーティション分割されていないテーブルや、パーティション分割されていない列に対する結合では特に効率的です。DFP is especially efficient for non-partitioned tables, or for joins on non-partitioned columns. DFP のパフォーマンスへの影響は、多くの場合、データのクラスタリングに関連しているため、DFP の利点を最大限に活用するには、 Z オーダー を使用することを検討してください。The performance impact of DFP is often correlated to the clustering of data so consider using Z-Ordering to maximize the benefit of DFP.

DFP のバックグラウンドおよびユースケースについては、「 動的ファイル排除によるデルタレイクでの高速 SQL クエリ」を参照してください。For background and use cases for DFP, see Faster SQL Queries on Delta Lake with Dynamic File Pruning.

注意

Databricks Runtime 6.1 以降で使用できます。Available in Databricks Runtime 6.1 and above.

DFP は、次の Apache Spark 構成オプションによって制御されます。DFP is controlled by the following Apache Spark configuration options:

  • spark.databricks.optimizer.dynamicPartitionPruning (既定値は true ): DFP フィルターをプッシュダウンするようにオプティマイザーに指示するメインフラグ。spark.databricks.optimizer.dynamicPartitionPruning (default is true): The main flag that directs the optimizer to push down DFP filters. に設定すると false 、DFP は有効になりません。When set to false, DFP will not be in effect.
  • spark.databricks.optimizer.deltaTableSizeThreshold (既定値は 10,000,000,000 bytes (10 GB) ): DFP をトリガーするために必要な結合のプローブ側のデルタテーブルの最小サイズ (バイト単位) を表します。spark.databricks.optimizer.deltaTableSizeThreshold (default is 10,000,000,000 bytes (10 GB)): Represents the minimum size (in bytes) of the Delta table on the probe side of the join required to trigger DFP. プローブ側があまり大きくない場合は、フィルターをプッシュダウンすることはできないでしょう。単にテーブル全体をスキャンするだけです。If the probe side is not very large, it is probably not worthwhile to push down the filters and we can just simply scan the whole table. デルタテーブルのサイズを確認するには、コマンドを実行し、 DESCRIBE DETAIL table_name 列を参照し sizeInBytes ます。You can find the size of a Delta table by running the DESCRIBE DETAIL table_name command and then looking at the sizeInBytes column.
  • spark.databricks.optimizer.deltaTableFilesThreshold (既定値は 1000 ): DFP をトリガーするために必要な結合のプローブ側のデルタテーブルのファイル数を表します。spark.databricks.optimizer.deltaTableFilesThreshold (defaults is 1000): Represents the number of files of the Delta table on the probe side of the join required to trigger DFP. プローブ側のテーブルに含まれるファイルの数がしきい値を超えると、DPP はトリガーされません。When the probe side table contains fewer files than the threshold value, DPP will not be triggered. テーブルに少数のファイルしかない場合は、DFP を有効にするのが妥当でないと考えられます。If a table has only a few files, it is probably not worthwhile to enable DFP. デルタテーブルのサイズを確認するには、コマンドを実行し、 DESCRIBE DETAIL table_name 列を参照し numFiles ます。You can find the size of a Delta table can be found by running the DESCRIBE DETAIL table_name command and then looking at the numFiles column.