HCatalog - Crear tabla

Este capítulo explica cómo crear una tabla y cómo insertar datos en ella. Las convenciones de crear una tabla en HCatalog son bastante similares a crear una tabla con Hive.

Crear declaración de tabla

Create Table es una declaración que se usa para crear una tabla en Hive metastore usando HCatalog. Su sintaxis y ejemplo son los siguientes:

Sintaxis

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[ROW FORMAT row_format]
[STORED AS file_format]

Ejemplo

Supongamos que necesita crear una tabla llamada employee utilizando CREATE TABLEdeclaración. La siguiente tabla enumera los campos y sus tipos de datos en elemployee mesa -

No Señor Nombre del campo Tipo de datos
1 Eid En t
2 Nombre Cuerda
3 Salario Flotador
4 Designacion cuerda

Los siguientes datos definen los campos admitidos como Comment, Campos con formato de fila como Field terminator, Lines terminatory Stored File type.

COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE

La siguiente consulta crea una tabla llamada employee utilizando los datos anteriores.

./hcat –e "CREATE TABLE IF NOT EXISTS employee ( eid int, name String, 
   salary String, destination String) \
COMMENT 'Employee details' \
ROW FORMAT DELIMITED \
FIELDS TERMINATED BY ‘\t’ \
LINES TERMINATED BY ‘\n’ \
STORED AS TEXTFILE;"

Si agrega la opción IF NOT EXISTS, HCatalog ignora la declaración en caso de que la tabla ya exista.

En la creación exitosa de la tabla, puede ver la siguiente respuesta:

OK
Time taken: 5.905 seconds

Declaración de carga de datos

Generalmente, después de crear una tabla en SQL, podemos insertar datos usando la instrucción Insert. Pero en HCatalog, insertamos datos usando la instrucción LOAD DATA.

Al insertar datos en HCatalog, es mejor usar LOAD DATA para almacenar registros masivos. Hay dos formas de cargar datos: una es desdelocal file system y el segundo es de Hadoop file system.

Sintaxis

La sintaxis de LOAD DATA es la siguiente:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
  • LOCAL es el identificador para especificar la ruta local. Es opcional.
  • OVERWRITE es opcional para sobrescribir los datos de la tabla.
  • La PARTICIÓN es opcional.

Ejemplo

Insertaremos los siguientes datos en la tabla. Es un archivo de texto llamadosample.txt en /home/user directorio.

1201  Gopal        45000    Technical manager
1202  Manisha      45000    Proof reader
1203  Masthanvali  40000    Technical writer
1204  Kiran        40000    Hr Admin
1205  Kranthi      30000    Op Admin

La siguiente consulta carga el texto dado en la tabla.

./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"

En la descarga exitosa, puede ver la siguiente respuesta:

OK
Time taken: 15.905 seconds