Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule przedstawiono ogólną semantyka agregacji i omówiono różnice między wynikami obliczanymi przy użyciu zapytań wsadowych, zmaterializowanych widoków i przesyłania strumieniowego.
Agregacje wsadowe
Agregacja wsadowa jest zachowaniem domyślnym obserwowanym podczas uruchamiania zapytania ad hoc w języku SQL lub przetwarzania danych za pomocą ramek danych platformy Apache Spark.
Zapytanie agregacji zapisane względem tabeli lub źródła danych oblicza zagregowane statystyki dla wszystkich rekordów w źródle danych. Usługa Azure Databricks korzysta z optymalizacji i metadanych, gdy tylko jest to możliwe, aby zoptymalizować te zapytania, i może obliczyć wiele agregacji w przypadku dużych zestawów danych.
Opóźnienie agregacji wsadowej i koszty obliczeń mogą wzrosnąć wraz z zwiększaniem się rozmiaru danych, a wstępnie obliczone i często wykorzystywane wartości zagregowane mogą zaoszczędzić użytkownikom wiele czasu i pieniędzy. Usługa Databricks zaleca używanie zmaterializowanych widoków w celu przyrostowej aktualizacji zagregowanych wartości. Zobacz Agregacje przyrostowe.
Agregacje stanowe
Agregacje zdefiniowane w obciążeniach przesyłania strumieniowego są stanowe. Agregacje stanowe śledzą obserwowane rekordy w czasie i rekompilują wyniki podczas przetwarzania nowych danych.
Podczas przetwarzania agregacji stanowych należy używać znaków wodnych. Pominięcie znaku wodnego ze stanowego zapytania agregującego powoduje, że informacje o stanie są przechowywane w nieskończoność. Powoduje to spowolnienie przetwarzania i może prowadzić do błędów braku pamięci.
Nie należy używać agregacji stanowej do obliczania statystyk w całym zestawie danych. Usługa Databricks zaleca używanie zmaterializowanych widoków do obliczania agregacji przyrostowej w całym zestawie danych. Zobacz Agregacje przyrostowe.
Skonfigurowanie obciążeń, które wydajnie i poprawnie obliczają stanowe agregacje, wymaga zrozumienia, jak dane docierają z systemów źródłowych oraz jak Azure Databricks wykorzystuje znaki wodne, tryby wyjściowe i interwały wyzwalania do kontrolowania stanu zapytania i obliczania wyników.
Agregacje przyrostowe
Za pomocą zmaterializowanych widoków można obliczyć wiele wartości agregacji przyrostowo. Zmaterializowane widoki automatycznie śledzą zmiany w źródle danych i stosują odpowiednie aktualizacje do zagregowanych wartości podczas odświeżania. Wyniki zwrócone przez zmaterializowany widok są równoważne tym zwracanym przez ponowne skompilowanie zagregowanych wyników na danych źródłowych za pomocą zadania wsadowego lub zapytania ad hoc.
Przybliżone agregacje
Chociaż usługa Azure Databricks wyróżnia się w obliczeniach na bardzo dużych zestawach danych, użycie przybliżeń agregacji może przyspieszyć przetwarzanie zapytań i zmniejszyć koszty, gdy nie potrzebujesz dokładnych wyników.
Używanie LIMIT instrukcji jest czasami wystarczająco dobre, aby uzyskać szybką migawkę danych, ale nie wprowadza losowości ani nie gwarantuje, że próbkowanie danych jest równomiernie rozłożone w zestawie danych.
Usługa Spark SQL ma następujące metody natywne do przybliżenia agregacji na danych o charakterze liczbowym lub kategorycznym.
-
approx_count_distinctfunkcja agregacji -
approx_percentilefunkcja agregacji -
approx_top_kfunkcja agregacji
Możesz również określić procent próbki, TABLESAMPLE aby wygenerować losową próbkę na podstawie zestawu danych i obliczyć przybliżone agregacje. Zobacz klauzulę TABLESAMPLE.
Monitorowanie zestawów danych przy użyciu statystyk agregacji
Profilowanie danych używa zagregowanych statystyk i dystrybucji danych do śledzenia jakości danych w czasie. Raporty można generować, aby wizualizować trendy i planować alerty w celu flagowania nieoczekiwanych zmian w danych. Zobacz Profilowanie danych.