¿Cómo puedo almacenar el resultado de una consulta de Amazon Athena en un formato que no sea CSV, como un formato comprimido?

3 minutos de lectura
0

Quiero almacenar los resultados de las consultas de Amazon Athena en un formato que no sea CSV, como JSON o un formato comprimido.

Resolución

Athena solo admite archivos de salida CSV. La consulta UNLOAD escribe los resultados de la consulta de una instrucción SELECT en el formato de datos especificado. Los formatos compatibles con UNLOAD incluyen Apache Parquet, ORC, Apache Avro y JSON. CSV es el único formato de salida que utiliza la consulta SELECT de Athena, pero puede usar UNLOAD para escribir el resultado de una consulta SELECT en los formatos compatibles con UNLOAD. Si bien puede utilizar la instrucción CTAS para generar datos en formatos que no sean CSV, esas instrucciones también requieren la creación de una tabla en Athena. La instrucción UNLOAD resulta útil cuando desea generar los resultados de una consulta SELECT en un formato que no sea CSV, pero no necesita la tabla asociada. Por ejemplo, una aplicación descendente puede requerir que los resultados de una consulta SELECT estén en formato JSON, y Parquet u ORC pueden ofrecer una ventaja de rendimiento sobre CSV si pretende utilizar los resultados de la consulta SELECT para llevar a cabo análisis adicionales.

Para almacenar los archivos de salida de la consulta en un formato diferente, utilice la consulta CREATE TABLE AS SELECT (CTAS) y, a continuación, configure la propiedad de formato. Una vez finalizada la consulta, elimine la tabla CTAS. Tenga en cuenta lo siguiente:

  • Puede establecer el formato en ORC, PARQUET, AVRO, JSON o TEXTFILE. Si no especifica un formato para la consulta CTAS, Athena usa Parquet de forma predeterminada.
  • El nombre del parámetro, el formato, debe aparecer en minúsculas; de lo contrario, se producirá un error en la consulta CTAS. Para ver un ejemplo, consulte Ejemplo: escritura de los resultados de la consulta en un formato diferente.
  • De forma predeterminada, todas las consultas CTAS utilizan la compresión GZIP. Para Parquet y ORC, puede utilizar las opciones parquet_compression y orc_compression para especificar otros tipos de compresión, como SNAPPY. Para ver un ejemplo, consulte Ejemplo: especificación de los formatos de almacenamiento y compresión de datos.
  • Para los formatos basados en texto, puede especificar un field_delimiter de la siguiente manera: WITH (field_delimiter = ','). Si no especifica un delimitador de campo, Athena usa \001 de forma predeterminada.
  • Si utiliza el parámetro external_location en la consulta CTAS, asegúrese de que la ubicación de Amazon Simple Storage Service (Amazon S3) no contenga datos. De lo contrario, es posible que vea un error como este: «HIVE_PATH_ALREADY_EXISTS: El directorio de destino para la tabla 'table_name' ya existe: s3://AWSDOC-EXAMPLE-BUCKET». Para obtener más información sobre el parámetro external_location, consulte Propiedades de la tabla CTAS.

Información relacionada

Consideraciones y limitaciones de las consultas CTAS

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años