適用対象:
Databricks SQL
Databricks Runtime
新しいデータまたは書き換えられたデータに対してブルーム フィルターのインデックスを作成します。既存のデータに対してはブルーム フィルターが作成 "されません"。 テーブル名またはいずれかの列が存在しない場合、コマンドは失敗します。 列に対してブルーム フィルターが有効になっている場合、既存のブルーム フィルター オプションは新しいオプションに置き換えられます。
構文
CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
FOR COLUMNS( { columnName1 [ options ] } [, ...] )
[ options ]
options
OPTIONS ( { key1 [ = ] val1 } [, ...] )
パラメーター
-
既存の Delta テーブルを識別します。 名前には、 時仕様またはオプション指定を含めてはなりません。
既に書き込まれているデータのブルーム フィルター インデックスを作成することはできませんが、OPTIMIZE コマンドは再構成されたデータの Bloom フィルターを更新します。 そのため、以下の場合にテーブルで OPTIMIZE を実行して、ブルーム フィルターにバックフィルすることができます。
- テーブルを以前に最適化していない場合。
- ファイル サイズが異なる場合。データ ファイルの再書き込みが必要です。
-
ZORDERを指定する場合 (または、既に存在する場合は別のZORDER)。データ ファイルの再書き込みが必要です。
ブルーム フィルターをチューニングするには、列レベルまたはテーブル レベルでオプションを定義します。
-
fpp: 偽陽性率。 書き込まれたブルーム フィルターごとの望ましい擬陽性率。 これは、ブルーム フィルターに 1 つの項目を書き込むのに必要なビット数に影響し、ブルーム フィルターのサイズに影響します。 値は 0 より大きく、1 以下でなければなりません。 既定値は 0.1 で、項目ごとに 5 ビットが必要です。 -
numItems: ファイルに含めることができる個別の項目の数。 この設定は、ブルーム フィルターで使用される総ビット数 (項目数 * 項目あたりのビット数) に影響するため、フィルター処理の品質にとって重要です。 この設定が正しくない場合、ブルーム フィルターは入力が非常に少ないか、ディスク領域が無駄になり、このファイルをダウンロードする必要があるクエリの速度が低下するか、またはフィルターがいっぱいになり、精度が低下します (FPP が高い)。 値は 0 を超える値である必要があります。 既定値は 100 万項目です。 -
maxExpectedFpp: ブルーム フィルターがディスクに書き込まれる、予想される最大の偽陽性確率。 予想される FPP がこのしきい値より大きい場合、ブルーム フィルターの選択度が低すぎます。ブルーム フィルターの使用にかかる時間とリソースは、その有用性を上回ります。 この値は、0 から 1 までの値である必要があります。 既定値は 1.0 (無効) です。
これらのオプションは、データを書き込むときにのみ役割を果たします。 これらのプロパティは、書き込み操作、テーブル レベル、列レベルのさまざまな階層レベルで構成できます。 列レベルはテーブル レベルと操作レベルより優先され、テーブル レベルは操作レベルより優先されます。
「ブルーム フィルターのインデックス」を参照してください。