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