LoginSignup
0
0

More than 1 year has passed since last update.

Databricksの動的ファイルプルーニング

Posted at

Dynamic file pruning | Databricks on AWS [2022/9/8時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

動的ファイルプルーニングによって、Delta Lakeテーブルに対する数多くのクエリーのパフォーマンスを劇的に改善することができます。特に動的ファイルプルーニングは、パーティショニングされていないテーブルや、パーティショニングされていないカラムのjoinにおいて効率的なものとなります。動的ファイルプルーニングのパフォーマンスインパクトは、データのクラスタリングと創刊するので、メリットを最大化するためにZ-Orderingを使うことを検討してください。

動的ファイルプルーニングの背景やユースケースに関しては、動的ファイルプルーニングによるDelta LakeのSQLクエリーの高速化をご覧ください。

設定

動的ファイルプルーニングは、以下のApache Spark設定のオプションで制御することができます。

  • spark.databricks.optimizer.dynamicFilePruning (デフォルトはtrueです): オプティマイザにフィルターをプッシュダウンすることを指示するメインのフラグです。falseに設定されると、動的ファイルプルーニングは有効化されません。
  • spark.databricks.optimizer.deltaTableSizeThreshold (デフォルトは10,000,000,000バイト(10 GB)): 動的ファイルプルーニングを起動するのに必要なjoinのプローブ側におけるDeltaテーブルの最小サイズ(バイト)を表現します。プローブ側がそれほど大きくない場合には、フィルターをプッシュダウンする価値は低いので、シンプルにテーブル全体をスキャンしても構いません。DESCRIBE DETAIL table_nameコマンドを実行し、sizeInBytesカラムを参照することで、Deltaテーブルのサイズを確認することができます。
  • spark.databricks.optimizer.deltaTableFilesThreshold (デフォルトはDatabricksランタイム8.4以降では10、Databricksランタイム8.3以前では1000です): 動的ファイルプルーニングを起動するのに必要なjoinのプローブ側のDeltaテーブルのファイル数を表現します。プローブ側のテーブルが閾値よりも少ない数のファイルを含んでいる場合には、動的ファイルプルーニングは起動されません。テーブルに数ファイルしかない場合、動的ファイルプルーニングを行う必要性は低くなります。DESCRIBE DETAIL table_nameコマンドを実行し、numFilesカラムを参照することで、Deltaテーブルのファイル数を確認することができます。

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0