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.
In diesem Artikel werden die allgemeinen Aggregationssemantik vorgestellt und die Unterschiede zwischen Ergebnissen erläutert, die mithilfe von Batchabfragen, materialisierten Sichten und Streaming berechnet werden.
Batchaggregate
Die Batchaggregation ist das Standardverhalten beim Ausführen einer Ad-hoc-Abfrage in SQL oder beim Verarbeiten von Daten mit Apache Spark-DataFrames.
Eine für eine Tabelle oder Datenquelle geschriebene Aggregatabfrage berechnet die Aggregatstatistiken für alle Datensätze in der Datenquelle. Azure Databricks nutzt nach Möglichkeit Optimierungen und Metadaten, um diese Abfragen zu optimieren, und kann viele Aggregate für große Datasets effizient berechnen.
Die Latenz und der Computeaufwand bei der Batchaggregation können steigen, wenn die Datengröße zunimmt. Durch die Vorabberechnung häufig referenzierter Aggregatwerte können Sie viel Zeit und Geld sparen. Databricks empfiehlt die Verwendung materialisierter Sichten, um Aggregatwerte inkrementell zu aktualisieren. Weitere Informationen finden Sie unter Inkrementelle Aggregate.
Zustandsbehaftete Aggregate
Aggregate, die in Streamingworkloads definiert werden, sind zustandsbehaftet. Zustandsbehaftete Aggregate verfolgen beobachtete Datensätze über einen Zeitraum und berechnen Ergebnisse neu, wenn neue Daten verarbeitet werden.
Beim Berechnen zustandsbehafteter Aggregate müssen Sie Wasserzeichen verwenden. Das Weglassen eines Wasserzeichens aus einer zustandsbehafteten Aggregatabfrage führt dazu, dass Zustandsinformationen im Lauf der Zeit unbegrenzt zunehmen. Dies führt zu einer Verlangsamung der Verarbeitung und kann zu Fehler vom Typ „Nicht genügend Arbeitsspeicher“ verursachen.
Sie sollten zustandsbehaftete Aggregate nicht verwenden, um Statistiken über ein gesamtes Dataset zu berechnen. Databricks empfiehlt die Verwendung materialisierter Sichten für die inkrementelle Aggregatberechnung eines gesamten Datasets. Weitere Informationen finden Sie unter Inkrementelle Aggregate.
Um Workloads, die zustandsbehaftete Aggregate effizient und richtig berechnen, richtig zu konfigurieren, müssen Sie wissen, wie Daten aus Quellsystemen eingehen und wie Azure Databricks Wasserzeichen, Ausgabemodi und Triggerintervalle verwendet, um den Abfragezustand und die Ergebnisberechnung zu steuern.
Inkrementelle Aggregate
Sie können materialisierte Sichten verwenden, um viele Aggregatwerte inkrementell zu berechnen. Materialisierte Sichten verfolgen Änderungen in der Datenquelle automatisch nach und wenden bei einer Aktualisierung entsprechende Updates auf die Aggregatwerte Aktualisierung an. Die von einer materialisierten Sicht zurückgegebenen Ergebnisse entsprechen denen, die durch erneutes Berechnen von aggregierten Ergebnissen für Quelldaten mit einem Batchauftrag oder einer Ad-hoc-Abfrage zurückgegeben werden.
Schätzen von Aggregaten
Während Azure Databricks sich bei der Verarbeitung extrem großer Datasets auszeichnet, kann die Verwendung von Näherungswerten für Aggregationen die Abfrageverarbeitung beschleunigen und Kosten reduzieren, wenn präzise Ergebnisse nicht erforderlich sind.
Die Verwendung von LIMIT-Anweisungen reicht in einigen Situationen aus, um eine schnelle Momentaufnahme der Daten zu erhalten. Dieses Vorgehen führt jedoch keine Zufälligkeit ein und garantiert nicht, dass das Sampling über das Dataset verteilt wird.
Spark SQL verfügt über die folgenden nativen Methoden zum Schätzen von Aggregationen für numerische oder kategorische Daten:
-
approx_count_distinctAggregatfunktion -
approx_percentileAggregatfunktion -
approx_top_kAggregatfunktion
Sie können mit TABLESAMPLE auch einen Stichprobenprozentsatz angeben, um eine zufällige Stichprobe aus einem Dataset zu generieren und Aggregatschätzungen zur berechnen. Siehe TABLESAMPLE Klausel.
Überwachen von Datasets mithilfe von aggregierten Statistiken
Datenprofilerstellung verwendet aggregierte Statistiken und Datenverteilungen, um die Datenqualität im Laufe der Zeit nachzuverfolgen. Sie können Berichte erstellen, um Trends zu visualisieren, und Warnungen planen, um unerwartete Änderungen an den Daten zu kennzeichnen. Siehe Datenprofilerstellung.