Creación de una tabla externa de Hive
Comprender las tablas externas de Hive
En Hive, una tabla externa es una tabla que apunta a datos almacenados en una ubicación externa, como HDFS. A diferencia de las tablas internas, que almacenan datos dentro del metastore de Hive, las tablas externas simplemente proporcionan una forma de acceder a datos que se almacenan en otro lugar.
Creación de una tabla externa de Hive
Para crear una tabla externa de Hive, puede utilizar la siguiente declaración SQL:
CREATE EXTERNAL TABLE IF NOT EXISTS table_name (
col1 data_type,
col2 data_type,
...
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/path/to/hdfs/directory';
Desglosemos las diferentes partes de esta declaración:
CREATE EXTERNAL TABLE IF NOT EXISTS table_name
: Esto crea una nueva tabla externa con el nombre especificado o omite la creación si la tabla ya existe.
(col1 data_type, col2 data_type, ...)
: Esto define las columnas de la tabla, junto con sus tipos de datos.
ROW FORMAT DELIMITED
: Esto especifica que los datos en la ubicación externa están delimitados por un carácter específico.
FIELDS TERMINATED BY ','
: Esto establece el delimitador de campo como una coma.
STORED AS TEXTFILE
: Esto le indica a Hive que los datos se almacenan en formato de archivo de texto.
LOCATION '/path/to/hdfs/directory'
: Esto especifica el directorio de HDFS donde se almacenan los datos.
Ejemplo: Creación de una tabla externa de Hive
Suponiendo que tiene un archivo CSV almacenado en HDFS en la ruta /user/hive/data/sales.csv
, puede crear una tabla externa de Hive de la siguiente manera:
CREATE EXTERNAL TABLE IF NOT EXISTS sales (
product STRING,
quantity INT,
price DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/data/sales.csv';
Esto crea una tabla externa de Hive llamada sales
con tres columnas: product
, quantity
y price
. Se espera que los datos estén en formato CSV, con campos separados por comas.