GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo crear una tabla externa en Hive

Introducción

En la terminología de Hive, las tablas externas son tablas que no se administran con Hive. Su propósito es facilitar la importación de datos desde un archivo externo al metastore.

Los datos de la tabla externa se almacenan externamente, mientras que Hive metastore solo contiene el esquema de metadatos. En consecuencia, eliminar una tabla externa no afecta los datos.

En este tutorial, aprenderá a crear, consultar y soltar una tabla externa en Hive.

Requisitos previos

  • Ubuntu 18.04 LTS o posterior
  • Acceso a la línea de comandos con privilegios sudo
  • Apache Hadoop instalado y funcionando
  • Apache Hive instalado y funcionando

Nota: Este tutorial usa Ubuntu 20.04. Sin embargo, Hive funciona igual en todos los sistemas operativos. Esto significa que el proceso de creación, consulta y eliminación de tablas externas se puede aplicar a Hive en Windows, Mac OS, otras distribuciones de Linux, etc.

Creación de una tabla externa en Hive:explicación de la sintaxis

Al crear una tabla externa en Hive, debe proporcionar la siguiente información:

  • Nombre de la tabla – El create external table comando crea la tabla. Si ya existe una tabla con el mismo nombre en el sistema, esto generará un error. Para evitar esto, agregue if not exists a la declaración. Los nombres de las tablas no distinguen entre mayúsculas y minúsculas.
  • Nombres y tipos de columnas – Al igual que los nombres de las tablas, los nombres de las columnas no distinguen entre mayúsculas y minúsculas. Los tipos de columna son valores como int , char , string , etc.
  • Formato de fila – Las filas usan formatos SerDe (Serializador/Deserializador) nativos o personalizados. Native SerDe se utilizará si el formato de fila no está definido o si se especifica como delimitado.
  • Carácter de terminación de campo – Este es un char escriba el carácter que separa los valores de la tabla en una fila.
  • Formato de almacenamiento – Puede especificar formatos de almacenamiento como archivo de texto, archivo de secuencia, archivo json, etc.
  • Ubicación – Esta es la ubicación del directorio HDFS del archivo que contiene los datos de la tabla.

La sintaxis correcta para proporcionar esta información a Hive es:

create external table if not exists [external-table-name] (
[column1-name] [column1-type], [column2-name] [column2-type], …)
comment '[comment]'
row format [format-type]
fields terminated by '[termination-character]'
stored as [storage-type]
location '[location]';

Crear una tabla externa de Hive:ejemplo

A modo de ejemplo práctico, este tutorial le mostrará cómo importar datos de un archivo CSV a una tabla externa.

Paso 1:preparar el archivo de datos

1. Cree un archivo CSV titulado "países.csv":

sudo nano countries.csv

2. Para cada país de la lista, escriba un número de fila, el nombre del país, su ciudad capital y su población en millones:

1,USA,Washington,328
2,France,Paris,67
3,Spain,Madrid,47
4,Russia,Moscow,145
5,Indonesia,Jakarta,267
6,Nigeria,Abuja,196

3. Guarde el archivo y tome nota de su ubicación.

Paso 2:Importe el archivo a HDFS

1. Cree un directorio HDFS. Utilizará este directorio como una ubicación HDFS del archivo que creó.

hdfs dfs -mkdir [hdfs-directory-name]

2. Importe el archivo CSV a HDFS:

hdfs dfs -put [original-file-location] [hdfs-directory-name]

3. Usa el -ls comando para verificar que el archivo está en la carpeta HDFS:

hdfs dfs -ls [hdfs-directory-name]

La salida muestra todos los archivos actualmente en el directorio.

Nota: Para obtener más información sobre HDFS, consulte ¿Qué es HDFS? Guía del sistema de archivos distribuidos de Hadoop.

Paso 3:Crear una tabla externa

1. Después de importar el archivo de datos a HDFS, inicie Hive y use la sintaxis explicada anteriormente para crear una tabla externa.

2. Para verificar que la creación de la tabla externa fue exitosa, escriba:

select * from [external-table-name];

El resultado debe enumerar los datos del archivo CSV que importó a la tabla:

3. Si desea crear una tabla administrada utilizando los datos de una tabla externa, escriba:

create table if not exists [managed-table-name](
[column1-name] [column1-type], [column2-name] [var2-name], …)
comment '[comment]';

4. A continuación, importe los datos de la tabla externa:

insert overwrite table [managed-table-name] select * from [external-table-name];

5. Verifique que los datos se hayan insertado correctamente en la tabla administrada.

select * from [managed-table-name];

Cómo consultar una tabla externa de Hive

Para mostrar todos los datos almacenados en una tabla, utilizará el select * from comando seguido del nombre de la tabla. Hive ofrece una amplia lista de comandos de consulta que le permiten restringir sus búsquedas y ordenar los datos según sus preferencias.

Por ejemplo, puede usar el where comando después de select * from para especificar una condición:

select * from [table_name] where [condition];

Hive generará solo las filas que satisfagan la condición dada en la consulta:

En lugar del asterisco carácter que significa "todos los datos", puede utilizar determinantes más específicos. Reemplazar el asterisco con un nombre de columna (como CountryName , del ejemplo anterior) le mostrará solo los datos de la columna elegida.

Aquí hay algunas otras funciones de consulta útiles y su sintaxis:

Cómo eliminar una tabla externa de Hive

1. La eliminación de una tabla externa en Hive se realiza con el mismo comando de eliminación que se usa para las tablas administradas:

drop table [table_name];

La salida confirmará el éxito de la operación:

2. Consultar la tabla descartada devolverá un error:

Sin embargo, los datos de la tabla externa permanecen en el sistema y se pueden recuperar creando otra tabla externa en la misma ubicación.


Ubuntu
  1. Cómo crear una tabla en PhpMyAdmin

  2. ¿Cómo crear un USB persistente?

  3. ¿Cómo crear un alcance?

  4. Cómo crear un subdominio

  5. Cómo crear un subdominio

Cómo crear un usuario de Postgres

Cómo crear una nueva rama en Git

Cómo crear un usuario Sudo en Ubuntu

Cómo crear una tabla de DynamoDB en AWS

Cómo crear una reunión en Microsoft Teams

Cómo crear documentos en Ubuntu

    Función Sintaxis
    Consultar una tabla según múltiples condiciones select * from [table_name] where [condition1] and [condition2];
    Datos de la tabla de pedidos select [column1_name], [column2_name] from [table_name] order by [column_name];
    Ordenar los datos de la tabla en orden descendente select [column1_name], [column2_name] from [table_name] order by [column_name] desc;
    Mostrar el número de filas select count(*) from [table_name];