Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Not
När du använder beräkning med Photon-aktivering och Databricks Runtime 12.2 eller senare överträffar prediktiv I/O bloomfilter för läsprestanda. Se även Vad är förutsägande I/O?.
I Databricks Runtime 13.3 och senare rekommenderar Databricks att du använder klustring för Delta-tabelllayout. Se Använda flytande klustring för tabeller.
Databricks rekommenderar bara att du använder Bloom-filter när du använder beräkning som inte stöder dessa funktioner.
Ett Bloom-filterindex är en utrymmeseffektiv datastruktur som gör att data hoppar över valda kolumner, särskilt för fält som innehåller godtycklig text.
Så här fungerar Bloom-filterindex
Azure Databricks Bloom-filterindexen består av en datahoppande index för varje datafil. Bloom-filterindexet kan användas för att fastställa att ett kolumnvärde definitivt inte finns i filen eller att det förmodligen i filen. Innan en fil läses, kontrollerar Azure Databricks indexfilen, och filen läses endast om indexet indikerar att filen kan matcha ett datafilter.
Bloom-filter stöder kolumner med följande indatatyper: byte, short, int, long, float, double, date, timestampoch string. Null-värden läggs inte till i Bloom-filtret, så alla null-relaterade filter kräver att du läser datafilen. Azure Databricks stöder följande datakällafilter: and, or, in, equalsoch equalsnullsafe. Bloom-filter stöds inte i kapslade kolumner.
Konfiguration och referens
Använd följande syntax för att aktivera ett Bloom-filter:
CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))
Syntaxinformation finns i CREATE BLOOM FILTER INDEX och DROP BLOOM FILTER INDEX.
Om du vill inaktivera Bloom-filteråtgärder anger du konfigurationen på sessionsnivå spark.databricks.io.skipping.bloomFilter.enabled till false.
Visa listan över Bloom-filterindex
Om du vill visa listan över index kör du:
spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))
Till exempel: