2017-07-28 4 views
0

Ich habe unten Tabelle erstellt, will verstehen, wie die Partition funktioniert, die Partition Spalte LogDate ist nicht Teil der Tabelle DDL so wie die Partition funktioniert und wie die Datenverteilung & Abruf erfolgt.Wie funktioniert PARTITIONED BY?

create table tbl_1 
(
CollectTimeStamp TIMESTAMP, 
ObjectColumnName VARCHAR(256), 
ObjectDatabaseName   VARCHAR(256), 
TypeofUse     TINYINT 
) 
PARTITIONED BY (LogDate STRING) 
row format delimited fields terminated by '\u0001' 
stored as ORC 
LOCATION '/tables/db1/tbl_1' ; 

Antwort

0

Die Trennsäule `` ist definitiv ein Teil der Tabelle DDL, weil PARTITIONED BY DDL ist auch. Partition ist ein Ordner, daher ist es nicht erforderlich, die Partitionsschlüsseldaten in Datendateien zu speichern. Die Partitionsinformationen (Partitionsschlüssel, Speicherort) werden in der Metasoredatenbank gespeichert. Die Partitionsspalte sollte die letzte im Insert-Überschreibungssatz für das Laden dynamischer Partitionen sein. Wenn Sie eine Tabelle abfragen, liest die Struktur Informationen über Partitionen (Schlüssel, Speicherorte) aus dem Metastore. Ort (Ordner) als Trennwand angebracht werden:

ALTER TABLE page_view ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808' 

Siehe docs hier: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

Verwandte Themen