SerDe de Amazon Ion Hive - Amazon Athena

SerDe de Amazon Ion Hive

Puede utilizar el SerDe de Amazon Ion Hive para consultar datos almacenados en formato Amazon Ion. Amazon Ion es un formato de datos altamente codificado, autodescriptivo y de código abierto. El formato Amazon Ion se utiliza con servicios como Amazon Quantum Ledger Database (Amazon QLDB) y en el lenguaje de consulta SQL de código abierto PartiQL.

Amazon Ion tiene formatos binarios y de texto que son intercambiables. Esta característica combina la facilidad de uso del texto con la eficacia de la codificación binaria.

Para consultar los datos de Amazon Ion desde Athena, puede utilizar el SerDe de Amazon Ion Hive, que serializa y deserializa los datos de Amazon Ion. La deserialización permite ejecutar consultas sobre los datos de Amazon Ion o leerlos para escribir en un formato diferente como Parquet u ORC. La serialización permite generar datos en formato Amazon Ion mediante consultas CREATE TABLE AS SELECT (CTAS) o INSERT INTO para copiar datos de tablas existentes.

nota

Dado que Amazon Ion es un superconjunto de JSON, puede utilizar el SerDe de Amazon Ion Hive para consultar conjuntos de datos JSON que no sean de Amazon Ion. A diferencia de otras bibliotecas de SerDe JSON, el SerDe de Amazon Ion no espera que cada fila de datos esté en una sola línea. Esta característica resulta útil si desea consultar conjuntos de datos JSON que presentan “un buen formato de impresión” o dividir los campos en una fila con caracteres de nueva línea.

Para obtener información adicional y ejemplos de consultas de Amazon Ion con Athena, consulte Analizar conjuntos de datos de Amazon Ion con Amazon Athena.

Nombre de la biblioteca de serialización

El nombre de la biblioteca de serialización de SerDe de Amazon Ion es com.amazon.ionhiveserde.IonHiveSerDe. Para obtener información sobre el código fuente, consulte Amazon Ion Hive SerDe en GitHub.com.

Consideraciones y limitaciones

  • Campos duplicados: las estructuras de Amazon Ion están ordenadas y admiten campos duplicados, mientras que STRUCT<> y MAP<> de Hive no lo hacen. Por lo tanto, cuando se deserializa un campo duplicado de una estructura de Amazon Ion, se elige un solo valor de forma no determinista y los demás se ignoran.

  • Tablas de símbolos externas no compatibles: en la actualidad, Athena no admite tablas de símbolos externas ni las siguientes propiedades del SerDe de Amazon Ion Hive:

    • ion.catalog.class

    • ion.catalog.file

    • ion.catalog.url

    • ion.symbol_table_imports

  • Extensiones de archivo: Amazon Ion utiliza extensiones de archivo para determinar qué códec de compresión se debe utilizar para deserializar archivos de Amazon Ion. Por lo tanto, los archivos comprimidos deben tener la extensión de archivo que corresponde al algoritmo de compresión utilizado. Por ejemplo, si se utiliza ZSTD, los archivos correspondientes deben tener la extensión .zst.

  • Datos homogéneos: Amazon Ion no tiene restricciones sobre los tipos de datos que se pueden utilizar para valores en campos determinados. Por ejemplo, dos documentos de Amazon Ion diferentes pueden tener un campo con el mismo nombre, pero con tipos de datos diferentes. Sin embargo, dado que Hive utiliza un esquema, todos los valores que se extraen en una sola columna de Hive deben tener el mismo tipo de datos.

  • Restricciones del tipo de clave de asignación: cuando serialice datos de otro formato en Amazon Ion, asegúrese de que el tipo de clave de asignación sea uno de los siguientes: STRING, VARCHAR, o CHAR. Si bien Hive permite utilizar cualquier tipo de datos primitivo como clave de asignación, los símbolos de Amazon Ion deben ser de tipo cadena.

  • Tipo de unión: Athena no admite actualmente el tipo de unión de Hive.

  • Tipo de datos double: Amazon Ion no admite actualmente el tipo de datos double.