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.
Connexion au catalogue de données à l'aide de AWS Glue Point de terminaison REST Iceberg
Le point de terminaison REST Iceberg d’ AWS Glue prend en charge les opérations API spécifiées dans la spécification REST Apache Iceberg. À l’aide d’un client REST Iceberg, vous pouvez connecter votre application exécutée sur un moteur analytique au catalogue REST hébergé dans le catalogue de données.
Le point de terminaison prend en charge les deux spécifications des tables Apache Iceberg : v1 et v2, la valeur par défaut étant v2. Lorsque vous utilisez la spécification de la table Iceberg v1, vous devez spécifier v1 dans l’appel d’API. À l’aide de l’opération d’API, vous pouvez accéder aux tables Iceberg stockées à la fois dans le stockage d’objets Amazon S3 et dans le stockage de tableaux Amazon S3.
Configuration du point de terminaison
Vous pouvez accéder au AWS Glue Catalogue Iceberg REST utilisant le point de terminaison du service. Reportez-vous au guide de référence des points de terminaison de service AWS Glue pour le point de terminaison spécifique à la région. Par exemple, lorsque vous vous connectez à AWS Glue dans la région us-east-1, vous devez configurer la propriété d’URI du point de terminaison comme suit :
Endpoint : https://glue.us-east-1.amazonaws.com/icebergPropriétés de configuration supplémentaires : lorsque vous utilisez le client Iceberg pour connecter un moteur d’analytique tel que Spark au point de terminaison du service, vous devez indiquer les propriétés de configuration d’application suivantes :
catalog_name ="mydatacatalog"aws_account_id ="123456789012"aws_region = "us-east-1" spark = SparkSession.builder \ ... \ .config("spark.sql.defaultCatalog", catalog_name) \ .config(f"spark.sql.catalog.{catalog_name}", "org.apache.iceberg.spark.SparkCatalog") \ .config(f"spark.sql.catalog.{catalog_name}.type", "rest") \ .config(f"spark.sql.catalog.{catalog_name}.uri", "https://glue.{aws_region}.amazonaws.com/iceberg") \ .config(f"spark.sql.catalog.{catalog_name}.warehouse", "{aws_account_id}") \ .config(f"spark.sql.catalog.{catalog_name}.rest.sigv4-enabled", "true") \ .config(f"spark.sql.catalog.{catalog_name}.rest.signing-name", "glue") \ .config("spark.sql.extensions","org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \ .getOrCreate()
AWS Glue Point final de l'iceberg https://glue. prend en charge les API REST Iceberg suivantes :us-east-1.amazonaws.com/iceberg
-
GetConfig
-
ListNamespaces
-
CreateNamespace
-
LoadNamespaceMetadata
-
UpdateNamespaceProperties
-
DeleteNamespace
-
ListTables
-
CreateTable
-
LoadTable
-
TableExists
-
UpdateTable
-
DeleteTable
Authentification
Le AWS Glue Le point de terminaison REST Iceberg prend en charge deux méthodes d'authentification. Choisissez la méthode qui correspond à la manière dont votre moteur d'analyse ou votre intégration se connecte au catalogue.
-
AWS Signature, version 4 (SigV4) — La valeur par défaut pour AWS SDK et AWS moteurs d'analyse natifs qui s'authentifient avec AWS informations d'identification.
-
Jeton porteur OAuth 2.0 — Pour les partenaires d'intégration externes et les moteurs de requêtes tiers qui utilisent le modèle d'authentification OAuth défini par la spécification Apache Iceberg REST Catalog. Le client présente un jeton d'accès OAuth dans le
Authorization: Beareren-tête sur chaque demande.
Authentification avec des jetons au porteur OAuth 2.0
Les clients externes obtiennent un jeton d'accès OAuth de courte durée auprès de AWS Sign-In et présentez-le au AWS Glue Point de terminaison REST Iceberg. AWS Glue valide le jeton et applique AWS Lake Formation autorisations pour chaque demande. Pour le LoadTable opération, les informations d'identification Amazon S3 qui AWS Glue les ventes sont limitées par le rôle assumé de l'IAM et les subventions de Lake Formation pour ce rôle.
Cette intégration utilise la subvention d'échange de jetons OAuth 2.0 (RFC 8693
Pour les détails complets de la configuration et de l'échange de jetons, voir Configurer l'accès OAuth à AWS Glue Catalogue Iceberg REST dans le AWS Sign-In Guide de l'utilisateur.
Paramètres du chemin d’accès au préfixe et au catalogue
Les API du catalogue REST Iceberg contiennent un préfixe de forme libre dans leurs URL de demande. Par exemple, le ListNamespaces L'appel d'API utilise le GET/v1/{prefix}/namespaces Format d'URL. AWS Glue le préfixe suit toujours le /catalogs/{catalog} structure pour garantir que le chemin REST aligne le AWS Glue hiérarchie multi-catalogues. Le paramètre de chemin {catalog} peut être dérivé en fonction des règles suivantes :
| Modèle d’accès |
Style d’ID du catalogue Glue |
Style de préfixe |
Exemple d’ID de catalogue par défaut |
Exemple de route REST |
|---|---|---|---|---|
|
Accéder au catalogue par défaut dans le compte actuel |
facultatif | : |
ne s’applique pas |
OBTENIR/v1/catalogs/: /namespaces |
|
Accéder au catalogue par défaut dans un compte spécifique |
accountID | accountID | 111122223333 | OBTENIR/v1/catalogs/111122223333/namespaces |
|
Accéder à un catalogue imbriqué dans le compte actuel |
catalog1/catalog2 |
catalog1/catalog2 |
rmscatalog1:db1 |
OBTENIR/v1/catalogs/rmscalog1 :db1/namespaces |
|
Accéder à un catalogue imbriqué dans un compte spécifique |
compteId:catalog1/catalog2 |
compteId:catalog1/catalog2 |
123456789012/rmscatalog1:db1 |
OBTENIR/v1/catalogs/123456789012 : catalogue rms 1 :db1/namespaces |
Le mappage de cet ID de catalogue vers le préfixe n’est requis que lorsque vous appelez directement les API REST. Lorsque vous travaillez avec AWS Glue API du catalogue Iceberg REST via un moteur, vous devez spécifier AWS Glue ID de catalogue dans le warehouse paramètre pour le réglage de l'API de votre catalogue Iceberg REST ou dans le glue.id paramètre pour votre AWS Glue réglage de l'API des extensions. Par exemple, découvrez comment vous pouvez l’utiliser avec EMR Spark dans Use an Iceberg cluster with Spark.
Paramètre de chemin d’accès à l’espace de noms
Les espaces de noms du chemin d’accès aux API du catalogue REST Iceberg peuvent comporter plusieurs niveaux. Toutefois, AWS Glue
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 prenant en charge la notation en 3 parties de catalog.namespace.table pour accéder à des objets dans AWS Glue de la hiérarchie du catalogue à plusieurs niveaux sans problèmes de compatibilité par rapport à l'utilisation de l'espace de noms à plusieurs niveaux.