Szukaj…


Składnia

  • UTWÓRZ [CZASOWO] [ZEWNĘTRZNY] TABELA [JEŚLI NIE ISTNIEJE] [nazwa_bazy.] Nazwa_tabeli

    [(nazwa_kolumny typ_danych [KOMENTARZ_kolumna], ...)] [KOMENTARZ_tabela] [PARTYCJONOWANY PRZEZ (nazwa_kolii typ_danych [KOMENTARZ_kolumna], ...)] [KLASTROWANY PRZEZ (nazwa_kolumny, nazwa_kolumny, ...) [SORTOWANE PRZEZ ( nazwa_kolumny [ASC | DESC], ...)] NA Wiadra num_buckets] [SKEWED BY (nazwa_kolumny, nazwa_kolumny, ...) - (Uwaga: Dostępne w gałęzi 0.10.0 i nowszych)] WŁĄCZONY ((wartość_kolejki, wartość_kolumny, ...), (wartość_kolumny, wartość_kolumny, ...), ...) [STORED AS DIRECTORIES] [[ROW FORMAT row_format] [STORED AS file_format] | PRZECHOWYWANE PRZEZ „storage.handler.class.name” [Z SERDEPROPERTIES (...)]] [LOCATION hdfs_path] [TBLPROPERTIES (nazwa_właściwości = wartość_właściwości, ...)]
    [AS select_statement];

  • UTWÓRZ [TYMCZASOWY] [ZEWNĘTRZNY] TABELA [JEŚLI NIE ISTNIEJE] [nazwa_bazy.] Nazwa_tabeli PODOBNE istniejąca_tabela_lub_nazwa_widoku [LOKALIZACJA ścieżka_hdfs];

  • typ danych: typ pierwotny, typ tablicowy, typ mapowy, typ strukturalny, typ uniowy

  • primitive_type: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT, DOUBLE, STRING, BINARY, TIMESTAMP, DECIMAL, DECIMAL (precyzja, skala), DATA, VARCHAR, CHAR

  • array_type: ARRAY <typ_danych>

  • map_type: MAP <typ pierwotny, typ danych>

  • struct_type: STRUCT <nazwa_kolumny: typ_ danych [KOMENTARZ_kolekcja], ...>

  • typ_zjednoczenia: UNIONTYPE <typ_danych, typ_danych, ...>

  • row_format: DELIMITED [POLA ZAKOŃCZONE PRZEZ char [ESCAPED BY char]] [POZYCJE KOLEKCJI ZAKOŃCZONE PRZEZ char] [KLUCZE MAPY ZAKOŃCZONE PRZEZ char] [LINIE ZAKOŃCZONE PRZEZ char] [NULL ZDEFINIOWANE JAK char]
    , SERDE_nazwa_serde [Z SERDEPROPERTIES (nazwa_właściwości = wartość_właściwości, nazwa_właściwości = wartość_właściwości, ...)]

  • format_pliku:: SEQUENCEFILE, TEXTFILE, RCFILE, ORC, PARQUET, AVRO, INPUTFORMAT nazwa_formatu_format_wejściowej OUTPUTFORMAT nazwa_formatu_format_wyjściowego

  • UTWÓRZ (BAZY DANYCH | SCHEMA) [JEŚLI NIE ISTNIEJE] nazwa_bazy_danych [KOMENTARZ komenda_bazy_danych] [LOKALIZACJA ścieżka_hdfs] [Z DBPROPERTIES (nazwa_właściwości = wartość_właściwości, ...)];

Uwagi

Podczas pracy z tabelami i bazami danych w HIVE. Przydatne mogą być poniższe punkty.

  • Możemy przełączyć bazę danych, używając use database; Komenda
  • Aby poznać bieżącą działającą bazę danych, możemy uzyskać za pomocą SELECT current_database()
  • Aby zobaczyć DDL użytego do utworzenia instrukcji table, możemy użyć SHOW CREATE TABLE tablename
  • Aby zobaczyć wszystkie kolumny tabeli, użyj DESCRIBE tablename aby wyświetlić rozszerzone szczegóły, takie jak użyta nazwa lokalizacji i inne DESCRIBE FORMATTED tablename . DESCRIBE można również skracać jako DESC.

Utwórz tabelę

Tworzenie tabeli zarządzanej z partycją i przechowywaną jako plik sekwencji. Zakłada się, że format danych w plikach jest rozdzielany polami przez Ctrl-A (^A) i rozdzielany wierszami przez nowy wiersz. Poniższa tabela jest tworzona w katalogu magazynu gałęzi określonym w wartości klucza hive.metastore.warehouse.dir w pliku konfiguracyjnym 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;

Tworzenie tabeli zewnętrznej z partycjami i przechowywanej jako plik sekwencji. Zakłada się, że format danych w plikach jest rozdzielany polami przez ctrl-A i ograniczany przez wiersze znakiem nowej linii. Poniższa tabela jest tworzona w określonej lokalizacji i jest przydatna, gdy mamy już dane. Jedną z zalet korzystania z tabeli zewnętrznej jest to, że możemy upuścić tabelę bez usuwania danych. Na przykład, jeśli utworzymy tabelę i zauważymy, że schemat jest nieprawidłowy, możemy bezpiecznie upuścić tabelę i odtworzyć ją przy użyciu nowego schematu, nie martwiąc się o dane. Inną zaletą jest to, że jeśli używamy innych narzędzi, takich jak świnia, w tych samych plikach, możemy nadal z nich korzystać, nawet po usunięciu tabeli.

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

Tworząc tabelę przy użyciu wyboru zapytania i wypełniając wyniki z zapytania, instrukcje te są znane jako CTAS (Utwórz tabelę jako wybrane) .

CTAS składa się z dwóch części, część SELECT może być dowolną instrukcją SELECT obsługiwaną przez HiveQL. Część CREATE CTAS pobiera wynikowy schemat z części SELECT i tworzy tabelę docelową z innymi właściwościami tabeli, takimi jak SerDe i format pamięci.

CTAS ma następujące ograniczenia:

  • Tabela docelowa nie może być tabelą podzieloną na partycje.
  • Tabela docelowa nie może być tabelą zewnętrzną.
  • Tabela docelowa nie może być tabelą zestawienia list.
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;

Utwórz tabelę jak:

PODOBNA forma CREATE TABLE pozwala dokładnie skopiować istniejącą definicję tabeli (bez kopiowania jej danych). W przeciwieństwie do CTAS poniższe oświadczenie tworzy nową tabelę, której definicja dokładnie pasuje do istniejącej tabeli we wszystkich szczegółach innych niż nazwa tabeli. Nowa tabela nie zawiera wierszy.

CREATE TABLE empty_page_views
LIKE page_views;

Utwórz bazę danych

Tworzenie bazy danych w określonej lokalizacji. Jeśli nie określimy żadnej lokalizacji bazy danych, zostanie ona utworzona w katalogu hurtowni.

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

Tworzenie tabeli ACive gałęzi.

Tabele ACID są obsługiwane od wersji gałęzi 0.14. Poniższa tabela obsługuje UPDATE / DELETE / INSERT

Poniżej wymagane zmiany konfiguracji w 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

Obecnie obsługiwany jest tylko format orc.

Instrukcja tworzenia tabeli.

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

Integracja HIVE_HBASE

Integracja Hive-Hbase jest obsługiwana od wersji poniżej. Hive: 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");

Uwaga: 1. kolumna powinna być kolumną kluczową.

Utwórz tabelę przy użyciu istniejących właściwości tabeli.

CREATE TABLE new_table_name LIKE existing_table_name;


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow