Interrogation des tables Linux Foundation Delta Lake - Amazon Athena

Interrogation des tables Linux Foundation Delta Lake

Linux Foundation Delta Lake est un format de table pour l'analytique du big data. Vous pouvez utiliser Amazon Athena pour lire directement les tables Delta  Lake stockées dans Amazon S3 sans avoir à générer de fichiers manifestes ou à exécuter l'instruction MSCK REPAIR.

Le format Delta Lake stocke les valeurs minimales et maximales par colonne de chaque fichier de données. L'implémentation Athena utilise ces informations pour permettre le saut de fichier sur les prédicats afin d'éliminer les fichiers non désirés de la considération.

Considérations et restrictions

Les considérations et restrictions suivantes s’appliquent à la prise en charge de Delta Lake dans Athena :

  • Tables avec catalogue AWS Glue uniquement – La prise en charge native de Delta Lake est assurée uniquement par les tables enregistrées dans AWS Glue. Si une table Delta Lake est enregistrée dans un autre métastore, vous pouvez la conserver et la traiter comme votre métastore primaire. Les métadonnées Delta Lake étant stockées dans le système de fichiers (par exemple, dans Amazon S3) plutôt que dans le métastore, Athena n'a besoin que de la propriété location dans AWS Glue pour lire vos tables Delta Lake.

  • Moteur V3 uniquement – Les requêtes Delta Lake ne sont prises en charge que par la version 3 du moteur Athena. Vous devez vous assurer que le groupe de travail que vous créez est configuré pour utiliser la version 3 du moteur Athena.

  • Pas de prise en charge du voyage dans le temps – Il n'y a pas de prise en charge des requêtes qui utilisent les capacités de voyage dans le temps de Delta Lake.

  • Lecture seule – L'écriture d'instructions DML comme UPDATE, INSERT ou DELETE n'est pas prise en charge.

  • Prise en charge de Lake Formation : l'intégration de Lake Formation est disponible pour les tables Delta Lake dont le schéma est synchronisé avec AWS Glue. Pour plus d'informations, consultez Utilisation de AWS Lake Formation avec Amazon Athena et Configuration des autorisations pour une table Delta Lake dans le Guide du développeur AWS Lake Formation.

  • Prise en charge limitée de DDL – Les instructions DDL suivantes sont prises en charge : CREATE EXTERNAL TABLE, SHOW COLUMNS, SHOW TBLPROPERTIES, SHOW PARTITIONS, SHOW CREATE TABLE et DESCRIBE. Pour plus d'informations sur l'utilisation de l'instruction CREATE EXTERNAL TABLE, voir la rubrique Prise en main des tables Delta Lake.

  • Omission des objets Amazon Glacier non prise en charge – Si des objets de la table Linux Foundation Delta Lake appartiennent à une classe de stockage Amazon Glacier, la définition de la propriété de table read_restored_glacier_objects sur false n’a aucun effet.

    Par exemple, supposons que vous exécutiez la commande suivante :

    ALTER TABLE table_name SET 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 commande ALTER TABLE ne génère pas d’erreur, mais les objets Amazon Glacier ne sont toujours pas ignorés. L'exécution de requêtes SELECT après la commande ALTER TABLE continue de renvoyer tous les objets.

  • Tables chiffrées – Athena ne prend pas en charge la lecture native des tables Delta Lake chiffrées avec CSE-KMS. Cela concerne les instructions SELECT et DDL.

Gestion des versions de Delta Lake et Athena

Athena n’utilise pas la gestion des versions mentionnée dans la documentation Delta Lake. Basez-vous sur les deux caractéristiques suivantes pour déterminer si vos tables Delta Lake sont compatibles avec Athena :

  • Version de lecture – Chaque table Delta Lake dispose d’une version de lecture. Elle est actuellement comprise entre 1 et 3. Les requêtes portant sur une table dont la version de lecture n’est pas prise en charge par Athena échoueront.

  • Fonctionnalités de la table – Chaque table Delta Lake peut également déclarer un ensemble de fonctionnalités de lecture/d’écriture. La prise en charge de Delta Lake par Athena étant en lecture seule, la compatibilité des fonctionnalités d’écriture de table ne s’applique pas. Cependant, les requêtes portant sur des tables dont les fonctionnalités de lecture de table ne sont pas prises en charge échoueront.

Le tableau suivant présente les versions et les fonctionnalités de lecture de table Delta Lake prises en charge par Athena.

Type de requête Versions de lecture prises en charge Fonctionnalités de lecture prises en charge
DQL (instructions SELECT) <= 3 Mappage de colonnes, timestampNtz, vecteurs de suppression
DDL <= 1 Non applicable. Les fonctionnalités de lecture peuvent être déclarées uniquement sur les tables présentant une version de lecture 2 ou supérieure.

Pour créer dans Athena une table Delta Lake ayant une version de lecture supérieure à 1, consultez Synchronisation des métadonnées Delta Lake.