AWS Athena - Creación de una tabla externa

Enviado por LT DATA el Jue, 18/07/2019 - 22:13

AWS Athena - Creación de una tabla externa

Hola a todos y bienvenidos a este blog en el que escribiré sobre informática en general y Big Data en particular.

Hoy voy a tratar de explicaros como crear una tabla externa en AWS Athena apuntando a datos almacenados en s3.

Los datos almacenados en el fichero que vamos a cargar en s3 tendrá cuatro columna, cada una de un tipo de datos diferente (entero, texto, fecha y decimal).


Lo primero será crear el bucket de s3, con la ruta de carpetas que necesitemos para almacenar el fichero .csv mostrado anteriormente. 

Una vez hayamos cargado el fichero pasaremos a realizar la creación de la base de datos, importante indicar que la location tiene que ser s3. Si no la indicamos nos dará problemas en el futuro, ya que le asignará una dirección de hdfs


Para ello abrimos AWS Athena y comprobamos que la base de datos que vamos a crear no existe. Así pues ejecutamos el código de creación de la base de datos. 

CREATE DATABASE IF NOT EXISTS tutorial__lt_data LOCATION 's3://lt-data-channel/tutorial__lt_data';

Una vez ejecutemos la base de datos ya estará creada. Solo tendremos que refrescar y ya podremos verla. 

A continuación, será el momento de crear la tabla externa. Decimos que esta tabla es externa por que apuntará a los datos de uno o varios ficheros sin almacenarlos directamente como hacen las  tablas de las bases de datos convencionales. 

Para ello ejecutaremos el siguiente código. 

CREATE EXTERNAL TABLE IF NOT EXISTS tutorial__lt_data.client_points ( 
    `client_id` INT,
    `name` STRING,
    `birthday` TIMESTAMP,
    `points` DOUBLE
)ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\;'
STORED AS INPUTFORMAT
    'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://lt-data-channel/sources/client-points/'
TBLPROPERTIES ("skip.header.line.count"="1");


Refrescando y mostrando la tabla podemos ver que ya se nos muestra correctamente los datos

Por último, os dejo el enlace a el vídeo de youtube donde se explica esto mismo de una forma práctica.