HCatalog - Tabelle ändern
In diesem Kapitel wird erläutert, wie Sie die Attribute einer Tabelle ändern, z. B. den Tabellennamen ändern, Spaltennamen ändern, Spalten hinzufügen und Spalten löschen oder ersetzen.
Tabellenanweisung ändern
Mit der Anweisung ALTER TABLE können Sie eine Tabelle in Hive ändern.
Syntax
Die Anweisung verwendet eine der folgenden Syntaxen, basierend auf den Attributen, die in einer Tabelle geändert werden sollen.
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
Einige der Szenarien werden unten erläutert.
Umbenennen in ... Anweisung
Die folgende Abfrage benennt eine Tabelle von um employee zu emp.
./hcat –e "ALTER TABLE employee RENAME TO emp;"
Änderungsanweisung
Die folgende Tabelle enthält die Felder von employee Tabelle und zeigt die zu ändernden Felder (in Fettdruck).
Feldname | Vom Datentyp konvertieren | Feldnamen ändern | In Datentyp konvertieren |
---|---|---|---|
eid | int | eid | int |
Name | String | ename | String |
Gehalt | Schweben | Gehalt | Doppelt |
Bezeichnung | String | Bezeichnung | String |
Die folgenden Abfragen benennen den Spaltennamen und den Spaltendatentyp unter Verwendung der obigen Daten um:
./hcat –e "ALTER TABLE employee CHANGE name ename String;"
./hcat –e "ALTER TABLE employee CHANGE salary salary Double;"
Spaltenanweisung hinzufügen
Die folgende Abfrage fügt eine Spalte mit dem Namen hinzu dept zum employee Tabelle.
./hcat –e "ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');"
Anweisung ersetzen
Die folgende Abfrage löscht alle Spalten aus dem employee Tabelle und ersetzt es durch emp und name Spalten -
./hcat – e "ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);"
Drop Table-Anweisung
In diesem Kapitel wird beschrieben, wie Sie eine Tabelle in HCatalog löschen. Wenn Sie eine Tabelle aus dem Metastore löschen, werden die Tabellen- / Spaltendaten und ihre Metadaten entfernt. Dies kann eine normale Tabelle (im Metastore gespeichert) oder eine externe Tabelle (im lokalen Dateisystem gespeichert) sein. HCatalog behandelt beide unabhängig von ihrer Art gleich.
Die Syntax lautet wie folgt:
DROP TABLE [IF EXISTS] table_name;
Die folgende Abfrage löscht eine Tabelle mit dem Namen employee - -
./hcat –e "DROP TABLE IF EXISTS employee;"
Nach erfolgreicher Ausführung der Abfrage wird die folgende Antwort angezeigt:
OK
Time taken: 5.3 seconds