Partager via


Index de filtre Bloom

Remarque

Lorsque vous utilisez le calcul photon et Databricks Runtime 12.2 ou version ultérieure, l’E/S prédictive fonctionne mieux que les filtres Bloom pour les performances de lecture. Consultez Qu’est-ce que les E/S prédictives ?.

Dans Databricks Runtime 13.3 et versions ultérieures, nous recommandons d’utiliser le clustering pour la disposition du tableau Delta. Consultez Utilisation des clustering liquides pour les tableaux Delta.

Databricks recommande uniquement d’utiliser des filtres Bloom lors de l’utilisation du calcul qui ne prend pas en charge ces fonctionnalités.

Un index de filtre Bloom est une structure de données économe en espace qui permet d’ignorer les données sur les colonnes choisies, en particulier pour les champs contenant du texte arbitraire.

Fonctionnement des index de filtre Bloom

Les index de filtre Bloom Azure Databricks se composent d’un index de saut de données pour chaque fichier de données. L’index de filtre Bloom peut être utilisé pour déterminer qu’une valeur de colonne n’est définitivement pas dans le fichier, ou qu’elle est probablement dans le fichier. Avant de lire un fichier, Azure Databricks vérifie le fichier d’index et le fichier est lu uniquement si l’index indique que le fichier peut correspondre à un filtre de données.

Les filtres Bloom prennent en charge les colonnes avec les types de données d’entrée suivants : byte, short, int, long, float, double, date, timestamp et string. Les valeurs NULL ne sont pas ajoutées au filtre fleuri, donc tout filtre associé null requiert la lecture du fichier de données. Azure Databricks prend en charge les filtres de source de données suivants : and , or , inequals , et equalsnullsafe . Les filtres Bloom ne sont pas pris en charge sur les colonnes imbriquées.

Configuration et référence

Utilisez la syntaxe suivante pour activer un filtre Bloom :

CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))

Pour plus d’informations sur la syntaxe, consultez CREATE BLOOM FILTER INDEX et DROP BLOOM FILTER INDEX.

Pour désactiver les opérations de filtre Bloom, réglez la configuration spark.databricks.io.skipping.bloomFilter.enabled au niveau de la session sur false.

Afficher la liste des index de filtre Bloom

Pour afficher la liste des index, exécutez :

spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))

Par exemple :

Afficher des index