Sdílet prostřednictvím


Indexy filtrů Bloom

Poznámka:

Při použití výpočetních prostředků s podporou Photon a databricks Runtime 12.2 nebo vyšších prediktivních vstupně-výstupních operací filtry pro čtení vykvetou. Podívejte se, co je prediktivní vstupně-výstupní operace?

Databricks Runtime 13.3 a novější doporučuje používat clustering pro rozložení tabulky Delta. Viz Použití liquid clusteringu pro tabulky Delta.

Databricks doporučuje používat filtry Bloom pouze při použití výpočetních prostředků, které tyto funkce nepodporují.

Index filtru Bloom je prostorově efektivní datová struktura, která umožňuje přeskočení dat na vybraných sloupcích, zejména pro pole obsahující libovolný text.

Jak fungují indexy filtru Bloom

Indexy filtru Azure Databricks Bloom se skládají z indexu přeskakování dat pro každý datový soubor. Index filtru Bloom lze použít k určení, že hodnota sloupce není v souboru rozhodně nebo že je pravděpodobně v souboru. Před čtením souboru Azure Databricks zkontroluje indexový soubor a soubor se přečte jenom v případě, že index indikuje, že soubor může odpovídat filtru dat.

Bloom filtry podporují sloupce s následujícími vstupními datovými typy: , , , , , , , , timestampa string. datedoublefloatlongintshortbyte Hodnoty Null nejsou přidány do filtru Bloom, takže žádný související filtr null vyžaduje čtení datového souboru. Azure Databricks podporuje následující filtry zdrojů dat: and, or, in, equalsa equalsnullsafe. Filtry Bloom nejsou podporovány ve vnořených sloupcích.

Konfigurace a referenční informace

K povolení filtru Bloom použijte následující syntaxi:

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

Podrobnosti o syntaxi naleznete v tématu CREATE BLOOM FILTER INDEX a DROP BLOOM FILTER INDEX.

Chcete-li zakázat operace filtru Bloom, nastavte konfiguraci na úrovni spark.databricks.io.skipping.bloomFilter.enabled relace na false.

Zobrazení seznamu indexů filtrů Bloom

Pokud chcete zobrazit seznam indexů, spusťte:

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

Příklad:

Zobrazit indexy