Suche…


Syntax

  • CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [Datenbankname.] Tabellenname

    [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (Col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (Col_name, Col_name, ...) [SORTED BY ( col_name [ASC | DESC], ...)] INTO num_buckets BUCKETS] [SKEWED BY (col_name, col_name, ...) - (Hinweis: Verfügbar in Struktur 0.10.0 und höher)] ON ((col_value, col_value, ...), (col_value, col_value, ...), ...) [ALS VERZEICHNIS GESPEICHERT] [[ROW FORMAT row_format] [STORED AS file_format] | GESPEICHERT VON 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]] [LOCATION hdfs_path] [TBLPROPERTIES (property_name = property_value, ...)]
    [AS select_statement];

  • CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [Datenbankname]. Tabellenname LIKE bestehende_Tabelle_oder_Ansichtsname [LOCATION hdfs_path];

  • data_type: primitiv_type, array_type, map_type, struct_type, union_type

  • primitive_type: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT, DOUBLE, STRING, BINARY, TIMESTAMP, DECIMAL, DECIMAL (Präzision, Skala), DATE, VARCHAR, CHAR

  • array_type: ARRAY <data_type>

  • map_type: MAP <primitiver_Typ, Daten_Typ>

  • struct_type: STRUCT <col_name: data_type [COMMENT col_comment], ...>

  • union_type: UNIONTYPE <Datentyp, Datentyp, ...>

  • row_format: DELIMITED [FELDER BEENDET DURCH char [ABGEBOGEN DURCH char] [Sammlungsgegenstände bei char] [KARTENSCHLÜSSEL BEFINDET DURCH char] [LINES TER by DURCH char] [NULL DEFINED AS char]
    SERDE-Serienname [WITH SERDEPROPERTIES (Eigenschaftsname = Eigenschaftswert, Eigenschaftsname = Eigenschaftswert, ...)]

  • Dateiformat:: SEQUENCEFILE, TEXTFILE, RCFILE, ORC, PARQUET, AVRO, INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname

  • CREATE (DATABASE | SCHEMA) [IF NOT EXISTS] Datenbankname [COMMENT Datenbankkommentar] [LOCATION hdfs_path] [WITH DBPROPERTIES (Eigenschaftsname = Eigenschaftswert, ...)];

Bemerkungen

Beim Arbeiten mit Tabellen und Datenbanken in HIVE. Nachfolgende Punkte können nützlich sein.

  • Wir können die Datenbank mit use database; wechseln use database; Befehl
  • Um die aktuelle Arbeitsdatenbank kennen zu lernen, können Sie SELECT current_database()
  • Um die DDL SHOW CREATE TABLE tablename die für die Anweisung create table verwendet wird, können Sie den Tabellennamen SHOW CREATE TABLE tablename
  • Um alle Tabellenspalten DESCRIBE tablename , verwenden Sie DESCRIBE tablename , um erweiterte Details DESCRIBE FORMATTED tablename . B. die verwendeten Standortserver und andere. DESCRIBE kann auch als DESC abgekürzt werden.

Tabelle erstellen

Eine verwaltete Tabelle mit Partition erstellen und als Sequenzdatei speichern. Es wird angenommen, dass das Datenformat in den Dateien durch Ctrl-A (^A) feldbegrenzt und durch Zeilenumbruch getrennt wird. Die folgende Tabelle wird im Hive-Warehouse-Verzeichnis erstellt, das in value für den Schlüssel hive.metastore.warehouse.dir in der Hive-Konfigurationsdatei hive-site.xml .

CREATE TABLE view
(time INT, 
id BIGINT,
url STRING, 
referrer_url STRING,
add STRING COMMENT 'IP of the User')
COMMENT 'This is view table'
PARTITIONED BY(date STRING, region STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
STORED AS SEQUENCEFILE;

Erstellen einer externen Tabelle mit Partitionen und als Sequenzdatei gespeichert. Es wird angenommen, dass das Datenformat in den Dateien durch ctrl-A und durch Zeilenumbruch durch Zeilenumbrüche begrenzt wird. Die folgende Tabelle wird an dem angegebenen Ort erstellt und ist praktisch, wenn bereits Daten vorhanden sind. Die Verwendung einer externen Tabelle hat den Vorteil, dass wir die Tabelle löschen können, ohne die Daten zu löschen. Wenn wir zum Beispiel eine Tabelle erstellen und erkennen, dass das Schema falsch ist, können wir die Tabelle sicher löschen und mit dem neuen Schema neu erstellen, ohne sich um die Daten zu sorgen. Ein weiterer Vorteil besteht darin, dass wir andere Werkzeuge wie pig in denselben Dateien verwenden. Wir können sie auch nach dem Löschen der Tabelle weiter verwenden.

CREATE EXTERNAL TABLE view
(time INT, 
id BIGINT,
url STRING, 
referrer_url STRING,
add STRING COMMENT 'IP of the User')
COMMENT 'This is view table'
PARTITIONED BY(date STRING, region STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
STORED AS SEQUENCEFILE
LOCATION '<hdfs_location>';

Erstellen Sie eine Tabelle mit select-Abfrage und füllen Sie die Ergebnisse aus der Abfrage aus. Diese Anweisungen werden als CTAS (Create Table As Select) bezeichnet .

CTAS besteht aus zwei Teilen: Der SELECT-Teil kann eine beliebige von HiveQL unterstützte SELECT-Anweisung sein. Der CREATE-Teil des CTAS entnimmt das resultierende Schema aus dem SELECT-Teil und erstellt die Zieltabelle mit anderen Tabelleneigenschaften wie SerDe und Speicherformat.

CTAS hat diese Einschränkungen:

  • Die Zieltabelle kann keine partitionierte Tabelle sein.
  • Die Zieltabelle kann keine externe Tabelle sein.
  • Die Zieltabelle kann keine List-Bucketing-Tabelle sein.
CREATE TABLE new_key_value_store
ROW FORMAT SERDE "org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe"
STORED AS RCFile
AS
SELECT * FROM page_view
SORT BY url, add;

Tabelle erstellen wie:

Mit der LIKE-Form von CREATE TABLE können Sie eine vorhandene Tabellendefinition genau kopieren (ohne ihre Daten zu kopieren). Im Gegensatz zu CTAS erstellt die folgende Anweisung eine neue Tabelle, deren Definition in allen Details außer dem Tabellennamen genau mit der vorhandenen Tabelle übereinstimmt. Die neue Tabelle enthält keine Zeilen.

CREATE TABLE empty_page_views
LIKE page_views;

Datenbank erstellen

An einem bestimmten Ort eine Datenbank erstellen. Wenn wir keinen Speicherort für die Datenbank angeben, wird dies im Warehouse-Verzeichnis erstellt.

CREATE DATABASE IF NOT EXISTS db_name 
COMMENT 'TEST DATABASE'
LOCATION /PATH/HDFS/DATABASE/;

Hive ACID-Tabellenerstellung.

ACID-Tabellen werden seit Version 0.14 unterstützt. Die folgende Tabelle unterstützt UPDATE / DELETE / INSERT

Folgende Konfigurationsänderungen sind in hive-site.xml erforderlich.

 hive.support.concurrency = true
 hive.enforce.bucketing = true
 hive.exec.dynamic.partition.mode = nonstrict
 hive.txn.manager =org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
 hive.compactor.initiator.on = true
 hive.compactor.worker.threads = 1

Derzeit wird nur die orc-Datei unterstützt.

Tabelle zum Erstellen von Anweisungen

 create table Sample_Table(
 col1 Int,
 col2 String,
 col3 String) 
 clustered by (col3) into 3 buckets 
 stored as orc 
 TBLPROPERTIES ('transactional'='true');

HIVE_HBASE-Integration

Die Hive-Hbase-Integration wird seit den folgenden Versionen unterstützt. Bienenstock: 0,11,0 HBase: 0,94,2 Hadoop: 0,20,2

CREATE TABLE hbase_hive
(id string,
 col1 string,
 col2 string,
 col3 int) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES 
("hbase.columns.mapping" = ":key,cf1:col1,cf1:col2,cf1:col3")
TBLPROPERTIES ("hbase.table.name" = "hive_hbase");

Hinweis: Die erste Spalte sollte die Schlüsselspalte sein.

Erstellen Sie eine Tabelle mit den vorhandenen Tabelleneigenschaften.

CREATE TABLE new_table_name LIKE existing_table_name;


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow