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 du point de terminaison AWS Glue Iceberg REST
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 catalogue REST d' AWS Glue Iceberg via 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 Les supports de point de terminaison Iceberg prennent en https://glue. charge le REST Iceberg suivant : APIsus-east-1.amazonaws.com/iceberg
-
GetConfig
-
ListNamespaces
-
CreateNamespace
-
LoadNamespaceMetadata
-
UpdateNamespaceProperties
-
DeleteNamespace
-
ListTables
-
CreateTable
-
LoadTable
-
TableExists
-
UpdateTable
-
DeleteTable
Paramètres du chemin d’accès au préfixe et au catalogue
Le catalogue REST d'Iceberg APIs comporte un préfixe de forme libre dans sa demande. URLs Par exemple, l'appel ListNamespaces d'API utilise le format GET/v1/{prefix}/namespaces URL. AWS Glue Le préfixe suit toujours la /catalogs/{catalog} structure pour garantir que le chemin REST aligne la hiérarchie des catalogues AWS Glue multiples. 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 |
GET /v1/catalogs/:/namespaces |
|
Accéder au catalogue par défaut dans un compte spécifique |
accountID | accountID | 111122223333 | GET /v1/catalogs/111122223333/namespaces |
|
Accéder à un catalogue imbriqué dans le compte actuel |
catalog1/catalog2 |
catalog1/catalog2 |
rmscatalog1:db1 |
OBTENEZ /v1/ catalogs/rmscatalog1:db1/namespaces |
|
Accéder à un catalogue imbriqué dans un compte spécifique |
accountId:catalog1/catalog2 |
accountId:catalog1/catalog2 |
123456789012/rmscatalog1:db1 |
GET /v1/catalogs/123456789012:rmscatalog1:db1/namespaces |
Le mappage de cet ID de catalogue vers le préfixe n'est requis que lorsque vous appelez directement le REST APIs. Lorsque vous utilisez le catalogue REST d' AWS Glue Iceberg APIs via un moteur, vous devez spécifier l'ID du AWS Glue catalogue dans le warehouse paramètre de l'API de votre catalogue REST Iceberg ou dans le glue.id paramètre de l'API de vos AWS Glue 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 APIs chemin du catalogue REST d'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 d'accéder catalog.namespace.table aux objets de la hiérarchie AWS Glue du catalogue à plusieurs niveaux sans problèmes de compatibilité par rapport à l'utilisation de l'espace de noms à plusieurs niveaux.