Interrogation des données de table Iceberg - Amazon Athena

Interrogation des données de table Iceberg

Pour interroger un jeu de données Iceberg, utilisez une instruction standard SELECT comme suit. Les requêtes suivent les spécifications de format v2 Iceberg Apache et effectuent une fusion en lecture des suppressions de position et d'égalité.

SELECT * FROM [db_name.]table_name [WHERE predicate]

Pour optimiser les temps de requête, certains prédicats sont poussés vers l'endroit où résident les données.

Pour plus d’informations sur les requêtes Time Travel et Version Travel, consultez Exécution de requêtes Time Travel et Version Travel.

Création et interrogation de vues à l’aide de tables Iceberg

Pour créer et interroger des vues Athena sur des tables Iceberg, utilisez des vues CREATE VIEW comme décrit dans Utilisation de vues.

Exemple :

CREATE VIEW view1 AS SELECT * FROM iceberg_table
SELECT * FROM view1

Si vous souhaitez utiliser la spécification de vue Iceberg pour créer des vues, contactez athena-feedback@amazon.com.

Interrogation des métadonnées de tables Iceberg

Dans une requête SELECT, vous pouvez utiliser les propriétés suivantes après table_name pour interroger les métadonnées de la table Iceberg :

  • $files – Affiche les fichiers de données actuels d'une table.

  • $manifest – Affiche les manifestes des fichiers actuels d'une table.

  • $history – Affiche l'historique d'une table.

  • $partitions – Affiche les partitions actuelles d'une table.

  • $snapshots – Affiche les instantanés d'une table.

  • $refs – Affiche les références d'une table.

Exemples

L'instruction suivante répertorie les fichiers d'une table Iceberg.

SELECT * FROM "dbname"."tablename$files"

L'instruction suivante répertorie les manifestes d'une table Iceberg.

SELECT * FROM "dbname"."tablename$manifests"

L'instruction suivante affiche l'historique d'une table Iceberg.

SELECT * FROM "dbname"."tablename$history"

L'exemple suivant affiche les partitions d'une table Iceberg.

SELECT * FROM "dbname"."tablename$partitions"

L'exemple suivant affiche les instantanés d'une table Iceberg.

SELECT * FROM "dbname"."tablename$snapshots"

L'exemple suivant affiche les références d'une table Iceberg.

SELECT * FROM "dbname"."tablename$refs"

Utilisation du contrôle précis des accès de Lake Formation

La version 3 du moteur Athena prend en charge le contrôle d'accès précis de Lake Formation avec les tables Iceberg, y compris le contrôle d'accès de sécurité au niveau des colonnes et des lignes. Ce contrôle d'accès fonctionne avec les requêtes de voyage dans le temps et avec les tables qui ont effectué une évolution de leur schéma. Pour de plus amples informations, consultez Contrôle d'accès précis de Lake Formation et groupes de travail Athena.

Si vous avez créé votre table Iceberg en dehors d'Athena, utilisez le kit SDK Apache Iceberg en version 0.13.0 ou supérieure pour que les informations des colonnes de votre table Iceberg soient renseignées dans le AWS Glue Data Catalog. Si votre table Iceberg ne contient pas d'informations sur les colonnes de AWS Glue, vous pouvez utiliser l'instruction Athena ALTER TABLE SET TBLPROPERTIES ou le dernier kit SDK Iceberg pour corriger la table et mettre à jour les informations sur les colonnes de AWS Glue.