SerDe Amazon Ion Hive - Amazon Athena

SerDe Amazon Ion Hive

Vous pouvez utiliser le SerDe Amazon Ion Hive pour interroger des données stockées au format Amazon Ion. Amazon Ion est un format de données open source riche et auto-descriptif. Le format Amazon Ion est utilisé dans le langage de requête SQL open source PartiQL.

Amazon Ion possède des formats binaires et texte interchangeables. Cette fonction combine la facilité d'utilisation du texte avec l'efficacité du codage binaire.

Pour interroger les données Amazon Ion depuis Athena, vous pouvez utiliser le SerDe Amazon Ion Hive, qui sérialise et désérialise les données Amazon Ion. La désérialisation vous permet d'exécuter des requêtes sur les données Amazon Ion ou de les lire pour écrire dans un format différent comme Parquet ou ORC. La sérialisation vous permet de générer des données au format Amazon Ion en utilisant des requêtes CREATE TABLE AS SELECT (CTAS) ou INSERT INTO pour copier des données à partir de tables existantes.

Note

Comme Amazon Ion est un sur-ensemble de JSON, vous pouvez utiliser le SerDe Amazon Ion Hive pour interroger des jeux de données JSON non Amazon Ion. Contrairement à d'autres bibliothèques SerDe JSON, le SerDe Amazon Ion ne s'attend pas à ce que chaque ligne de données soit sur une seule ligne. Cette fonction est utile si vous souhaitez interroger des jeux de données JSON au format « pretty print » ou si vous souhaitez diviser les champs d'une ligne avec des caractères de saut de ligne.

Pour obtenir des informations supplémentaires et des exemples d'interrogation d'Amazon Ion avec Athena, consultez Analyser des ensembles de données Amazon Ion à l'aide d'Amazon Athena.

Nom de la bibliothèque de sérialisation

La bibliothèque de sérialisation du SerDe Amazon Ion est nommée com.amazon.ionhiveserde.IonHiveSerDe. Pour obtenir des informations sur le code source, consultez Amazon Ion Hive SerDe sur GitHub.com.

Considérations et restrictions

  • Champs dupliqués – Les structures Amazon Ion sont commandées et prennent en charge les champs dupliqués, tandis que ce n'est pas le cas pour les structures STRUCT<> et MAP<>. Ainsi, lorsque vous désérialisez un champ dupliqué à partir d'une structure Amazon Ion, une seule valeur est choisie de façon non déterministe et les autres sont ignorées.

  • Tableaux de symboles externes non pris en charge – Actuellement, Athena ne prend pas en charge les tables de symboles externes, ni les propriétés SerDe d'Amazon Ion Hive suivantes :

    • ion.catalog.class

    • ion.catalog.file

    • ion.catalog.url

    • ion.symbol_table_imports

  • Extensions de fichier – Amazon Ion utilise des extensions de fichiers pour déterminer quel codec de compression utiliser pour désérialiser les fichiers Amazon Ion. Par conséquent, les fichiers compressés doivent avoir l'extension de fichier correspondant à l'algorithme de compression utilisé. Par exemple, si ZSTD est utilisé, les fichiers correspondants doivent porter l'extension .zst.

  • Données homogènes – Amazon Ion n'a aucune restriction sur les types de données qui peuvent être utilisés pour des valeurs dans des champs particuliers. Par exemple, deux documents Amazon Ion différents peuvent comporter un champ portant le même nom et possédant des types de données différents. Toutefois, comme Hive utilise un schéma, toutes les valeurs que vous extrayez dans une seule colonne Hive doivent avoir le même type de données.

  • Restrictions relatives aux types de clés – Lorsque vous sérialisez des données d'un autre format dans Amazon Ion, assurez-vous que le type de clé de mappage est l'un des suivants : STRING, VARCHAR, ou CHAR. Bien que Hive vous permette d'utiliser n'importe quel type de données primitif comme clé de mappage, Amazon Ion symbols (symboles Amazon Ion) doit être un type de chaîne.

  • Type union – Athena ne prend pas actuellement en charge le type union de Hive.

  • Type de données double : Amazon Ion ne prend actuellement pas en charge le type de données double.