Agregační funkce - Aggregate function
v správa databáze, an agregační funkce nebo agregační funkce je funkce kde jsou hodnoty více řádků seskupeny do jednoho souhrnná hodnota.
Mezi běžné agregační funkce patří:
Mezi další patří:
- Nanmean (průměr ignoruje hodnoty NaN, známé také jako „nula“ nebo „null“)
- Stddev
Formálně agregační funkce bere jako vstup a soubor, a multiset (taška) nebo seznam z nějaké vstupní domény Já a vydává prvek výstupní domény Ó.[1] Vstupní a výstupní domény mohou být stejné, například pro SOUČET
, nebo se mohou lišit, například pro POČET
.
Agregované funkce se běžně vyskytují u mnoha programovací jazyky, v tabulky a v relační algebra.
The listagg
funkce, jak je definována v SQL: 2016 Standard[2]agreguje data z více řádků do jednoho zřetězeného řetězce.
Rozložitelné agregační funkce
Souhrnné funkce představují a úzké místo, protože potenciálně vyžadují mít všechny vstupní hodnoty najednou. v distribuované výpočty, je žádoucí rozdělit takové výpočty na menší části a práci obvykle distribuovat výpočet paralelně prostřednictvím a algoritmus rozděl a panuj.
Některé agregační funkce lze vypočítat výpočtem agregace pro podmnožiny a následným agregováním těchto agregací; příklady zahrnují POČET, MAX, MIN,
a SOUČET
. V ostatních případech lze agregaci vypočítat výpočtem pomocných čísel pro podmnožiny, agregací těchto pomocných čísel a konečným výpočtem celkového čísla na konci; příklady zahrnují PRŮMĚRNÝ
(sledování součtu a počtu, dělení na konci) a ROZSAH
(sledování max a min, odečtení na konci). V ostatních případech agregát nelze vypočítat bez analýzy celé sady najednou, ačkoli v některých případech lze aproximace distribuovat; příklady zahrnují DISTINCT COUNT, MEDIAN,
a REŽIM
.
Takové funkce se nazývají rozložitelné agregační funkce[3] nebo rozložitelné agregační funkce. Nejjednodušší lze označit jako samorozložitelné agregační funkce, které jsou definovány jako tyto funkce F takové, že existuje operátor sloučení takhle
kde je spojení multisetů (viz monoidní homomorfismus ).
Například, SOUČET
:
- , pro jednotlivce;
- , což znamená, že sloučení je prostě doplněk.
POČET
:
- ,
- .
MAX
:
- ,
- .
MIN
:
- ,[2]
- .
Všimněte si, že samorozložitelné agregační funkce lze kombinovat (formálně, přičemž produkt) jejich samostatným použitím, takže například lze vypočítat jak SOUČET
a POČET
současně sledováním dvou čísel.
Obecněji lze definovat a rozložitelná agregační funkce F jako takový, který lze vyjádřit jako složení konečné funkce G a samorozložitelná agregační funkce h, . Například, PRŮMĚRNÝ
=SOUČET
/POČET
a ROZSAH
=MAX
−MIN
.
V MapReduce framework, tyto kroky jsou známé jako InitialReduce (hodnota na jednotlivé sadě záznamů / singletonů), Combine (binární sloučení na dvou agregacích) a FinalReduce (konečná funkce na pomocných hodnotách),[4] a přesunutí rozložitelné agregace před fází Shuffle je známé jako krok InitialReduce,[5]
Rozložitelné agregační funkce jsou důležité v online analytické zpracování (OLAP), protože umožňují vypočítat agregační dotazy na předem vypočítané výsledky v OLAP kostka, spíše než na základních datech.[6] Například je snadné jej podporovat POČET, MAX, MIN,
a SOUČET
v OLAP, protože tyto lze vypočítat pro každou buňku krychle OLAP a poté je shrnout („srolovat“), ale je obtížné je podpořit MEDIÁN
, protože to musí být počítáno pro každý pohled zvlášť.
Další rozložitelné agregační funkce
Pro výpočet průměru a směrodatné odchylky od agregovaných údajů je nutné mít pro každou skupinu k dispozici: součet hodnot (Σxi = SUM (x)), počet hodnot (N = COUNT (x)) a součet čtverců hodnot (Σxi2= SUM (x2)) každé skupiny.[7]AVG
:
- .
nebo
- .
nebo, pouze pokud COUNT (X) = COUNT (Y)
- .
SUM (x2)
: Součet čtverců hodnot je důležitý pro výpočet směrodatné odchylky skupin
STDDEV
:
Pro konečnou populaci se stejnou pravděpodobností ve všech bodech máme[8][kruhový odkaz ]
To znamená, že směrodatná odchylka se rovná druhé odmocnině rozdílu mezi průměrem čtverců hodnot a druhou mocninou průměrné hodnoty.
- .
- .
Viz také
- Křížové tabulky aka Pohotovostní tabulka
- Vrtání dat
- Dolování dat
- Zpracování dat
- Extrahovat, transformovat, načíst
- Fold (funkce vyššího řádu)
- Seskupit podle (SQL), Klauzule SQL
- OLAP kostka
- Online analytické zpracování
- Kontingenční tabulka
- Relační algebra
- Úžitkové funkce na nedělitelném zboží # Souhrn užitných funkcí
- XML pro analýzu
Reference
- ^ Jesus, Baquero & Almeida 2011, 2 Definice problému, s. 3.
- ^ A b Winand, Markus (2017-05-15). „Velké novinky v databázích: nový standard SQL, cloudové války a ACIDRain (jaro 2017)“. DZone. Citováno 2017-06-10.
V prosinci 2016 vydala ISO novou verzi standardu SQL. Představuje nové funkce, jako je shoda vzorů řádků, listagg, formátování data a času a podpora JSON.
- ^ Jesus, Baquero & Almeida 2011, 2.1 Rozložitelné funkce, s. 3–4.
- ^ Yu, Gunda a Isard 2009, 2. Distribuovaná agregace, s. 2–4.
- ^ Yu, Gunda a Isard 2009, 2. Distribuovaná agregace, str. 1.
- ^ Zhang 2017, str. 1.
- ^ Ing. Óscar Bonilla, MBA
- ^ Směrodatná odchylka # Totožnosti a matematické vlastnosti
- Yu, Yuan; Gunda, Pradeep Kumar; Isard, Michael (2009). Distribuovaná agregace pro datově paralelní výpočty: rozhraní a implementace. ACM SIGOPS 22. sympozium o principech operačních systémů. ACM. 247–260. doi:10.1145/1629575.1629600.
- Ježíš, Paulo; Baquero, Carlos; Paulo Sérgio Almeida (2011). "Průzkum distribuovaných algoritmů agregace dat". arXiv:1110.0725 [cs.DC ].
- Zhang, Chao (2017). Symetrická a asymetrická agregovaná funkce v masivně paralelním výpočtu (Technická zpráva).
Další čtení
- Grabisch, Michel; Marichal, Jean-Luc; Mesiar, Radko; Pap, Endre (2009). Agregační funkce. Encyklopedie matematiky a její aplikace. 127. Cambridge: Cambridge University Press. ISBN 978-0-521-51926-7. Zbl 1196.00002.
- Agregační funkce Oracle: MAX, MIN, COUNT, SUM, AVG Příklady