Remplissage et gestion des tables transactionnelles - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Remplissage et gestion des tables transactionnelles

Apache Iceberg, Apache Hudi et Linux Foundation Delta Lake sont des formats de table open source conçus pour gérer les analyses de données à grande échelle et les charges de travail des lacs de données dans Apache Spark.

Vous pouvez remplir les tables Iceberg, Hudi et Delta Lake à l' AWS Glue Data Catalog aide des méthodes suivantes :

  • AWS Glue crawler; — AWS Glue crawler s peut automatiquement découvrir et renseigner les métadonnées des tables Iceberg, Hudi et Delta Lake dans le catalogue de données. Pour plus d’informations, consultez Utilisation de robots d'exploration pour alimenter le catalogue de données .

  • AWS Glue Tâches ETL : vous pouvez créer des tâches ETL pour écrire des données dans les tables Iceberg, Hudi et Delta Lake et renseigner leurs métadonnées dans le catalogue de données. Pour plus d'informations, consultez la section Utilisation de frameworks de lacs de données avec des tâches AWS Glue ETL.

  • AWS Glue console, AWS Lake Formation console AWS CLI ou API : vous pouvez utiliser la AWS Glue console, la console Lake Formation ou l'API pour créer et gérer les définitions de tables Iceberg dans le catalogue de données.

Création de tables Apache Iceberg

Vous pouvez créer des tables Apache Iceberg qui utilisent le format de données Apache Parquet AWS Glue Data Catalog avec des données résidant dans Amazon S3. Une table du catalogue de données est la définition des métadonnées qui représente les données d'un magasin de données. Par défaut, AWS Glue crée 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.

Apache Iceberg est un format de table ouvert pour les jeux de données analytiques très volumineux. Iceberg permet de modifier facilement votre schéma, également connu sous le nom d'évolution du schéma, ce qui signifie que les utilisateurs peuvent ajouter, renommer ou supprimer des colonnes d'une table de données sans perturber les données sous-jacentes. Iceberg fournit également un support pour le versionnement des données, ce qui permet aux utilisateurs de suivre les modifications apportées aux données au fil du temps. Cela active la fonction de voyage dans le temps, qui permet aux utilisateurs d'accéder aux versions historiques des données, de les interroger et d'analyser les modifications apportées aux données entre les mises à jour et les suppressions.

Vous pouvez utiliser AWS Glue la console Lake Formation ou l'CreateTableopération de l' AWS Glue API pour créer une table Iceberg dans le catalogue de données. Pour plus d'informations, consultez CreateTable action (Python : create_table).

Lorsque vous créez une table Iceberg dans le catalogue de données, vous devez spécifier le format de la table et le chemin du fichier de métadonnées dans Amazon S3 pour pouvoir effectuer des lectures et des écritures.

Vous pouvez utiliser Lake Formation pour sécuriser votre table Iceberg à l'aide d'autorisations de contrôle d'accès précises lorsque vous enregistrez l'emplacement des données Amazon S3 auprès de celui-ci. AWS Lake Formation Pour les données source dans Amazon S3 et les métadonnées qui ne sont pas enregistrées auprès de Lake Formation, l'accès est déterminé par les politiques d'autorisation IAM pour Amazon S3 et AWS Glue les actions. Pour plus d'informations, consultez la section Gestion des autorisations.

Note

Le catalogue de données ne prend pas en charge la création de partitions ni l'ajout de propriétés de table Iceberg.

Prérequis

Pour créer des tables Iceberg dans le catalogue de données et configurer les autorisations d'accès aux données de Lake Formation, vous devez remplir les conditions suivantes :

  1. Autorisations requises pour créer des tables Iceberg sans les données enregistrées auprès de Lake Formation.

    Outre les autorisations requises pour créer une table dans le catalogue de données, le créateur de la table doit disposer des autorisations suivantes :

    • s3:PutObjectsur la ressource arn:aws:s3 : :1 {bucketName}

    • s3:GetObjectsur la ressource arn:aws:s3 : :1 {bucketName}

    • s3:DeleteObjectsur la ressource arn:aws:s3 : :1 {bucketName}

  2. Autorisations requises pour créer des tables Iceberg avec des données enregistrées auprès de Lake Formation :

    Pour utiliser Lake Formation afin de gérer et de sécuriser les données de votre lac de données, enregistrez votre site Amazon S3 contenant les données pour les tables auprès de Lake Formation. Cela permet à Lake Formation de vendre des informations d'identification à AWS des services d'analyse tels qu'Athena, Redshift Spectrum et Amazon EMR pour accéder aux données. Pour plus d'informations sur l'enregistrement d'un emplacement Amazon S3, consultez Ajouter un emplacement Amazon S3 à votre lac de données.

    Un directeur qui lit et écrit les données sous-jacentes enregistrées auprès de Lake Formation doit disposer des autorisations suivantes :

    • lakeformation:GetDataAccess

    • DATA_LOCATION_ACCESS

      Un directeur qui possède des autorisations de localisation des données sur un emplacement possède également des autorisations de localisation sur tous les sites enfants.

      Pour plus d'informations sur les autorisations de localisation des données, voir Ulink sous-jacent pour le contrôle d'accès aux données.

Pour activer le compactage, le service doit assumer un rôle IAM autorisé à mettre à jour les tables dans le catalogue de données. Pour plus d’informations, consultez Conditions préalables requises pour l'optimisation des tables .

Création d'une table Iceberg

Vous pouvez créer des tables Iceberg v1 et v2 à l'aide AWS Glue de la console Lake Formation ou AWS Command Line Interface comme indiqué sur cette page. Vous pouvez également créer des tables Iceberg à l'aide du AWS Glue crawler. Pour plus d'informations, consultez Data Catalog and Crawlers dans le manuel du AWS Glue développeur.

Pour créer une table Iceberg

Console
  1. Connectez-vous à la AWS Glue console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/glue/.

  2. Sous Catalogue de données, choisissez Tables, puis utilisez le bouton Créer une table pour spécifier les attributs suivants :

    • Nom de la table — Entrez le nom de la table. Si vous utilisez Athena pour accéder aux tables, suivez ces conseils de dénomination dans le guide de l'utilisateur d'Amazon Athena.

    • Base de données — Choisissez une base de données existante ou créez-en une nouvelle.

    • Description — Description de la table. Vous pouvez écrire une description vous aidant à comprendre le contenu de la table.

    • Format de tableau — Pour le format de tableau, choisissez Apache Iceberg.

    • Activer le compactage : sélectionnez Activer le compactage pour compacter les petits objets Amazon S3 du tableau en objets plus grands.

    • Rôle IAM : pour exécuter le compactage, le service assume un rôle IAM en votre nom. Vous pouvez choisir un rôle IAM à l'aide de la liste déroulante. Assurez-vous que le rôle dispose des autorisations requises pour activer le compactage.

      Pour en savoir plus sur les autorisations requises, consultez Conditions préalables requises pour l'optimisation des tables .

    • Emplacement — Spécifiez le chemin d'accès au dossier dans Amazon S3 qui stocke la table de métadonnées. Iceberg a besoin d'un fichier de métadonnées et d'un emplacement dans le catalogue de données pour pouvoir effectuer des lectures et des écritures.

    • Schéma — Choisissez Ajouter des colonnes pour ajouter des colonnes et les types de données des colonnes. Vous avez la possibilité de créer une table vide et de mettre à jour le schéma ultérieurement. Le catalogue de données prend en charge les types de données Hive. Pour plus d'informations, consultez la section Types de données Hive.

      Iceberg vous permet de faire évoluer le schéma et la partition après avoir créé la table. Vous pouvez utiliser les requêtes Athena pour mettre à jour le schéma de table et les requêtes Spark pour mettre à jour les partitions.

AWS CLI
aws glue create-table \ --database-name iceberg-db \ --region us-west-2 \ --open-table-format-input '{ "IcebergInput": { "MetadataOperation": "CREATE", "Version": "2" } }' \ --table-input '{"Name":"test-iceberg-input-demo", "TableType": "EXTERNAL_TABLE", "StorageDescriptor":{ "Columns":[ {"Name":"col1", "Type":"int"}, {"Name":"col2", "Type":"int"}, {"Name":"col3", "Type":"string"} ], "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/" } }'
Rubriques