次の方法で共有


ブルーム フィルターインデックス

手記

Photon 対応コンピューティングと Databricks Runtime 12.2 以降を使用する場合、予測入力/出力は読み取りパフォーマンスではブルームフィルターを上回ります。 予測 I/O とは を参照してください。.

Databricks Runtime 13.3 以降では、Databricks では Delta テーブル レイアウトにクラスタリングを使用することをお勧めします。 「デルタ テーブルに液体クラスタリングを使用する」を参照してください。

Databricks では、これらの機能をサポートしていないコンピューティングを使用する場合にのみ、ブルーム フィルターを使用することをお勧めします。

ブルーム フィルター インデックスは、選択した列 (特に任意のテキストを含むフィールド) でデータをスキップできるようにする、スペース効率の高いデータ構造です。

ブルーム フィルター インデックスのしくみ

Azure Databricks Bloom フィルター インデックスは、各データ ファイルのデータ スキップ インデックスで構成されます。 ブルーム フィルター インデックスを使用すると、列の値がファイル に明確に されていないか、ファイル 可能性が高いと判断できます。 ファイルを読み取る前に、Azure Databricks はインデックス ファイルをチェックし、ファイルがデータ フィルターと一致する可能性があることをインデックスが示している場合にのみファイルが読み取られます。

ブルーム フィルターでは、byteshortintlongfloatdoubledatetimestampstringの入力データ型の列がサポートされます。 Null はブルーム フィルターに追加されないため、null 関連のフィルターではデータ ファイルの読み取りが必要です。 Azure Databricks では、andorinequalsequalsnullsafeのデータ ソース フィルターがサポートされています。 ブルーム フィルターは、入れ子になった列ではサポートされていません。

構成とリファレンス

ブルーム フィルターを有効にするには、次の構文を使用します。

CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))

構文の詳細については、CREATE BLOOM FILTER INDEXDROP BLOOM FILTER INDEXを参照してください。

Bloom フィルター操作を無効にするには、セッション レベル spark.databricks.io.skipping.bloomFilter.enabled 構成を falseに設定します。

ブルーム フィルター インデックスの一覧を表示する

インデックスの一覧を表示するには、次のコマンドを実行します。

spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))

例えば:

インデックスの表示