ブルーム フィルターインデックス
手記
Photon 対応コンピューティングと Databricks Runtime 12.2 以降を使用する場合、予測入力/出力は読み取りパフォーマンスではブルームフィルターを上回ります。 予測 I/O とは を参照してください。.
Databricks Runtime 13.3 以降では、Databricks では Delta テーブル レイアウトにクラスタリングを使用することをお勧めします。 「デルタ テーブルに液体クラスタリングを使用する」を参照してください。
Databricks では、これらの機能をサポートしていないコンピューティングを使用する場合にのみ、ブルーム フィルターを使用することをお勧めします。
ブルーム フィルター インデックスは、選択した列 (特に任意のテキストを含むフィールド) でデータをスキップできるようにする、スペース効率の高いデータ構造です。
ブルーム フィルター インデックスのしくみ
Azure Databricks Bloom フィルター インデックスは、各データ ファイルのデータ スキップ インデックスで構成されます。 ブルーム フィルター インデックスを使用すると、列の値がファイル に明確に
ブルーム フィルターでは、byte
、short
、int
、long
、float
、double
、date
、timestamp
、string
の入力データ型の列がサポートされます。 Null はブルーム フィルターに追加されないため、null 関連のフィルターではデータ ファイルの読み取りが必要です。 Azure Databricks では、and
、or
、in
、equals
、equalsnullsafe
のデータ ソース フィルターがサポートされています。 ブルーム フィルターは、入れ子になった列ではサポートされていません。
構成とリファレンス
ブルーム フィルターを有効にするには、次の構文を使用します。
CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))
構文の詳細については、CREATE BLOOM FILTER INDEX と DROP 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}"))
例えば: