Partitionieren und Gruppieren in Hive

Inhalt

Überblick

  • Verstehen Sie die Bedeutung von Partitionierung und Gruppierung in Hive im Detail.
  • Wir werden sehen, So erstellen Sie Partitionen und Cubes auf dem Hive.

Einführung

Vielleicht haben Sie in Ihrer Schul- oder Universitätsbibliothek eine Enzyklopädie gesehen. Es ist eine Reihe von Büchern, die Ihnen Informationen über fast alles geben. Wissen Sie, was das Beste der Enzyklopädie ist??

Partitionierung-gegen-Bucketing-in-Apache-Hive-2850988

Jawohl, du hast es richtig erraten. Wörter sind alphabetisch geordnet. Zum Beispiel, hat ein Wort im Kopf “Pyramiden”. Sie werden direkt gehen, um das Buch mit dem Titel "P" abzuholen. Das musst du nicht in anderen Büchern suchen. Können Sie sich vorstellen, wie schwierig die Suche nach einem einzelnen Buch wäre, wenn es in ungeordneter Reihenfolge aufbewahrt würde??

Hier, Das alphabetische Speichern von Wörtern entspricht der Indizierung, aber die Verwendung einer anderen Position für Wörter, die mit demselben Zeichen beginnen, wird als Gruppierung bezeichnet.

Es gibt ähnliche Arten von Speichertechniken, als Partitionen und Gruppierungen, In Apache Hive damit wir schnellere Ergebnisse bei Suchanfragen erhalten. In diesem Artikel, wir werden sehen was Partition und Gruppierung ist, und wann man welche verwendet.

Inhaltsverzeichnis

  1. Was ist Partitionierung??
  2. Wann sollte die Partitionierung verwendet werden??
  3. Was ist Gruppierung??
  4. Wann sollte die Gruppierung verwendet werden??

Was ist Partitionierung??

Apache Hive ermöglicht es uns, die Tabelle in mehreren Partitionen zu organisieren, in denen wir denselben Datentyp gruppieren können. Wird verwendet, um die Last horizontal zu verteilen. Lass es uns mit einem Beispiel verstehen:

Angenommen, wir müssen im Bienenstock eine Tabelle mit den Produktdetails für ein Mode-E-Commerce-Unternehmen erstellen. Es hat die folgenden Spalten:

screenshot-from-2020-11-03-02-39-29-4664491

Jetzt, Der erste Filter, den die meisten Kunden verwenden, ist das Geschlecht, dann wähle Kategorien wie Shirt, seine Größe und Farbe. Sehen wir uns an, wie Sie die Partitionen für dieses Beispiel erstellen.

CREATE TABLE-Produkte ( product_id-String,
                        Markenstring,
                        Größe Zeichenfolge,
                        Rabatt Float,
                        Preisschwankung )
PARTITIONIERT VON (Geschlechtszeichenfolge,
                Kategorie-String,
                Farbkette);

Jetzt, Der Hive speichert die Daten in der Verzeichnisstruktur als:

/user/hive/warehouse/mytable/gender=male/category=shoes/color=black

screenshot-from-2020-11-11-14-45-38-9488485

Die Datenpartitionierung bietet uns Leistungsvorteile und hilft uns auch, Daten zu organisieren. Jetzt, Mal sehen, wann die Partition in Hive verwendet werden soll.

Wann sollte die Partitionierung verwendet werden??

  • Wenn die Spalte mit einer hohen Suchanfrage eine niedrige Kardinalität hat. Zum Beispiel, wenn Sie eine Partition mit dem Ländernamen erstellen, ein Maximum von 195 Partitionen und der Hive wird in der Lage sein, so viele Verzeichnisse zu verwalten.
  • Zweitens, Trennen Sie keine Spalten mit sehr hoher Kardinalität. Zum Beispiel, Produkt ID, Zeitstempel und Preis, da Millionen von Verzeichnissen erstellt werden, die für den Bienenstock unmöglich zu verwalten sind.
  • Es ist effektiv, wenn das Datenvolumen auf jeder Partition nicht sehr hoch ist. Zum Beispiel, wenn Sie die Airline-Daten haben und die Gesamtzahl der Flüge an einem Tag berechnen möchten. Dann, die Berechnung des Ergebnisses über die Partition dauert länger “Dubai”, da es einen der verkehrsreichsten Flughäfen der Welt hat, während für ein Land wie “Albanien” wird Ergebnisse schneller zurückgeben.

Was ist Gruppierung??

Im obigen Beispiel, wir wissen, dass wir nicht nach dem Preis der Spalte partitionieren können, da ihr Datentyp float ist und es unendlich viele mögliche eindeutige Preise gibt.

Hive muss für jeden einzelnen Preis ein separates Verzeichnis erstellen und es wäre für Hive sehr schwierig, sie zu verwalten. An Stelle von, wir können die Anzahl der gewünschten Einzahlungen für diese Spalten manuell definieren.

screenshot-from-2020-11-11-14-41-05-3002838

In Gruppierung, Partitionen können basierend auf der Hash-Funktion einer Spalte in Gruppen unterteilt werden. Bietet zusätzliche Struktur für die Daten, die für effizientere Abfragen verwendet werden können.

CREATE TABLE-Produkte ( product_id-String,
                        Markenstring,
                        Größe Zeichenfolge,
                        Rabatt Float,
                        Preisschwankung )
PARTITIONIERT VON (Geschlechtszeichenfolge,
                Kategorie-String,
                Farbkette)
Gruppiert von (Preis) HINEIN 50 EIMER;

Jetzt, wird nur erstellt 50 Einzahlungen egal wie viele eindeutige Werte in der Preisspalte stehen. Zum Beispiel, im ersten Würfel, alle produkte mit preis [ 0 – 500 ] Iran, und in der nächsten Produktgruppe mit einem Preis [ 500 – 200 ] und so weiter.

Wann sollte die Gruppierung verwendet werden??

  • Wir können nicht in eine Spalte mit einer sehr hohen Kardinalität aufteilen. Zu viele Partitionen führen zu mehreren Hadoop-Dateien, was die Last auf demselben Knoten erhöht, da es die Metadaten jeder der Partitionen transportieren muss.
  • Wenn einige Kombinationen der Kartenseite an Ihren Abfragen beteiligt sind, gruppierte Tabellen sind eine gute Option. Map Side Join ist ein Prozess, bei dem zwei Tabellen nur mit der Map-Funktion ohne reduzierte Funktion verbunden werden. Ich empfehle Ihnen, diesen Artikel zu lesen, um die Kombinationen der Seite der Karte besser zu verstehen: Die Seite der Karte verbindet sich mit Hive

Abschließende Anmerkungen

In diesem Artikel, Wir haben gesehen, was Partition und Gruppierung ist, wie man sie erstellt und was ihre Vor- und Nachteile sind.

Ich empfehle Ihnen dringend, sich die folgenden Ressourcen anzusehen, um mehr über Apache Hive zu erfahren:

Bei Fragen zu diesem Artikel, lass es mich im Kommentarbereich unten wissen.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.