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