Поиск…


Синтаксис

  • CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_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, ...) [SORTED BY ( col_name [ASC | DESC], ...)] INTO num_buckets BUCKETS] [SKEWED BY (col_name, col_name, ...) - (Примечание: доступно в Hive 0.10.0 и новее)] ON ((col_value, col_value, ...), (col_value, col_value, ...), ...) [STORED AS DIRECTORIES] [[ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]] [LOCATION hdfs_path] [TBLPROPERTIES (property_name = property_value, ...)]
    [AS select_statement];

  • CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] Имя_таблицы LIKE existing_table_or_view_name [LOCATION hdfs_path];

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

  • primitive_type: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT, DOUBLE, STRING, BINARY, TIMESTAMP, DECIMAL, DECIMAL (точность, масштаб), 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]] [КОЛЛЕКЦИОННЫЕ ПУНКТЫ, ПРЕКРАЩЕННЫЕ char] [КЛЮЧИ КАРТЫ, ПРЕКРАЩЕННЫМИ char] [ЛИНИИ, ПРЕКРАЩЕННЫЕ char] [NULL DEFINED AS char]
    , SERDE serde_name [WITH 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] имя_базы_комментария [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name = property_value, ...)];

замечания

При работе с таблицами и базами данных в HIVE. Ниже точки могут быть полезны.

  • Мы можем переключать базу данных с use database; команда
  • Чтобы узнать текущую рабочую базу данных, мы можем использовать SELECT current_database()
  • Чтобы увидеть DDL, используемый для создания инструкции table, мы можем использовать SHOW CREATE TABLE tablename
  • Чтобы увидеть все столбцы таблицы, используйте DESCRIBE tablename чтобы показать расширенные данные, такие как location serde used и другие DESCRIBE FORMATTED tablename . DESCRIBE также может быть сокращен как DESC.

Создать таблицу

Создание управляемой таблицы с разделом и сохранение в виде файла последовательности. Предполагается, что формат данных в файлах разделен по полю с помощью Ctrl-A (^A) и строки, разделенной символом новой строки. hive.metastore.warehouse.dir таблица создается в каталоге хранилища хранилища, указанном в значении для ключа hive.metastore.warehouse.dir в файле конфигурации 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;

Создание внешней таблицы с разделами и сохранение в виде файла последовательности. Формат данных в файлах считается разделенным по полю ctrl-A и строковым разделителем по новой строке. Нижеследующая таблица создается в указанном месте и подходит, когда у нас уже есть данные. Одним из преимуществ использования внешней таблицы является то, что мы можем удалить таблицу без удаления данных. Например, если мы создаем таблицу и понимаем, что схема неверна, мы можем безопасно отказаться от таблицы и воссоздать ее с помощью новой схемы, не беспокоясь о данных. Другое преимущество заключается в том, что если мы используем другие инструменты, такие как свиньи в одних и тех же файлах, мы можем продолжать использовать их даже после удаления таблицы.

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

Создание таблицы с использованием запроса выбора и заполнения результатов запроса, эти операторы известны как CTAS (Create Table As Select) .

В CTAS есть две части: SELECT-часть может быть любой инструкцией SELECT, поддерживаемой HiveQL. Часть CREATE CTAS берет результирующую схему из части SELECT и создает целевую таблицу с другими свойствами таблицы, такими как SerDe и формат хранения.

CTAS имеет следующие ограничения:

  • Целевая таблица не может быть секционированной таблицей.
  • Целевая таблица не может быть внешней таблицей.
  • Целевая таблица не может быть таблицей балансировки списка.
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;

Создать таблицу как:

Форма LIKE CREATE TABLE позволяет скопировать существующее определение таблицы точно (без копирования его данных). В отличие от CTAS, приведенная ниже инструкция создает новую таблицу, определение которой точно соответствует существующей таблице во всех деталях, отличных от имени таблицы. Новая таблица не содержит строк.

CREATE TABLE empty_page_views
LIKE page_views;

Создать базу данных

Создание базы данных в определенном месте. Если мы не укажем какое-либо место для базы данных, созданную в каталоге хранилища.

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

Создание таблицы ACID улья.

Таблицы ACID поддерживаются с версии улья 0.14. Ниже таблицы поддерживает UPDATE / DELETE / INSERT

Ниже изменений конфигурации требуется в 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

В настоящее время поддерживается только формат файла orc.

Оператор создания таблицы.

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

Интеграция HIVE_HBASE

Интеграция Hive-Hbase поддерживается с более низких версий. Улей: 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");

Примечание: 1-й столбец должен быть ключевым столбцом.

Создайте таблицу, используя существующие свойства таблицы.

CREATE TABLE new_table_name LIKE existing_table_name;


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow