Megosztás a következőn keresztül:


Bloom-szűrő indexek

Jegyzet

Amikor Photon-kompatibilis számítási kapacitást és a Databricks Runtime 12.2-s vagy újabb verzióját használjuk, a prediktív I/O felülmúlja a Bloom-szűrőket az olvasási teljesítményben. Lásd Mi a prediktív I/O?.

A Databricks Runtime 13.3 vagy újabb verziójában a Databricks a Deltatábla-elrendezéshez a klaszterezés alkalmazását javasolja. Lásd A Delta-táblákfolyékony fürtözésének használata című témakört.

A Databricks csak akkor javasolja a Bloom-szűrők használatát, ha olyan számítást használ, amely nem támogatja ezeket a funkciókat.

A Bloom szűrőindex egy helytakarékos adatstruktúra, amely lehetővé teszi az adatok kihagyását a kiválasztott oszlopokon, különösen az tetszőleges szöveget tartalmazó mezők esetében.

A Bloom szűrőindexek működése

Az Azure Databricks Bloom szűrőindexek minden egyes adatfájlhoz tartozó adatkihagyó indexekből állnak. A Bloom szűrőindex segítségével megállapíthatja, hogy egy oszlopérték biztosan nincs a fájlban, vagy valószínűleg benne van a fájlban. A fájl elolvasása előtt az Azure Databricks ellenőrzi az indexfájlt, és a fájl csak akkor lesz olvasható, ha az index azt jelzi, hogy a fájl megfelelhet egy adatszűrőnek.

A Bloom szűrők a következő bemeneti adattípusokkal támogatják az oszlopokat: byte, short, int, long, float, double, date, timestampés string. A rendszer nem ad hozzá null értékeket a Bloom szűrőhöz, ezért minden nullhoz kapcsolódó szűrőnek be kell olvasnia az adatfájlt. Az Azure Databricks a következő adatforrásszűrőket támogatja: and, or, in, equalsés equalsnullsafe. Bloom-szűrők nem támogatottak a beágyazott oszlopokban.

Konfiguráció és referencia

A Bloom-szűrő engedélyezéséhez használja az alábbi szintaxist:

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

A szintaxis részleteiért lásd: CREATE BLOOM FILTER INDEX és DROP BLOOM FILTER INDEX.

A Bloom-szűrőműveletek letiltásához állítsa a munkamenetszint spark.databricks.io.skipping.bloomFilter.enabled konfigurációját false.

A Bloom szűrőindexek listájának megjelenítése

Az indexek listájának megjelenítéséhez futtassa a következőt:

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

Például:

Indexek megjelenítése