2013-10-24 5 views
10

Wenn ich ein Bienenstock SQL wieWoher weiß man den Speicherort der Partition in der Struktur?

ALTER TABLE tbl_name ADD PARTITION (dt=20131023) LOCATION 'hdfs://path/to/tbl_name/dt=20131023; 

Wie schreiben kann ich diesen Ort über Partition abfragen später? Da fand ich es einige Daten in Lage, aber ich kann sie, bienenstock SQL wie

SELECT data FROM tbl_name where dt=20131023; 
+0

wie kann man Liste Standorte aller Partitionen nicht nur eine? – morpheus

+0

@morpheus Ich benutze eine for-Schleife mit 'show partitions table;' um die Positionen aller Partitionen anzuzeigen. Ich finde keinen einzeiligen Befehl, um dies zu implementieren. – MoreFreeze

Antwort

3
show table extended like 'tbl_name' partition (dt='20131023'); 

Show Tables/Partitions Extended

SHOW TABLE EXTENDED listet Informationen für alle Tabellen passend zu dem angegebenen regulären Ausdruck nicht abfragen. Benutzer können keinen regulären Ausdruck für den Tabellennamen verwenden, wenn eine Partitionsspezifikation vorhanden ist. Die Ausgabe dieses Befehls enthält grundlegende Tabelleninformationen und Dateisysteminformationen wie totalNumberFiles, totalFileSize, maxFileSize, minFileSize, lastAccessTime und lastUpdateTime. Wenn eine Partition vorhanden ist, gibt sie die Dateisysteminformationen der angegebenen Partition anstelle der Dateisysteminformationen der Tabelle aus.

24

Führen Sie eine Beschreibung auf der Partition anstelle der vollständigen Tabelle durch.
Dies zeigt den verknüpften Speicherort an, wenn es sich um eine externe Tabelle handelt.

describe formatted tbl_name partition (dt='20131023') 
8

Wenn Sie mehrere verschachtelte Partitionen haben, lautet die Syntax:

describe formatted table_name partition (day=123,hour=2);