Hive verbesserte Aggregationen, Cubes, Gruppierung und Zusammenfassung




Der Frühlingsregen schockiert den klaren Talhimmel im Frühling, der Sommer ist voller Grannen und die Sommerhitze ist damit verbunden; der Tau im Herbst ist kalt und Frost fällt, und im Winter gibt es Schnee und im Winter eine kleine strenge Kälte. Heute ist die letzte Sonnenperiode des Jahres 2023: starker Schneefall. Nach dem starken Schneefest sanken die Temperaturen im ganzen Land deutlich und die kalte Luft im Norden wurde aktiver. Bitte achten Sie alle darauf, sich vor der Kälte warm zu halten

Um auf den Punkt zu kommen: In diesem Artikel werden hauptsächlich die Verbesserungen in den Abfrage-Engines Hive, Spark und Presto vorgestelltGROUP BY und die zugehörige Syntax basierend auf Hive. Außerdem wird die verbesserte mehrdimensionale Aggregation ausführlich erläutert Syntax der drei Engines durch mehrdimensionale Szenario-Fallanalyse. Die Unterschiede zwischen ihnen sowie einige häufige Probleme bei der Verwendung

1. Überblick über die mehrdimensionale Analyse


In mehrdimensionalen Analyseszenarien können wir Aggregationsfunktionen höherer Ordnung verwenden, wie zum Beispiel GROUPING SETS, CUBE, ROLLUPWarten. Engines wie Hive, Spark und Presto bieten alle ähnliche Aggregationsfunktionen höherer Ordnung, um Aggregationsstatistiken für Daten unter verschiedenen Kombinationen von Dimensionen durchzuführen

Hive nennt diese Analyse offiziell GROUP BY Klausel-erweiterte Aggregation, Cube, Gruppierung und Zusammenfassung

Was sind also erweiterte Aggregation und mehrdimensionale Analyse?

Erweiterte Aggregation bezieht sich auf die Verwendung von GROUPING SETS, CUBE, ROLLUP usw. bei der Verwendung von Gruppenaggregationsabfragen in SQL. Satz zu operieren. Gängige Abfrage-Engines unterstützen diese Syntax grundsätzlich, z. B. Hive, Spark, Presto, FlinkSQL usw. Die Verwendung der erweiterten Aggregation vereinfacht nicht nur den SQL-Code, sondern verbessert auch die Leistung von SQL-Anweisungen

Unter mehrdimensionaler Analyse versteht man die Analyse einer Kombination mehrerer Dimensionen und nicht die Analyse mehrerer Dimensionen. In mehrdimensionalen Analyseszenarien können Dimensionsspalten-Clusternamen unter beliebigen Dimensionskombinationen wiederhergestellt werden, um die demokratisierte Verwendung von Filtern in Diagrammen zu unterstützen.

Die mehrdimensionale Analyse wird hauptsächlich zur mehrdimensionalen Aggregation verwendet, d. h. zum Kombinieren und Aggregieren von Ergebnissen aus mehreren Dimensionen

2. GRUPPIERUNG Legt die mehrdimensionale Gruppierung fest


Die offizielle Beschreibung von HiveGROUPING SETS lautet wie folgt:

GROUP BYGROUPING SETSDie -Klausel in -Klauseln können logisch dargestellt werdenGROUP BY-Optionen im selben Recordset anzugeben. Alle ermöglicht es uns, mehrere -Abfragen, die durch verbunden sindGROUPING SETUNIONGROUP BY

Hive-Funktion:https://cwiki.apache.org/confluence/display/Hive/Enhanced+Aggregation%2C+Cube%2C+Grouping+and+Rollup< /span>

Einfach ausgedrückt: Geben Sie mehrere Dimensionssätze als Gruppierungsregeln fürGROUP BY an und kombinieren Sie dann die Ergebnisse. Seine Wirkung entspricht der ersten separaten Gruppierung dieser GruppendimensionenGROUP BY und der anschließenden Kombination der ErgebnisseUNION

Zum Beispiel lauten dieGROUPING SET-Abfrage und die entsprechendeGROUP BY-Abfrage wie folgt:

-- 示例1:
SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b GROUPING SETS ( (a,b) )
-- 等效于
SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b

-- 示例2:
SELECT a, b, SUM( c ) FROM tab1 GROUP BY a, b GROUPING SETS ( (a,b), a)
-- 等效于
SELECT a, b, SUM( c ) FROM tab1 GROUP BY a, b
UNION
SELECT a, null, SUM( c ) FROM tab1 GROUP BY a

-- 示例3:
SELECT a,b, SUM( c ) FROM tab1 GROUP BY a, b GROUPING SETS (a,b)
-- 等效于
SELECT a, null, SUM( c ) FROM tab1 GROUP BY a
UNION
SELECT null, b, SUM( c ) FROM tab1 GROUP BY b

-- 示例4:
SELECT a, b, SUM( c ) FROM tab1 GROUP BY a, b GROUPING SETS ( (a, b), a, b, ( ) )
-- 等效于
SELECT a

Supongo que te gusta

Origin blog.csdn.net/weixin_55629186/article/details/134856036
Recomendado
Clasificación