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


Bloom-szűrőindexek

Feljegyzés

A Photon-kompatibilis számítás és a Databricks Runtime 12.2-s vagy újabb verziójának használatakor a prediktív I/O túlteljesít a kinyíló szűrőkön az olvasási teljesítmény érdekében. Lásd : Mi a prediktív I/O?.

A Databricks Runtime 13.3-at vagy újabb verzióját használva a Databricks javasolja a fürtszolgáltatás használatát a Delta-táblaelrendezéshez. Lásd: Folyékony fürtözés használata Delta-táblákhoz.

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őindexei az egyes adatfájlok adatkihagyási indexéből állnak. A Bloom szűrőindex segítségével megállapíthatja, hogy egy oszlop értéke véglegesen nem szerepel-e a fájlban, vagy valószínűleg a fájlban van. 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. A 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 and 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ót a következőre false: .

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élda:

Indexek megjelenítése