Create ブルーム Filter インデックス (Delta Lake on Azure Databricks)Create Bloom Filter Index (Delta Lake on Azure Databricks)

ON [TABLE] table_name
[FOR COLUMNS(columnName1 [OPTIONS(..)], columnName2, ...)]

新しいデータまたは書き換えられるデータに対してブルーム filter インデックスを作成します。既存のデータに対してブルームフィルターを作成すること はできませんCreate a Bloom filter index for new or rewritten data; it does not create Bloom filters for existing data. テーブル名または列のいずれかが存在しない場合、コマンドは失敗します。The command fails if either the table name or one of the columns does not exist. 列に対してブルームフィルターが有効になっている場合、既存のブルームフィルターオプションは新しいオプションに置き換えられます。If Bloom filtering is enabled for a column, existing Bloom filter options are replaced by the new options.

既に記述されているデータに対してブルーム filter インデックスを作成することはできませんが、 OPTIMIZE コマンドは再構成されたデータのブルームフィルターを更新します。While it is not possible to build a Bloom filter index for data that is already written, the OPTIMIZE command updates Bloom filters for data that is reorganized. そのため、テーブルでを実行して、ブルームフィルターにバックフィルすることができ OPTIMIZE ます。Therefore, you can backfill a Bloom filter by running OPTIMIZE on a table:

  • テーブルを最適化していない場合は、If you have not previously optimized the table.
  • ファイルサイズが異なる場合は、データファイルを書き直す必要があります。With a different file size, requiring that the data files be re-written.
  • ZORDER(または、既に存在する場合は別の) を使用して ZORDER 、データファイルを書き直す必要があります。With a ZORDER (or a different ZORDER, if one is already present), requiring that the data files be re-written.

ブルームフィルターをチューニングするには、列レベルまたはテーブルレベルでオプションを定義します。You can tune the Bloom filter by defining options at the column level or at the table level:

  • fpp: 偽陽性確率。fpp: False positive probability. 書き込まれたブルームフィルターごとに、望ましい偽陽性レート。The desired false positive rate per written Bloom filter. これは、ブルームフィルターに1つの項目を格納するために必要なビット数に影響し、ブルームフィルターのサイズに影響します。This influences the number of bits needed to put a single item in the Bloom filter and influences the size of the Bloom filter. 値は、0より大きく1以下である必要があります。The value must be larger than 0 and smaller than or equal to 1. 既定値は0.1 で、項目ごとに5ビットが必要です。The default value is 0.1 which requires 5 bits per item.
  • numItems: ファイルに含めることができる個別の項目の数。numItems: Number of distinct items the file can contain. この設定は、ブルームフィルターで使用されるビットの合計数 (項目数 * 項目あたりのビット数) に影響するため、フィルター処理の品質にとって重要です。This setting is important for the quality of filtering as it influences the total number of bits used in the Bloom filter (number of items * number of bits per item). この設定が正しくない場合、ブルームフィルターは、非常に少ないが設定され、ディスク領域が無駄になり、このファイルをダウンロードする必要があるクエリの速度が低下します。または、このファイルがいっぱいになり、より正確ではありません (FPP)。If this setting is incorrect, the Bloom filter is either very sparsely populated, wasting disk space and slowing queries that must download this file, or it is too full and is less accurate (higher FPP). 値は0より大きい必要があります。The value must be larger than 0. 既定値は100万項目です。The default is 1 million items.
  • maxExpectedFpp: ブルームフィルターがディスクに書き込まれない必要な FPP しきい値。maxExpectedFpp: The expected FPP threshold for which a Bloom filter is not written to disk. ブルームフィルターが書き込まれる、予期される偽陽性の確率。The maximum expected false positive probability at which a Bloom filter is written. 想定される FPP がこのしきい値より大きい場合、ブルームフィルターの選択度は低すぎます。ブルームフィルターを使用するために必要な時間とリソースが、有用性よりも優先されます。If the expected FPP is larger than this threshold, the Bloom filter’s selectivity is too low; the time and resources it takes to use the Bloom filter outweighs its usefulness. この値は、0 から 1 までの値である必要があります。The value must be between 0 and 1. 既定値は 1.0 (無効) です。The default is 1.0 (disabled).

これらのオプションは、データを書き込むときにのみ役割を果たします。These options play a role only when writing the data. これらのプロパティは、書き込み操作、テーブルレベル、および列レベルのさまざまな階層レベルで構成できます。You can configure these properties at various hierarchical levels: write operation, table level, and column level. 列レベルはテーブルレベルと操作レベルよりも優先され、テーブルレベルは操作レベルよりも優先されます。The column level takes precedence over the table and operation levels, and the table level takes precedence over the operation level.

ブルーム filter indexes」を参照してください。See Bloom filter indexes.