Sök…


Syntax

  • CREATE [TEMPORARY] [EXTERNAL] TABELL [IF NOT EXISTS] [db_name.] Table_name

    [(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, ...) [Sorterad av ( col_name [ASC | DESC], ...)] INTO num_buckets BUCKETS] [SKEWED BY (col_name, col_name, ...) - (Obs: Finns i Hive 0.10.0 och senare)] ON ((col_value, col_value, ...), (col_value, col_value, ...), ...) [STORED AS DIRECTORIES] [[ROW FORMAT row_format] [STORED AS file_format] | LAGRAD AV 'storage.handler.class.name' [MED SERDEPROPERTIES (...)]] [LOCATION hdfs_path] [TBLPROPERTIES (property_name = property_value, ...)]
    [AS select_statement];

  • CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] Table_name LIKE existens_table_or_view_name [LOCATION hdfs_path];

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

  • primitiv typ: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT, DUBBEL, STRING, BINARY, TIMESTAMP, DECIMAL, DECIMAL (precision, skala), DATE, VARCHAR, CHAR

  • array_type: ARRAY <data_type>

  • map_type: MAP <primitive_type, data_type>

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

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

  • row_format: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char] [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char] [NULL DEFINED AS char]
    , SERDE serde_name [MED SERDEPROPERTIES (property_name = property_value, property_name = property_value, ...)]

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

  • CREATE (DATABASE | SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [MED DBPROPERTIES (property_name = property_value, ...)];

Anmärkningar

När du arbetar med tabeller och databaser i HIVE. Nedan kan punkter vara användbara.

  • Vi kan byta databas med use database; kommando
  • För att känna till den nuvarande arbetsdatabasen kan vi använda SELECT current_database()
  • För att se DDL som används för att skapa tabellbeskrivning kan vi använda SHOW CREATE TABLE tablename
  • För att se alla kolumner i tabellen använder du DESCRIBE tablename att visa utökade detaljer som platsläge som används och andra. DESCRIBE FORMATTED tablename . BESKRIVA kan också förkortas till DESC.

Skapa bord

Skapa en hanterad tabell med partition och lagras som en sekvensfil. Dataformatet i filerna antas vara fältavgränsat av Ctrl-A (^A) och radavgränsat med ny linje. Tabellen nedan skapas i hive warehouse-katalog som anges i värdet för nyckeln hive.metastore.warehouse.dir i Hive-konfigurationsfilen 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;

Skapa en extern tabell med partitioner och lagras som en sekvensfil. Dataformatet i filerna antas vara fältavgränsat av ctrl-A och radavgränsat med ny linje. Tabellen nedan skapas på den angivna platsen och det är praktiskt när vi redan har data. En av fördelarna med att använda en extern tabell är att vi kan släppa tabellen utan att ta bort data. Om vi till exempel skapar en tabell och inser att schemat är fel, kan vi säkert släppa tabellen och återskapa med det nya schemat utan att oroa oss för dataen. En annan fördel är att om vi använder andra verktyg som gris på samma filer, Vi kan fortsätta använda dem även efter att vi har tagit bort tabellen.

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>';

Skapa en tabell med utvalda frågor och fylla resultat från frågan, dessa uttalanden kallas CTAS (Skapa tabell som valt) .

Det finns två delar i CTAS, SELECT-delen kan vara valfritt SELECT-uttalande som stöds av HiveQL. CREATE-delen av CTAS tar det resulterande schemat från SELECT-delen och skapar måltabellen med andra tabellegenskaper såsom SerDe och lagringsformat.

CTAS har dessa begränsningar:

  • Måltabellen kan inte vara en partitionerad tabell.
  • Måltabellen kan inte vara en extern tabell.
  • Måltabellen kan inte vara en listbockningstabell.
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;

Skapa tabell som:

LIKE-formen av SKAPA TABELL gör att du kan kopiera en befintlig tabelldefinition exakt (utan att kopiera dess data). Till skillnad från CTAS skapar uttalandet nedan en ny tabell vars definition exakt matchar den befintliga tabellen i alla andra uppgifter än tabellnamn. Den nya tabellen innehåller inga rader.

CREATE TABLE empty_page_views
LIKE page_views;

Skapa databas

Skapa en databas på en viss plats. Om vi inte anger någon plats för databasen som skapas i lagerkatalogen.

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

Hive ACID-tabell skapande.

ACID-tabeller stöds sedan hive 0.14-versionen. Nedanstående tabell stöder UPDATE / DELETE / INSERT

Nedan konfigurationsändringar som krävs i hive-site.xml.

 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

För närvarande stöds endast orc-fil.

Tabell skapa uttalande.

 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

Hive-Hbase-integration stöds sedan versionerna nedan. Hive: 0,11,0 HBas: 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");

Obs: 1: a kolumnen ska vara nyckelkolumnen.

Skapa tabell med befintliga tabellegenskaper.

CREATE TABLE new_table_name LIKE existing_table_name;


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow