Dela via


Aggregera data på Azure Databricks

Den här artikeln beskriver de allmänna semantiken för aggregering och beskriver skillnaderna mellan resultat som beräknas med hjälp av batchfrågor, materialiserade vyer och strömning.

Batch-aggregeringar

Batch-aggregering är standardbeteendet som observeras när du kör en ad hoc-fråga i SQL eller bearbetar data med Apache Spark DataFrames.

En aggregeringsfråga som skrivs mot en tabell eller datakälla beräknar aggregerad statistik för alla poster i datakällan. Azure Databricks utnyttjar optimeringar och metadata när det är möjligt för att optimera dessa frågor och kan beräkna många aggregeringar effektivt för stora datamängder.

Batch-aggregeringssvarstid och beräkningskostnader kan öka i takt med att datastorleken ökar, och förberäknade aggregeringsvärden som ofta refereras till kan spara användarna mycket tid och pengar. Databricks rekommenderar att du använder materialiserade vyer för att stegvis uppdatera aggregeringsvärden. Se Inkrementella aggregeringar.

Tillståndskänsliga aggregeringar

Aggregeringar som definieras i strömningsarbetsbelastningar är tillståndskänsliga. Tillståndskänsliga aggregeringar spårar observerade poster över tid och beräknar om resultaten när nya data bearbetas.

Du måste använda vattenstämplar när du beräknar tillståndskänsliga aggregeringar. Om du utelämnar en vattenstämpel från en tillståndskänslig aggregeringsfråga ackumuleras tillståndsinformation med tiden. Detta resulterar i långsammare bearbetning och kan leda till minnesfel.

Du bör inte använda en tillståndskänslig aggregering för att beräkna statistik över en hel datamängd. Databricks rekommenderar att du använder materialiserade vyer för inkrementell aggregeringsberäkning på en hel datauppsättning. Se Inkrementella aggregeringar.

För att konfigurera arbetsbelastningar som beräknar tillståndskänsliga aggregeringar effektivt och korrekt måste du förstå hur data kommer från källsystem och hur Azure Databricks använder vattenstämplar, utdatalägen och utlösarintervall för att styra frågetillstånd och resultatberäkning.

Inkrementella aggregeringar

Du kan använda materialiserade vyer för att beräkna många aggregeringsvärden stegvis. Materialiserade vyer spårar automatiskt ändringar i datakällan och tillämpar lämpliga uppdateringar för att aggregera värden vid uppdatering. Resultaten som returneras av en materialazed-vy motsvarar dem som returneras genom att omberäkna aggregerade resultat på källdata med ett batchjobb eller en ad hoc-fråga.

Ungefärliga aggregeringar

Även om Azure Databricks utmärker sig för databehandling på extremt stora datamängder kan användning av uppskattning för aggregeringar påskynda frågebearbetningen och minska kostnaderna när du inte behöver exakta resultat.

Att använda LIMIT instruktioner är ibland tillräckligt bra för att få en snabb ögonblicksbild av data, men introducerar inte slumpmässighet, eller garanterar att samplingen distribueras över datamängden.

Spark SQL har följande interna metoder för att approximera aggregeringar på numeriska eller kategoriska data:

Du kan också ange en exempelprocent med TABLESAMPLE för att generera ett slumpmässigt urval från en datamängd och beräkna ungefärliga aggregeringar. Se TABLESAMPLE-satsen.

Övervaka datauppsättningar med aggregerade statistcs

Lakehouse Monitoring använder aggregerad statistik och datadistributioner för att spåra datakvalitet över tid. Du kan generera rapporter för att visualisera trender och schemalägga aviseringar för att flagga oväntade ändringar i data. Se Introduktion till Databricks Lakehouse Monitoring.