Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Bei Verwendung von Photon-fähigem Compute und Databricks Runtime 12.2 oder höher übertrifft prädiktive E/A bei der Leseleistung Bloomfilter. Siehe Was ist Predictive I/O?.
In Databricks Runtime 13.3 und höher empfiehlt Databricks die Verwendung von Clustering für das Delta-Tabellenlayout. Siehe Verwenden von Flüssigclustering für Tabellen.
Databricks empfiehlt nur die Verwendung von Bloom-Filtern bei Verwendung von Berechnungen, die diese Features nicht unterstützen.
Ein Bloom-Filterindex ist eine raumeffiziente Datenstruktur, die das Überspringen von Daten in ausgewählten Spalten ermöglicht, insbesondere für Felder, die beliebigen Text enthalten.
Funktionsweise von Bloom-Filterindizes
Azure Databricks Bloom-Filterindizes bestehen aus einem Datensprungindex für jede Datendatei. Der Bloom-Filterindex kann verwendet werden, um zu bestimmen, dass ein Spaltenwert definitiv nicht in der Datei enthalten ist oder dass er wahrscheinlich in der Datei enthalten ist. Bevor eine Datei gelesen wird, überprüft Azure Databricks die Indexdatei, und die Datei wird nur dann gelesen, wenn der Index anzeigt, dass die Datei möglicherweise mit einem Datenfilter übereinstimmt.
Bloom-Filter unterstützen Spalten mit den folgenden Eingabedatentypen: byte
, , short
, int
, long
, float
double
date
, , timestamp
und string
. Nullen werden dem Bloom-Filter nicht hinzugefügt, sodass ein nullbezogener Filter das Lesen der Datendatei erfordert. Azure Databricks unterstützt die folgenden Datenquellenfilter: and
, , or
, in
, und equals
equalsnullsafe
. Bloom-Filter werden für geschachtelte Spalten nicht unterstützt.
Konfiguration und Referenz
Verwenden Sie die folgende Syntax, um einen Bloom-Filter zu aktivieren:
CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))
Ausführliche Informationen zur Syntax finden Sie unter CREATE BLOOM FILTER INDEX und DROP BLOOM FILTER INDEX.
Um Bloom-Filtervorgänge zu deaktivieren, legen Sie die Konfiguration auf Sitzungsebene spark.databricks.io.skipping.bloomFilter.enabled
auf false
.
Liste der Bloom-Filterindizes anzeigen
Führen Sie Folgendes aus, um die Liste der Indizes anzuzeigen:
spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))
Beispiel: