Interrogation des tables Apache Iceberg
Athena vous permet d’exécuter des requêtes de lecture, Time Travel, d’écriture et DDL sur des tables Apache Iceberg.
Apache Iceberg
Pour plus d’informations sur Apache Iceberg, consultez https://iceberg.apache.org/
Considérations et restrictions
Les considérations et restrictions suivantes s’appliquent à la prise en charge des tables Iceberg dans Athena :
-
Version d’Iceberg prise en charge – Athena prend en charge la version 1.4.2 d’Apache Iceberg.
-
Tables enregistrées dans Lake Formation – Athena ne prend actuellement pas en charge les opérations DDL sur les tables Iceberg enregistrées dans Lake Formation.
-
Requêtes sur le schéma d’informations – Lors de l’interrogation du schéma d’informations des tables Iceberg, Athena utilise les métadonnées S3 comme source de vérité pour les métadonnées des colonnes. Cela signifie que les informations des colonnes sont dérivées des fichiers S3 sous-jacents plutôt que des métadonnées du catalogue. Ce comportement diffère de celui des autres formats de table, dans lesquels les métadonnées du catalogue peuvent être la source principale des informations des colonnes.
-
Tables avec catalogue AWS Glue uniquement : seules les tables Iceberg créées par rapport au catalogue AWS Glue basé sur les spécifications définies par l'implémentation du catalogue open source Glue
sont prises en charge par Athena. -
Support de verrouillage de table par AWS Glue uniquement : contrairement à l'implémentation du catalogue Open Source Glue, qui prend en charge le verrouillage personnalisé des plug-ins, Athena prend uniquement en charge le verrouillage optimiste de AWS Glue. L'utilisation d'Athena pour modifier une table Iceberg avec n'importe quelle autre implémentation de verrouillage entraînera une perte de données potentielle et interrompra les transactions.
-
Formats de fichier pris en charge – La version 3 du moteur Athena prend en charge les formats de fichier Iceberg suivants :
-
Parquet
-
ORC
-
Avro
-
-
Métadonnées Iceberg restreintes – Lake Formation n’évalue pas les tables de métadonnées Iceberg. Ces tables sont donc restreintes si des filtres de ligne ou de cellule Lake Formation sont appliqués dans la table de base ou si vous ne disposez pas de l’autorisation permettant d’afficher toutes les colonnes de la table de base. Dans ce cas, l’interrogation des tables de métadonnées Iceberg
$partitions,$files,$manifestset$snapshotséchoue et génère une erreurAccessDeniedException. Par ailleurs, la colonne de métadonnées$pathest soumise aux mêmes restrictions Lake Formation et génère une erreur lorsqu’elle est sélectionnée dans la requête. Toutes les autres tables de métadonnées peuvent être interrogées quels que soient les filtres Lake Formation. Pour plus d’informations, consultez Metadata tables. -
Tables Iceberg v2 : Athena ne crée et n'opère que sur des tables Iceberg v2. Pour connaître la différence entre les tables v1 et v2, consultez la section Modifications de version de format
dans la documentation Apache Iceberg. -
Affichage des types horaires sans fuseau horaire – L'heure et l'horodatage sans types de fuseau horaire sont affichés en UTC. Si le fuseau horaire n'est pas spécifié dans une expression de filtre sur une colonne de temps, UTC est utilisé.
-
Précision des données liées à l'horodatage – Bien qu'Iceberg prenne en charge la précision à la microseconde pour le type de données d'horodatage, Athena ne prend en charge que la précision à la milliseconde pour les horodatages, tant en lecture qu'en écriture. Pour les données contenues dans les colonnes liées au temps réécrites lors des opérations de compactage manuel, Athena conserve uniquement la précision a la milliseconde.
-
Opérations non prises en charge : les opérations Athena suivantes ne sont pas prises en charge pour les tables Iceberg.
-
Vues – Utiliser
CREATE VIEWpour créer des vues Athena comme décrit dans Utilisation de vues. Si vous souhaitez utiliser la spécification de vue Icebergpour créer des vues, contactez athena-feedback@amazon.com . -
Commandes de gestion TTF non prises en charge dans AWS Lake Formation – Bien que vous puissiez utiliser Lake Formation pour gérer les autorisations d'accès en lecture pour les formats de table des transactions (TTF) tels qu'Apache Iceberg, Apache Hudi et Linux Foundation Delta Lake, vous ne pouvez pas utiliser Lake Formation pour gérer les autorisations pour des opérations telles que
VACUUM,MERGE,UPDATEouOPTIMIZEavec ces formats de table. Pour plus d'informations sur l'intégration de Lake Formation à Athena, consultez Utilisation de AWS Lake Formation avec Amazon Athena dans le Guide du développeur AWS Lake Formation. -
Partitionnement par champs imbriqués – Le partitionnement par champs imbriqués n'est pas pris en charge. Toute tentative de ce type génère le message
NOT_SUPPORTED : Le partitionnement par champ imbriqué n'est pas pris en charge :column_name.nested_field_name. -
Omission des objets Amazon Glacier non prise en charge – Si des objets de la table Apache Iceberg appartiennent à une classe de stockage Amazon Glacier, la définition de la propriété de table
read_restored_glacier_objectssurfalsen’a aucun effet.Par exemple, supposons que vous exécutiez la commande suivante :
ALTER TABLEtable_nameSET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')Pour les tables Iceberg et Delta Lake, la commande produit l'erreur
Unsupported table property key: read_restored_glacier_objects. Pour les tables Hudi, la commandeALTER TABLEne génère pas d’erreur, mais les objets Amazon Glacier ne sont toujours pas ignorés. L'exécution de requêtesSELECTaprès la commandeALTER TABLEcontinue de renvoyer tous les objets.
Si vous souhaitez qu'Athena prenne en charge une fonction particulière, envoyez vos commentaires à l'adresse athena-feedback@amazon.com