Buscar..


Sintaxis

  • CREAR [TEMPORAL] [EXTERNO] TABLA [SI NO EXISTE] [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, ...) [SORTED BY ( col_name [ASC | DESC], ...)] INTO num_buckets BUCKETS] [SKEWED BY (col_name, col_name, ...) - (Nota: Disponible en Hive 0.10.0 y posterior)] ON ((col_value, col_value, ...), (col_value, col_value, ...), ...) [ALMACENADO COMO DIRECTORIOS] [[FORMATO DE FILA row_format] [STORED AS file_format] | ALMACENADO POR 'storage.handler.class.name' [CON SERDEPROPERTIES (...)]] [LOCATION hdfs_path] [TBLPROPERTIES (property_name = property_value, ...)]
    [AS select_statement];

  • CREAR LA TABLA [TEMPORAL] [EXTERNA] [SI NO EXISTE] [nombre_bd.] Nombre_tabla LIKE existing_table_or_view_name [LOCATION hdfs_path];

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

  • tipo primitivo: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOTADOR, DOBLE, STRING, BINARY, TIMESTAMP, DECIMAL, DECIMAL (precisión, escala), 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 [CAMPOS TERMINADOS POR char [ESCAPED BY char]] [COLECCIÓN ARTÍCULOS TERMINADOS POR char] [MAP KEYS TERMINATED BY char] [LÍNEAS TERMINADAS POR char] [NULL DEFINED AS char]
    , SERDE serde_name [CON 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) [SI NO EXISTE] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name = property_value, ...)];

Observaciones

Cuando se trabaja con tablas y bases de datos en HIVE. Los siguientes puntos pueden ser útiles.

  • Podemos cambiar la base de datos utilizando la use database; mando
  • Para conocer la base de datos de trabajo actual podemos obtener utilizando SELECT current_database()
  • Para ver el DDL utilizado para crear una declaración de tabla, podemos usar SHOW CREATE TABLE tablename
  • Para ver todas las columnas de la tabla, utilice DESCRIBE tablename para mostrar detalles extendidos, como la ubicación que se usa y otros DESCRIBE FORMATTED tablename . DESCRIBIR también se puede abreviar como DESC.

Crear mesa

Creación de una tabla administrada con partición y almacenada como un archivo de secuencia. Se asume que el formato de datos en los archivos está delimitado por el campo por Ctrl-A (^A) y por la línea nueva delimitado por filas. La siguiente tabla se crea en el directorio del almacén de Hive especificado en valor para la clave hive.metastore.warehouse.dir en el archivo de configuración de Hive 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;

Creación de una tabla externa con particiones y almacenada como un archivo de secuencia. Se supone que el formato de datos en los archivos está delimitado por el campo por ctrl-A y por la línea nueva delimitado por filas. La siguiente tabla se crea en la ubicación especificada y es útil cuando ya tenemos datos. Una de las ventajas de usar una tabla externa es que podemos eliminar la tabla sin eliminar los datos. Por ejemplo, si creamos una tabla y nos damos cuenta de que el esquema es incorrecto, podemos dejar la tabla de forma segura y recrear con el nuevo esquema sin preocuparnos por los datos. Otra ventaja es que si estamos usando otras herramientas como pig en los mismos archivos, Podemos seguir usándolos incluso después de eliminar la tabla.

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

Al crear una tabla utilizando la consulta de selección y rellenando los resultados de la consulta, estas declaraciones se conocen como CTAS (Crear tabla como selección) .

Hay dos partes en CTAS, la parte SELECT puede ser cualquier instrucción SELECT admitida por HiveQL. La parte CREAR del CTAS toma el esquema resultante de la parte SELECCIONAR y crea la tabla de destino con otras propiedades de la tabla como el SerDe y el formato de almacenamiento.

CTAS tiene estas restricciones:

  • La tabla de destino no puede ser una tabla particionada.
  • La tabla de destino no puede ser una tabla externa.
  • La tabla de destino no puede ser una tabla de agrupación de listas.
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;

Crear tabla como:

La forma LIKE de CREATE TABLE le permite copiar una definición de tabla existente exactamente (sin copiar sus datos). A diferencia de CTAS, la siguiente declaración crea una nueva tabla cuya definición coincide exactamente con la tabla existente en todos los detalles, excepto el nombre de la tabla. La nueva tabla no contiene filas.

CREATE TABLE empty_page_views
LIKE page_views;

Crear base de datos

Creación de una base de datos en una ubicación particular. Si no especificamos ninguna ubicación para la base de datos, se creará en el directorio del almacén.

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

Creación de tablas Hive ACID.

Las tablas ACID son compatibles desde la versión hive 0.14. Debajo de la tabla es compatible con ACTUALIZAR / BORRAR / INSERTAR

Debajo de los cambios de configuración requeridos en 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

Actualmente solo el archivo orc es compatible con el formato.

Tabla de crear declaración.

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

Integración HIVE_HBASE

La integración Hive-Hbase es compatible desde las versiones inferiores. Colmena: 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");

Nota: la primera columna debe ser la columna clave.

Crear tabla utilizando las propiedades de tabla existentes.

CREATE TABLE new_table_name LIKE existing_table_name;


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow