Amazon Ion Hive SerDe - Amazon Athena

Amazon Ion Hive SerDe

Você pode usar o Amazon Ion Hive SerDe para consultar dados armazenados no formato Amazon Ion. O Amazon Ion é um formato de dados de código aberto ricamente tipado e autodescritivo. O formato Amazon Ion é usado por serviços como o Amazon Quantum Ledger Database(Amazon QLDB) e na linguagem de consulta SQL de código aberto PartiQL.

O Amazon Ion tem formatos binários e de texto intercambiáveis. Esse recurso combina a facilidade de uso do texto com a eficiência da codificação binária.

Para consultar dados do Amazon Ion no Athena, você pode usar o Amazon Ion Hive SerDe, que serializa e desserializa os dados do Amazon Ion. A desserialização permite que você execute consultas nos dados do Amazon Ion ou leia os dados para gravá-los em um formato diferente, como Parquet ou ORC. A serialização permite gerar dados no formato Amazon Ion usando consultas CREATE TABLE AS SELECT (CTAS) ou INSERT INTO para copiar dados de tabelas existentes.

nota

Como o Amazon Ion é um superconjunto de JSON, você pode usar o Amazon Ion Hive SerDe para consultar conjuntos de dados JSON em formatos diferentes do Amazon Ion. Ao contrário de outras bibliotecas de SerDe JSON, o Amazon Ion SerDe não espera que cada linha de dados esteja em uma única linha. Esse recurso é útil quando você deseja consultar conjuntos de dados JSON que passaram por reformatação automática ou usar caracteres de nova linha para dividir os campos em uma linha.

Para obter informações adicionais e exemplos de como consultar o Amazon Ion com o Athena, consulte Analise conjuntos de dados do Amazon Ion usando o Amazon Athena.

Nome da biblioteca de serialização

O nome da biblioteca de serialização do Amazon Ion SerDe é com.amazon.ionhiveserde.IonHiveSerDe. Para obter informações sobre o código-fonte, consulte Amazon Ion Hive SerDe em GitHub.com.

Considerações e limitações

  • Campos duplicados: as structs do Amazon Ion são ordenadas e oferecem suporte a campos duplicados, o que não acontece com STRUCT<> e MAP<> do Hive. Assim, quando você desserializa um campo duplicado de uma struct do Amazon Ion, um único valor é escolhido de forma não determinística e os outros são ignorados.

  • Tabelas de símbolos externos sem suporte: atualmente, o Athena não oferece suporte a tabelas de símbolos externos ou às seguintes propriedades do Amazon Ion Hive SerDe:

    • ion.catalog.class

    • ion.catalog.file

    • ion.catalog.url

    • ion.symbol_table_imports

  • Extensões de arquivo: o Amazon Ion usa extensões de arquivo para determinar o codec de compactação a ser usado na desserialização de arquivos do Amazon Ion. Assim, os arquivos compactados devem ter a extensão que corresponde ao algoritmo de compactação usado. Por exemplo, se for usado o ZSTD, os arquivos correspondentes deverão ter a extensão .zst.

  • Dados homogêneos: o Amazon Ion não tem restrições de tipos de dados que podem ser usados como valores em campos específicos. Por exemplo, dois documentos diferentes do Amazon Ion podem ter um campo com o mesmo nome que tenha tipos de dados diferentes. No entanto, como o Hive usa um esquema, todos os valores extraídos para uma única coluna do Hive devem ter o mesmo tipo de dado.

  • Restrições de tipo de chave: ao serializar dados de outro formato para o Amazon Ion, certifique-se de que o tipo de chave do mapa seja STRING, VARCHAR ou CHAR. Embora o Hive permita usar qualquer tipo de dado primitivo como chave do mapa, os símbolos do Amazon Ion devem ser um tipo de string.

  • Tipo union: atualmente, o Athena não oferece suporte ao tipo union do Hive.

  • Tipo de dados “double”: no momento, o Amazon Ion não oferece suporte ao tipo de dados double.