CREATE BLOOM FILTER INDEX

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Crée un index de filtre Bloom pour les données nouvelles ou réécrites ; il ne crée pas de filtres Bloom pour les données existantes. La commande échoue si le nom de la table ou l’une des colonnes n’existe pas. Si le filtrage Bloom est activé pour une colonne, les options existantes du filtre Bloom sont remplacées par les nouvelles options.

Syntaxe

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

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

Paramètres

Bien qu’il ne soit pas possible de générer un index de filtre de recherche de données pour les données qui sont déjà écrites, la commande OPTIMIZE met à jour les filtres de recherche de données qui sont réorganisés. Par conséquent, vous pouvez renvoyer un filtre Bloom en exécutant OPTIMIZE sur une table :

  • Si vous n’avez pas encore optimisé la table.
  • Avec une taille de fichier différente, en exigeant que les fichiers de données soient réécrits.
  • Avec un ZORDER (ou un différent ZORDER s’il en existe déjà un), en exigeant que les fichiers de données soient réécrits.

Vous pouvez paramétrer le filtre Bloom en définissant des options au niveau de la colonne ou au niveau de la table :

  • fpp : probabilité de faux positifs. Taux de faux positifs souhaité par filtre Bloom écrit. Cela a une incidence sur le nombre de bits nécessaires pour placer un seul élément dans le filtre Bloom et influe sur la taille de ce dernier. La valeur doit être supérieure à 0 et inférieure ou égale à 1. La valeur par défaut est 0,1 qui requiert 5 bits par élément.
  • numItems : nombre d’éléments distincts que le fichier peut contenir. Ce paramètre est important pour la qualité du filtrage, car il influence le nombre total de bits utilisés dans le filtre Bloom (nombre d’éléments - nombre de bits par élément). Si ce paramètre est incorrect, le filtre Bloom est soit très peu rempli, ce qui gaspille de l’espace disque et ralentit les requêtes qui doivent télécharger ce fichier, ou bien il est trop plein et est moins précis (FPP plus élevé). La valeur doit être supérieure à 0. La valeur par défaut est 1 million d’éléments.
  • maxExpectedFpp : probabilité maximale de faux positifs attendue à laquelle un filtre Bloom est écrit sur le disque. Si la taille de FPP attendue est supérieure à ce seuil, la sélectivité du filtre Bloom est trop faible ; le temps et les ressources dont il a besoin pour utiliser le filtre Bloom sont plus utiles. Elle doit être comprise entre 0 et 1. La valeur par défaut est 1.0 (option désactivée).

Ces options jouent un rôle uniquement lors de l’écriture des données. Vous pouvez configurer ces propriétés à différents niveaux hiérarchiques : opération d’écriture, niveau de table et niveau de colonne. Le niveau de colonne est prioritaire par rapport aux niveaux de table et d’opération, et le niveau de table est prioritaire par rapport au niveau d’opération.

Consultez Index de filtre Bloom.