Partager via


Index de filtre Bloom

Remarque

Lorsque vous utilisez des calculs basés sur Photon et Databricks Runtime 12.2 ou ultérieur, l'entrée/sortie prédictive surpasse les filtres Bloom en termes de performances de lecture. Consultez Qu’est-ce que les E/S prédictives ?.

Dans Databricks Runtime 13.3 et versions ultérieures, Databricks recommande d’utiliser le clustering pour la disposition de table 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 le saut de 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 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, timestampet string. Les valeurs Null ne sont pas ajoutées au filtre Bloom. Par conséquent, tout filtre lié à null nécessite la lecture du fichier de données. Azure Databricks prend en charge les filtres de source de données suivants : and, or, in, equalset 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, définissez la configuration du niveau de session spark.databricks.io.skipping.bloomFilter.enabled 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 les index