Create Bloom Filter Index (Delta Lake az Azure Databricksben)

CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
[FOR COLUMNS(columnName1 [OPTIONS(..)], columnName2, ...)]
[OPTIONS(..)]

Hozzon létre egy Bloom-szűrőindexet az új vagy átírt adatokhoz; Nem hoz létre Bloom-szűrőket a meglévő adatokhoz. A parancs meghiúsul, ha a tábla neve vagy az oszlopok egyike nem létezik. Ha a Bloom-szűrés engedélyezve van egy oszlophoz, a meglévő Bloom-szűrőbeállításokat az új beállítások váltják fel.

Bár nem lehet Bloom-szűrőindexet összeépíteni a már megírt adatokhoz, az OPTIMIZE parancs frissíti a Bloom-szűrőket az újraszervezett adatokhoz. Ezért egy Bloom-szűrő visszatöltéséhez futtasunk OPTIMIZE egy táblát:

  • Ha korábban még nem optimalizálta a táblát.
  • Más fájlmérettel az adatfájlok újraíratása szükséges.
  • Egy (vagy egy másik , ha már van ilyen) esetén az adatfájlok újraíratása ZORDERZORDER szükséges.

A Bloom-szűrőt úgy finomhangolhatja, hogy az oszlop vagy a tábla szintjén határozza meg a beállításokat:

  • fpp: Hamis pozitív valószínűség. A kívánt hamis pozitív arány írt Bloom-szűrőnként. Ez befolyásolja, hogy hány bit szükséges ahhoz, hogy egy elemet a Bloom-szűrőbe helyezzen, és befolyásolja a Bloom-szűrő méretét. Az értéknek nagyobbnak kell lennie 0-ásnál, és kisebbnek vagy egyenlőnek 1-nek. Az alapértelmezett érték 0,1, amelyhez elemenként 5 bit szükséges.
  • numItems: A fájlban található különböző elemek száma. Ez a beállítás fontos a szűrés minősége érdekében, mivel befolyásolja a Bloom-szűrőben használt bitek teljes számát (elemek száma * bitek száma elemenként). Ha ez a beállítás helytelen, a Bloom-szűrő nagyon ritkán van feltöltve, lemezterületet pazarol, és lelassítja a lekérdezéseket, amelyeknek le kell tölteniük ezt a fájlt, vagy túl teljes és kevésbé pontos (magasabb FPP). Az értéknek nagyobbnak kell lennie, mint 0. Az alapértelmezett érték 1 millió elem.
  • maxExpectedFpp: A várt FPP-küszöbérték, amelyre a Bloom-szűrő nem íródott a lemezre. A maximális várt hamis pozitív valószínűség, amelyre a Bloom-szűrő meg van írva. Ha a várt FPP nagyobb ennél a küszöbértéknél, a Bloom-szűrő selectivitása túl alacsony; A Bloom-szűrő használatának ideje és erőforrásai meghaladják annak hasznosságát. Az értéknek 0 és 1 közé kell esnie. Az alapértelmezett érték 1.0 (letiltva).

Ezek a lehetőségek csak az adatok írásakor játszanak szerepet. Ezeket a tulajdonságokat különböző hierarchikus szinteken konfigurálhatja: írási művelet, táblaszint és oszlopszint. Az oszlopszint elsőbbséget élvez a tábla és a műveleti szinttel, a táblaszint pedig elsőbbséget élvez a műveleti szinttel.

Lásd: Bloom-szűrőindexek.