Delen via


Bloeifilterindexen

Notitie

Wanneer u met Photon ingeschakelde berekeningen en Databricks Runtime 12.2 of hoger gebruikt, presteert voorspellende I/O beter dan bloeifilters voor leesprestaties. Zie Wat is voorspellende I/O?.

In Databricks Runtime 13.3 en hoger raadt Databricks aan om clustering te gebruiken voor de indeling van deltatabellen. Zie Liquid clustering gebruiken voor Delta-tabellen.

Databricks raadt het gebruik van Bloom-filters alleen aan wanneer u rekenkracht gebruikt die deze functies niet ondersteunt.

Een Bloom-filterindex is een ruimte-efficiƫnte gegevensstructuur waarmee gegevens kunnen worden overgeslagen op gekozen kolommen, met name voor velden die willekeurige tekst bevatten.

Hoe Bloom-filterindexen werken

Azure Databricks Bloom-filterindexen bestaan uit een index voor het overslaan van gegevens voor elk gegevensbestand. De Bloom-filterindex kan worden gebruikt om te bepalen dat een kolomwaarde definitief niet in het bestand staat of dat deze waarschijnlijk in het bestand staat. Voordat u een bestand leest, controleert Azure Databricks het indexbestand en wordt het bestand alleen-lezen als de index aangeeft dat het bestand mogelijk overeenkomt met een gegevensfilter.

Bloom-filters ondersteunen kolommen met de volgende invoergegevenstypen: byte, short, int, long, float, double, date, , , timestampen string. Null-waarden worden niet toegevoegd aan het Bloom-filter, dus voor elk null-gerelateerd filter moet het gegevensbestand worden gelezen. Azure Databricks ondersteunt de volgende gegevensbronfilters: and, or, in, equalsen equalsnullsafe. Bloom-filters worden niet ondersteund voor geneste kolommen.

Configuratie en verwijzing

Gebruik de volgende syntaxis om een Bloom-filter in te schakelen:

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

Zie CREATE BLOOM FILTER INDEX en DROP BLOOM FILTER INDEX voor syntaxisdetails.

Als u Bloom-filterbewerkingen wilt uitschakelen, stelt u de configuratie op sessieniveau spark.databricks.io.skipping.bloomFilter.enabled in op false.

De lijst met bloeifilterindexen weergeven

Voer de volgende opdracht uit om de lijst met indexen weer te geven:

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

Voorbeeld:

Indexen weergeven