Creación de tablas de Amazon Ion - Amazon Athena

Creación de tablas de Amazon Ion

Para crear una tabla en Athena a partir de los datos almacenados en formato Amazon Ion, puede utilizar una de las siguientes técnicas en una instrucción CREATE TABLE:

  • Especifique STORED AS ION. En este uso, no es necesario que especifique el SerDe de Amazon Ion Hive de forma explícita. Esta elección es la opción más sencilla.

  • Especifique las rutas de clases de Amazon Ion en los campos ROW FORMAT SERDE, INPUTFORMAT, y OUTPUTFORMAT.

También puede utilizar las instrucciones CREATE TABLE AS SELECT (CTAS) para crear tablas de Amazon Ion en Athena. Para obtener más información, consulte Uso de CTAS e INSERT INTO para crear tablas de Amazon Ion.

Especificación de STORED AS ION

La próxima instrucción CREATE TABLE de ejemplo utiliza STORED AS ION antes de la cláusula LOCATION para crear una tabla basada en datos de vuelos en formato Amazon Ion. La cláusula LOCATION especifica el bucket o la carpeta donde se encuentran los archivos de entrada en formato Ion. Se analizan todos los archivos de la ubicación especificada.

CREATE EXTERNAL TABLE flights_ion ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, ) STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/'

Especificación de las rutas de clases de Amazon Ion

En lugar de utilizar la sintaxis STORED AS ION, puede especificar de forma explícita los valores de la ruta de clase de Ion para las cláusulas ROW FORMAT SERDE, INPUTFORMAT, y OUTPUTFORMAT de la siguiente manera.

Parámetro Ruta de clase de Ion
ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe'
STORED AS INPUTFORMAT 'com.amazon.ionhiveserde.formats.IonInputFormat'
OUTPUTFORMAT 'com.amazon.ionhiveserde.formats.IonOutputFormat'

La siguiente consulta DDL utiliza esta técnica para crear la misma tabla externa que en el ejemplo anterior.

CREATE EXTERNAL TABLE flights_ion ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, ) ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe' STORED AS INPUTFORMAT 'com.amazon.ionhiveserde.formats.IonInputFormat' OUTPUTFORMAT 'com.amazon.ionhiveserde.formats.IonOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/'

Para obtener información sobre las propiedades del SerDe para instrucciones CREATE TABLE en Athena, consulte Referencia de la propiedad de SerDe de Amazon Ion.