CREATE BLOOM FILTER INDEX

適用対象: 「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

新しいデータまたは書き換えられたデータに対してブルーム フィルターのインデックスを作成します。既存のデータに対してはブルーム フィルターが作成 "されません"。 テーブル名またはいずれかの列が存在しない場合、コマンドは失敗します。 列に対してブルーム フィルターが有効になっている場合、既存のブルーム フィルター オプションは新しいオプションに置き換えられます。

構文

CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
FOR COLUMNS( { columnName1 [ options ] } [, ...] )
[ options ]

options
  OPTIONS ( { key1 [ = ] val1 } [, ...] )

パラメーター

既に書き込まれているデータに対してブルーム フィルターのインデックスを作成することはできませんが、OPTIMIZE コマンドでは、再構成されたデータのブルーム フィルターが更新されます。 そのため、以下の場合にテーブルで OPTIMIZE を実行して、ブルーム フィルターにバックフィルすることができます。

  • テーブルを以前に最適化していない場合。
  • ファイル サイズが異なる場合。データ ファイルの再書き込みが必要です。
  • ZORDER を指定する場合 (または、既に存在する場合は別の ZORDER)。データ ファイルの再書き込みが必要です。

ブルーム フィルターをチューニングするには、列レベルまたはテーブル レベルでオプションを定義します。

  • fpp: 擬陽性の確率。 書き込まれたブルーム フィルターごとの望ましい擬陽性率。 これは、ブルーム フィルターに 1 つの項目を書き込むのに必要なビット数に影響し、ブルーム フィルターのサイズに影響します。 値は 0 より大きく、1 以下でなければなりません。 既定値は 0.1 で、項目ごとに 5 ビットが必要です。
  • numItems: ファイルに含めることができる個別の項目の数。 この設定は、ブルーム フィルターで使用される総ビット数 (項目数 * 項目あたりのビット数) に影響するため、フィルター処理の品質にとって重要です。 この設定が正しくない場合、ブルーム フィルターは入力が非常に少ないか、ディスク領域が無駄になり、このファイルをダウンロードする必要があるクエリの速度が低下するか、またはフィルターがいっぱいになり、精度が低下します (FPP が高い)。 値は 0 を超える値である必要があります。 既定値は 100 万項目です。
  • maxExpectedFpp: ブルーム フィルターがディスクに書き込まれる、予想される最大の偽陽性確率。 予想される FPP がこのしきい値より大きい場合、ブルーム フィルターの選択度が低すぎます。ブルーム フィルターを使用するために必要な時間とリソースが、有用性よりも大きくなります。 この値は、0 から 1 までの値である必要があります。 既定値は 1.0 (無効) です。

これらのオプションは、データを書き込むときにのみ役割を果たします。 これらのプロパティは、書き込み操作、テーブル レベル、列レベルのさまざまな階層レベルで構成できます。 列レベルはテーブル レベルと操作レベルより優先され、テーブル レベルは操作レベルより優先されます。

ブルーム フィルターのインデックス」を参照してください。