Accès aux tables à l’aide du point de terminaison Iceberg REST d’Amazon S3 Tables
Vous pouvez connecter votre Iceberg REST client au point de terminaison Iceberg REST d’Amazon S3 Tables et passer des appels REST API pour créer, mettre à jour ou interroger des tables dans des compartiments de table S3. Le point de terminaison implémente un ensemble d’API Iceberg REST standardisées spécifiées dans la spécification de l’API Apache Iceberg REST Catalog Open
Note
Le point de terminaison Iceberg REST d’Amazon S3 Tables peut être utilisé pour accéder aux tables dans les implémentations de catalogues AWS Partner Network (APN) ou dans les implémentations de catalogues personnalisés. Il peut également être utilisé si vous n’avez besoin que d’un accès de base en lecture/écriture à un seul compartiment de table. Pour les autres scénarios d’accès, nous recommandons d’utiliser le point de terminaison AWS Glue Iceberg REST pour se connecter aux tables, ce qui permet une gestion unifiée des tables, une gouvernance centralisée et un contrôle d’accès précis. Pour plus d’informations, consultez Accès à Amazon S3 Tables à l’aide du point de terminaison AWS Glue Iceberg REST
Configuration du point de terminaison
Vous vous connectez au point de terminaison Iceberg REST d’Amazon S3 Tables à l’aide du point de terminaison du service. Les points de terminaison Iceberg REST de S3 Tables ont le format suivant :
https://s3tables.<REGION>.amazonaws.com/iceberg
Reportez-vous à Points de terminaison et Régions AWS S3 Tables pour les points de terminaison spécifiques à une région.
Propriétés de configuration du catalogue
Lorsque vous utilisez un client Iceberg pour connecter un moteur d’analytique au point de terminaison du service, vous devez spécifier les propriétés de configuration suivantes lors de l’initialisation du catalogue. Remplacez les valeurs des espaces réservés par les informations de votre compartiment de table et de votre région.
Le point de terminaison spécifique à la région en tant qu’URI du point de terminaison :
https://s3tables.<REGION>.amazonaws.com/icebergL’ARN de votre compartiment de table comme emplacement de l’entrepôt :
arn:aws:s3tables:<region>:<accountID>:bucket/<bucketname>Propriétés Sigv4 pour l’authentification. Le nom de signature SigV4 pour les demandes de point de terminaison de service est le suivant :
s3tables
Les exemples suivants vous montrent comment configurer différents clients pour utiliser le point de terminaison Iceberg REST d’Amazon S3 Tables.
Authentification et autorisation d’accès au point de terminaison
Les demandes d’API adressées aux points de terminaison de service de S3 Tables sont authentifiées à l’aide d’AWS Signature Version 4 (SigV4). Consultez AWS Signature Version 4 pour les demandes d’API pour en savoir plus sur AWS SigV4.
Le nom de signature SigV4 pour les demandes de point de terminaison Iceberg REST d’Amazon S3 Tables est le suivant : s3tables
Les demandes adressées au point de terminaison Iceberg REST d’Amazon S3 Tables sont autorisées à l’aide d’actions s3tables IAM correspondant aux opérations d’API REST. Ces autorisations peuvent être définies dans les stratégies IAM basées sur l’identité ou les politiques basées sur les ressources associées aux tables et aux compartiments de table. Pour plus d’informations, consultez Gestion des accès pour S3 Tables.
Vous pouvez suivre les demandes adressées à vos tables via le point de terminaison REST avec AWS CloudTrail. Les demandes seront journalisées en tant qu’action IAM S3 correspondante. Par exemple, une API LoadTable génère un événement de gestion pour l’opération GetTableMetadataLocation et un événement de données pour l’opération GetTableData. Pour plus d’informations, consultez Journalisation avec AWS CloudTrail pour S3 Tables.
Paramètres de chemin et de préfixe
Les API du catalogue Iceberg REST contiennent un préfixe de forme libre dans leurs URL de demande. Par exemple, l’appel d’API ListNamespaces utilise le format d’URL GET/v1/{prefix}/namespaces. Pour S3 Tables, le {prefix} de chemin REST est toujours l’ARN de votre compartiment de table codé en URL.
Par exemple, pour l’ARN du compartiment de table suivant : arn:aws:s3tables: le préfixe serait : us-east-1:111122223333:bucket/bucketnamearn%3Aaws%3As3tables%3A us-east-1%3A111122223333%3Abucket%2Fbucketname
Paramètre de chemin d’accès à l’espace de noms
Les espaces de noms du chemin des API du catalogue Iceberg REST peuvent comporter plusieurs niveaux. Toutefois, S3 Tables ne prend en charge que les espaces de noms à un seul niveau. Pour accéder à un espace de noms dans une hiérarchie de catalogue à plusieurs niveaux, vous pouvez vous connecter à un catalogue à plusieurs niveaux situé au-dessus de l’espace de noms pour référencer l’espace de noms. Cela permet à tout moteur de requête qui prend en charge la notation en trois parties de catalog.namespace.table d’accéder aux objets de la hiérarchie du catalogue S3 Tables sans problèmes de compatibilité par rapport à l’utilisation de l’espace de noms à plusieurs niveaux.
Opérations d’API Iceberg REST prises en charge
La table suivante présente les API REST d’Iceberg prises en charge et indique comment elles correspondent aux actions de S3 Tables.
| Opération REST Iceberg | Chemin REST | Action IAM de S3 Tables | CloudTrail EventName |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Considérations et restrictions
Vous trouverez ci-dessous les considérations et les limites relatives à l’utilisation du point de terminaison Iceberg REST d’Amazon S3 Tables.
Considérations
Comportement de l’API CreateTable : l’option
stage-createn’est pas prise en charge pour cette opération et entraîne une erreur400 Bad Request. Cela signifie que vous ne pouvez pas créer de table à partir des résultats d’une requête à l’aide deCREATE TABLE AS SELECT(CTAS).Comportement de l’API DeleteTable : vous ne pouvez supprimer des tables que lorsque la purge est activée. La suppression de tables avec
purge=falsen’est pas prise en charge et entraîne une erreur400 Bad Request. Certaines versions de Spark attribuent toujours à cet indicateur la valeur false, même lors de l’exécution de commandesDROP TABLE PURGE. Vous pouvez essayer avecDROP TABLE PURGEou utiliser l’opération DeleteTable de S3 Tables pour supprimer une table.-
Le point de terminaison prend uniquement en charge les opérations de métadonnées de table standard. Pour la maintenance des tables, par exemple la gestion des instantanés et le compactage, utilisez les opérations de l’API de maintenance de S3 Tables. Pour plus d’informations, consultez Maintenance de S3 Tables.
Limites
Les espaces de noms multiniveaux ne sont pas pris en charge.
L’authentification basée sur OAuth n’est pas prise en charge.
Seule la propriété
ownerest prise en charge pour les espaces de noms.Les API liées à la vue définies dans la spécification Apache Iceberg REST Open API
ne sont pas prises en charge. L’exécution d’opérations sur une table contenant un fichier
metadata.jsonde plus de 5 Mo n’est pas prise en charge et renverra une erreur400 Bad Request. Pour contrôler la taille de vos fichiersmetadata.json, utilisez les opérations de maintenance des tables. Pour plus d’informations, consultez Maintenance de S3 Tables.