Поделиться через


CREATE BLOOM FILTER INDEX

Область применения:флажок Databricks SQL флажок Databricks Runtime

Создает индекс фильтра Блума для новых или перезаписанных данных; он не создает фильтры Блума для существующих данных. Команда завершится ошибкой, если не существует либо имя table, либо одна из columns. Если фильтрация блум включена для column, существующие параметры фильтра блум заменяются новыми параметрами.

Синтаксис

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

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

Parameters

Хотя невозможно создать индекс фильтра Блум для данных, которые уже написаны, команда OPTIMIZE обновляет фильтры Блум для данных, которые реорганизованы. Таким образом, можно заполнить фильтр Блум, выполнив OPTIMIZE на table:

  • Если вы ранее не оптимизировали table.
  • с другим размером файла, который требует повторной записи файлов данных;
  • с ZORDER (или другого ZORDER, если он уже существует), который требует повторной записи файлов данных.

Фильтр Блум можно настроить, определив параметры на уровне column или на уровне table:

  • fpp: вероятность ложноположительного результата. Требуемый коэффициент вероятности ложноположительного результата для каждого записанного фильтра Блума. Это влияет на число битов, необходимых для размещения одного элемента в фильтре Блума, и влияет на размер фильтра Блума. Значение должно быть больше 0 и меньше или равно 1. Значение по умолчанию — 0,1. В этом случае требуется 5 бит на каждый элемент.
  • numItems: число отдельных элементов, которые может содержать файл. Этот параметр важен для качества фильтрации, так как он влияет на общее число битов, используемых в фильтре Блума (количество элементов — количество битов на элемент). Если этот параметр задан неверно, то фильтр Блума будет либо очень разреженным, из-за чего место на диске тратится неэффективно и замедляется выполнение запросов, которые должны загружать этот файл, либо он переполнен и менее точен (повышенный FPP). Это значение должно быть больше 0. Значение по умолчанию — 1 млн элементов.
  • maxExpectedFpp: максимальная ожидаемая ложноположимая вероятность записи фильтра Блума на диск. Если ожидаемая вероятность ложноположительного результата больше этого порогового значения, избирательность фильтра Блума слишком низка. Время и ресурсы, затрачиваемые на использование фильтра Блума, превышают его полезность. Оно должно находиться в диапазоне от 0 до 1. Значение по умолчанию равно 1,0 (отключено).

Эти параметры играют роль только при записи данных. Эти свойства можно настроить на различных иерархических уровнях: операции записи, уровень table и уровень column. Уровень column имеет приоритет над уровнями table и операций, а уровень table имеет приоритет над уровнем операции.

См. раздел Индексы фильтров Блума.