Aggregerad funktion
I databashantering är en aggregeringsfunktion eller aggregeringsfunktion en funktion där värdena för flera rader grupperas för att bilda ett enda sammanfattningsvärde .
Vanliga aggregerade funktioner inkluderar:
Andra inkluderar:
- Nanmean (menar att ignorera NaN-värden, även känd som "noll" eller "null")
- Stddev
Formellt tar en aggregerad funktion som indata en uppsättning , en multiset (påse) eller en lista från någon indatadomän I och matar ut ett element av en utdatadomän O . Ingångs- och utdatadomänerna kan vara desamma, som för SUM
, eller kan vara olika, till exempel för COUNT
.
Aggregatfunktioner förekommer vanligtvis i många programmeringsspråk , i kalkylblad och i relationalgebra .
Listagg -
funktionen, enligt definitionen i SQL:2016- standarden, samlar data från flera rader till en enda sammanlänkade sträng.
I entitetsrelationsdiagrammet representeras aggregering som ses i figur 1 med en rektangel runt relationen och dess enheter för att indikera att den behandlas som en aggregerad enhet.
Nedbrytbara aggregatfunktioner
Aggregatfunktioner utgör en flaskhals eftersom de potentiellt kräver att alla indatavärden finns på en gång. Vid distribuerad beräkning är det önskvärt att dela upp sådana beräkningar i mindre bitar och fördela arbetet, vanligtvis parallellt , via en divide and conquer-algoritm .
Vissa aggregatfunktioner kan beräknas genom att beräkna aggregatet för delmängder och sedan aggregera dessa aggregat; exempel inkluderar COUNT
, MAX
, MIN
och SUM
. I andra fall kan aggregatet beräknas genom att beräkna hjälpnummer för delmängder, aggregera dessa hjälptal och slutligen beräkna det totala numret i slutet; exempel inkluderar AVERAGE
(spårningssumma och antal, dividering i slutet) och RANGE
(spårning av max och min, subtrahering i slutet). I andra fall kan aggregatet inte beräknas utan att analysera hela uppsättningen på en gång, även om i vissa fall approximationer kan distribueras; exempel inkluderar DISTINCT COUNT
, MEDIAN
och MODE
.
Sådana funktioner kallas nedbrytbara aggregeringsfunktioner eller nedbrytbara aggregerade funktioner . De enklaste kan hänvisas till som självupplösbara aggregeringsfunktioner , som definieras som de funktioner f så att det finns en sammanfogningsoperator så att
där är föreningen av multiset (se monoid homomorfism ).
Till exempel, SUM
:
- för en singelton;
- , vilket betyder att merge helt enkelt är addition.
COUNT
:
- ,
- .
MAX
:
- ,
- .
MIN
:
- ,
- .
Observera att självupplösbara aggregeringsfunktioner kan kombineras (formellt tar produkten) genom att tillämpa dem separat, så att man till exempel kan beräkna både SUMMA och
COUNT samtidigt
genom att spåra två tal.
Mer generellt kan man definiera en nedbrytbar aggregeringsfunktion f som som kan uttryckas som sammansättningen av en slutlig funktion g och en självupplösbar aggregeringsfunktion h , . Till exempel, AVERAGE
= SUM
/ COUNT
och RANGE
= MAX
− MIN
.
I MapReduce- ramverket är dessa steg kända som InitialReduce (värde på enskild post/singleton-uppsättning), Combine (binär sammanslagning på två aggregationer) och FinalReduce (slutlig funktion på hjälpvärden) och flyttande nedbrytbar aggregering innan Shuffle-fasen är känd som ett InitialReduce-steg,
Nedbrytbara aggregeringsfunktioner är viktiga i online analytisk bearbetning (OLAP), eftersom de tillåter att aggregeringsfrågor beräknas på de förberäknade resultaten i OLAP-kuben snarare än på basdata. Det är till exempel lätt att stödja COUNT
, MAX
, MIN
och SUM
i OLAP, eftersom dessa kan beräknas för varje cell i OLAP-kuben och sedan sammanfattas ("rullas upp"), men det är svårt att stödja MEDIAN
, eftersom som måste beräknas för varje vy separat.
Andra nedbrytbara aggregatfunktioner
För att beräkna medelvärdet och standardavvikelsen från aggregerade data är det nödvändigt att ha tillgängligt för varje grupp: summan av värden (Σx i = SUM(x)), antalet värden (N=COUNT(x)) och summan av kvadrater av värdena (Σx i 2 =SUM(x 2 )) för varje grupp. AVG
:
SUM(x 2 )
: Summan av kvadraterna av värdena är viktig för att beräkna standardavvikelsen för grupper STDDEV
: För en ändlig population med lika sannolikheter på alla punkter har vi [ cirkulär referens ]
Det betyder att standardavvikelsen är lika med kvadratroten av skillnaden mellan medelvärdet av värdenas kvadrater och kvadraten på medelvärdet.
Se även
- Korstabell aka Beredskapstabell
- Databorrning
- Data mining
- Databehandling
- Extrahera, transformera, ladda
- Vik (högre ordningsfunktion)
- Gruppera efter (SQL) , SQL-sats
- OLAP kub
- Online analytisk bearbetning
- Pivottabell
- Relationell algebra
- Nyttofunktioner på odelbara varor#Aggregat av nyttofunktioner
- XML för analys
- AggregateIQ
Citat
Bibliografi
- Yu, Yuan; Gunda, Pradeep Kumar; Isard, Michael (2009). Distribuerad aggregering för dataparallell beräkning: gränssnitt och implementeringar . ACM SIGOPS 22:a symposiet om operativsystemets principer. ACM . s. 247–260. doi : 10.1145/1629575.1629600 .
- Jesus, Paulo; Baquero, Carlos; Almeida, Paulo Sérgio (2011). "En undersökning av distribuerade dataaggregationsalgoritmer". arXiv : 1110.0725 [ cs.DC ].
- Zhang, Chao (2017). Symmetrisk och asymmetrisk aggregerad funktion i massivt parallell beräkning ( Teknisk rapport).
Vidare läsning
- Grabisch, Michel; Marichal, Jean-Luc; Mesiar, Radko; Pap, Endre (2009). Aggregationsfunktioner . Encyclopedia of Mathematics and its Applications. Vol. 127. Cambridge: Cambridge University Press . ISBN 978-0-521-51926-7 . Zbl 1196.00002 .
- Oracle Aggregate-funktioner: MAX, MIN, COUNT, SUM, AVG exempel