Dieser Artikel vermittelt Ihnen die fünf wichtigsten Kenntnisse, die Sie lernen müssen, um Fallstricke zu vermeiden, wenn Sie mit der HIVE-Partitionierung beginnen. Ich hoffe, dass er für Sie hilfreich ist.
Hive – Erste Schritte mit der Partitionierung [Datei] wird in Kategorien gespeichert und kann nur auf [Datei] verfeinert werden, der Inhalt kann jedoch nicht verfeinert werden. Es kann jedoch nur eine Klasse (Bereich) in einer angegeben werden Operation;
2: Eine Operation der dynamischen Partition kann nach dem spezifischen Inhalt des Feldes (Bereich) unterteilt werden;
3: Der Zweck der Partitionierung besteht darin, den Abfragebereich einzugrenzen und die Abfrage zu verbessern Effizienz einer einzelnen Tabelle beim Abfragen einer einzelnen Tabelle
4: Da die Partition für die statische Partitionierung in der Befehlszeile angegeben wird, wird das MR-Programm unten nicht ausgeführt (Relativ starre dynamische Partition führt das MR-Programm aus und extrahiert). die entsprechenden Felder (relativ intelligent)
Demoschritte:
1. Erstellen Sie eine Schülerpartitionstabelle
95001, Li Yong ,Male,20,CS
95002, Liu Chen, weiblich, 19, IS
95003, Wang Min, weiblich, 22, MA
95004, Zhang Li, männlich, 19, IS
95005, Liu Gang, männlich, 18, MA
95006, Sun Qing, männlich, 23, CS
--分区表创建create table t_students(id int,name string,sex string)
partitioned by (age int,class string)row format delimited fields terminated by ',' ;
Erstellen und prüfen, ob es erfolgreich ist
hive> set hive.cli.print.header=true;hive> select * from t_students;OK
t_students.id t_students.name t_students.sex t_students.age t_students.class
2. Inhalt hinzufügen
(1) laden
--静态分区load data local inpath '/root/logs/students.txt' into table t_students partition (age=19,class='MA');
( 2)Einfügen In Hive einfügen wird hauptsächlich in Verbindung mit ausgewählten Abfrageanweisungen verwendet. Nachdem
--动态分区set hive.exec.dynamic.partition=true;set hive.exec.dynamic.partition.mode=nonstrict;insert overwrite table t_students partition (age,class)
select * from t_student;
ausgeführt wurde, können Sie die Metadaten-SDS-Tabelle anzeigen und alle Zuordnungsinformationen sehen
--使用同样的数据,再次追加insert一次数据
hive> insert into table t_students partition (age,class) select * from t_student;
Nach dem erneuten Anhängen der Daten bleiben die Metadaten-SDS-Tabelleninformationen unverändert und die Dateien unter jedem Partitionspfad werden zu zwei Kopien
Hive-Bucketing
Bucketing ist eine feinere Aufteilung der relativen Partitionen. Beim Bucketing wird der gesamte Dateninhalt basierend auf dem Hashwert eines bestimmten Spaltenattributs in Buckets unterteilt. Um das Namensattribut in drei Buckets zu unterteilen, wird der Hashwert des Namensattributwerts um 3 moduliert und die Daten entsprechend in Buckets unterteilt das Modulo-Ergebnis. Beispielsweise werden die Datensätze mit einem Modulo-Ergebnis von 0 in einer Datei gespeichert, die Daten mit einem Modulo-Ergebnis von 1 werden in einer Datei gespeichert und die Daten mit einem Modulo-Ergebnis von 2 werden in einer Datei gespeichert.
Hinweis:
Führen Sie zunächst den Befehl hive.enforce.bucketiong=true vor dem Bucketing aus. Zweitens verwenden Sie das Schlüsselwort „clustered by“, um den Spaltennamen anzugeben, auf dem die Partition basiert, und geben Sie auch an, wie viele Der hier angegebene Bucket ist in 3 Buckets unterteilt.
Drittens basiert die Partitionierung im Gegensatz zur Partitionierung nicht auf den Spalten in der realen Datentabellendatei, sondern auf den von uns angegebenen Pseudospalten. Das Bucketing basiert jedoch auf den realen Spalten in der Datentabelle und nicht auf Pseudospalten. Daher müssen Sie bei der Angabe der Spalte, auf der die Partitionierung basiert, den Spaltentyp angeben, da diese Spalte in der Datentabellendatei nicht vorhanden ist, was dem Erstellen einer neuen Spalte entspricht. Das Bucketing basiert auf einer Spalte, die bereits in der Tabelle vorhanden ist. Der Datentyp dieser Spalte ist offensichtlich bekannt, sodass keine Angabe des Spaltentyps erforderlich ist.
Das obige ist der detaillierte Inhalt vonFünf Dinge, die Sie lernen müssen, um Fallstricke beim Einstieg in HIVE-Partitionen zu vermeiden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!