Sdílet prostřednictvím


Agregace dat v Azure Databricks

Tento článek představuje obecnou sémantiku agregace a popisuje rozdíly mezi výsledky vypočítaným pomocí dávkových dotazů, materializovaných zobrazení a streamování.

Agregace služby Batch

Dávková agregace je výchozí chování pozorované při spuštění ad hoc dotazu v SQL nebo zpracování dat pomocí datových rámců Apache Spark.

Agregační dotaz napsaný v tabulce nebo zdroji dat vypočítá agregační statistiku pro všechny záznamy ve zdroji dat. Azure Databricks využívá optimalizace a metadata, kdykoli je to možné k optimalizaci těchto dotazů, a dokáže vypočítat mnoho agregací efektivně pro velké datové sady.

Latence agregace dávky a náklady na výpočetní prostředky se můžou zvýšit při nárůstu velikosti dat a předem vypočítané často odkazované agregované hodnoty můžou uživatelům ušetřit značnou dobu a peníze. Databricks doporučuje používat materializovaná zobrazení k přírůstkové aktualizaci agregovaných hodnot. Viz přírůstkové agregace.

Stavové agregace

Agregace definované v úlohách streamování jsou stavové. Stavové agregace sledují pozorované záznamy v průběhu času a při zpracování nových dat znovu kompilují výsledky.

Vodoznaky musíte použít při výpočtech stavových agregací. Vynechání vodoznaku ze stavového agregovaného dotazu vede k nekonečnému vytváření informací o stavu v průběhu času. Výsledkem je zpomalení zpracování a může dojít k chybám nedostatku paměti.

K výpočtu statistik v celé datové sadě byste neměli používat stavovou agregaci. Databricks doporučuje používat materializovaná zobrazení pro přírůstkový agregační výpočet pro celou datovou sadu. Viz přírůstkové agregace.

Konfigurace úloh, které spočítají stavové agregace efektivně a správně, vyžaduje pochopení způsobu, jakým data přicházejí ze zdrojových systémů a jak Azure Databricks používá vodoznaky, výstupní režimy a intervaly triggerů pro řízení stavu dotazu a výpočtů výsledků.

Přírůstkové agregace

Materializovaná zobrazení můžete použít k výpočtu mnoha agregovaných hodnot přírůstkově. Materializovaná zobrazení automaticky sledují změny ve zdroji dat a aplikují příslušné aktualizace na agregované hodnoty při aktualizaci. Výsledky vrácené materialzed zobrazením jsou ekvivalentní výsledkům vráceným opětovným dokončováním agregovaných výsledků na zdrojových datech pomocí dávkové úlohy nebo ad hoc dotazu.

Přibližné agregace

Zatímco Azure Databricks exceluje při výpočtech s extrémně velkými datovými sadami, použití aproximace pro agregace může zrychlit zpracování dotazů a snížit náklady, pokud nepotřebujete přesné výsledky.

Použití LIMIT příkazů je někdy dost dobré pro získání rychlého snímku dat, ale nezavádí náhodnost nebo zaručuje, že se vzorkování distribuuje napříč datovou sadou.

Spark SQL má následující nativní metody pro přibližné agregace číselných nebo kategorických dat:

Můžete také zadat procento vzorku s TABLESAMPLE pro vygenerování náhodného vzorku z datové sady a výpočet přibližných agregací. Vizklauzule .

Monitorování datových sad pomocí agregovaných statistik

Profilace dat používá agregované statistiky a distribuce dat ke sledování kvality dat v průběhu času. Můžete generovat sestavy pro vizualizaci trendů a plánování výstrah, které označí neočekávané změny v datech. Podívejte se na Profilace dat.