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.
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 de Iceberg REST APIs normes spécifiées dans la spécification de l'API Apache Iceberg REST Catalog Open
Note
Le point de Iceberg REST terminaison 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 read/write accès de base à un seul compartiment de table. Pour les autres scénarios d'accès, nous recommandons d'utiliser le AWS Glue Iceberg REST point de terminaison 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 de plus amples 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 le placeholder values par les informations relatives à votre région et à votre compartiment de tables.
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 du service S3 Tables sont authentifiées à l'aide de AWS Signature Version 4 (SigV4). Consultez AWS la version 4 de Signature pour les demandes d'API afin d'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 de plus amples informations, veuillez consulter 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 de plus amples informations, veuillez consulter Journalisation avec AWS CloudTrail pour S3 Tables.
Paramètres de chemin et de préfixe
Iceberg REST APIs les catalogues ont un préfixe de forme libre dans leur demande. URLs 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
Le tableau suivant présente les REST Iceberg pris en charge APIs et indique comment ils correspondent aux actions 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
CreateTable Comportement de l'API — L'
stage-createoption n'est pas prise en charge pour cette opération et entraîne une400 Bad Requesterreur. 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).DeleteTable Comportement de l'API : 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 essayerDROP TABLE PURGEou utiliser l'DeleteTableopération 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 de plus amples informations, veuillez consulter Maintenance de S3 Tables.
Limites
Les espaces de noms multiniveaux ne sont pas pris en charge.
OAuthl'authentification basée n'est pas prise en charge.
Seule la propriété
ownerest prise en charge pour les espaces de noms.Les paramètres liés à la vue APIs définis dans la spécification Apache Iceberg REST Open API
ne sont pas pris en charge. L'exécution d'opérations sur une table contenant un
metadata.jsonfichier de plus de 50 Mo n'est pas prise en charge et renverra une400 Bad Requesterreur. Pour contrôler la taille de vos fichiersmetadata.json, utilisez les opérations de maintenance des tables. Pour de plus amples informations, veuillez consulter Maintenance de S3 Tables.