Connexions Azure Cosmos DB - 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.

Connexions Azure Cosmos DB

Vous pouvez utiliser AWS Glue pour Spark pour lire et écrire dans des conteneurs existants dans Azure Cosmos DB à l'aide de l'API NoSQL dans la version 4.0 et ultérieure d'AWS Glue. Vous pouvez définir ce qu'il faut lire dans Azure Cosmos DB à l'aide d'une requête SQL. Vous vous connectez à Azure Cosmos DB à l'aide d'une clé Azure Cosmos DB stockée dans AWS Secrets Manager via une connexion AWS Glue.

Pour plus d'informations sur Azure Cosmos DB pour NoSQL, consultez la documentation Azure.

Configuration des connexions Azure Cosmos DB

Pour vous connecter à Azure Cosmos DB depuis AWS Glue, vous devez créer et stocker votre clé Azure Cosmos DB dans un secret AWS Secrets Manager, puis associer ce secret à une connexion AWS Glue Azure Cosmos DB.

Prérequis :

Pour configurer une connexion à Azure Cosmos DB :
  1. Dans AWS Secrets Manager, créez un secret à l'aide de votre clé Azure Cosmos DB. Pour créer un secret dans Secrets Manager, suivez le didacticiel disponible dans la section Créer un secret AWS Secrets Manager dans la documentation AWS Secrets Manager. Après avoir créé le secret, conservez le nom du secret, secretName, pour l'étape suivante.

    • Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé spark.cosmos.accountKey avec la valeur cosmosKey.

  2. Dans la console AWS Glue, créez une connexion en suivant les étapes décrites dans Ajout d'une connexion AWS Glue. Après avoir créé la connexion, conservez le nom de la connexion, connectionName, pour une utilisation ultérieure dans AWS Glue.

    • Lorsque vous sélectionnez un type de connexion, sélectionnez Azure Cosmos DB.

    • Lorsque vous sélectionnez un Secret AWS, fournissez secretName.

Après avoir créé une connexion AWS Glue Azure Cosmos DB, vous devez effectuer les étapes suivantes avant d'exécuter votre tâche AWS Glue :

  • Accordez au rôle IAM associé à votre tâche AWS Glue l'autorisation de lire secretName.

  • Dans la configuration de votre tâche AWS Glue, indiquez connectionName en tant que connexion réseau supplémentaire.

Lire à partir de la Azure Cosmos DB pour les conteneurs NoSQL

Prérequis :

  • Un conteneur Azure Cosmos DB pour NoSQL à partir duquel vous souhaitez lire. Vous aurez besoin des informations d'identification du conteneur.

    Un conteneur Azure Cosmos pour NoSQL est identifié par sa base de données et son conteneur. Vous devez fournir les noms de la base de données, cosmosDBName, et du conteneur, cosmosContainerName, lorsque vous vous connectez à l'API Azure Cosmos pour NoSQL.

  • Une connexion AWS Glue Azure Cosmos DB configurée pour fournir des informations d'authentification et d’emplacement réseau. Pour cela, suivez les étapes de la procédure précédente, Pour configurer une connexion à Azure Cosmos DB. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

Par exemple :

azurecosmos_read = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName": connectionName, "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName, } )

Vous pouvez également fournir une requête SELECT SQL pour filtrer les résultats renvoyés à votre DynamicFrame. Vous devrez configurer query.

Par exemple :

azurecosmos_read_query = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName": "connectionName", "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName, "spark.cosmos.read.customQuery": "query" } )

Écrire dans Azure Cosmos DB pour les conteneurs NoSQL

Cet exemple écrit des informations à partir d'un DynamicFrame existant, DynamicFrame, dans Azure Cosmos DB. Si le conteneur contient déjà des informations, AWS Glue ajoutera les données de votre DynamicFrame. Si les informations contenues dans le conteneur ont un schéma différent de celui des informations que vous écrivez, vous rencontrerez des erreurs.

Prérequis :

  • Une table Azure Cosmos DB dans laquelle vous souhaitez écrire. Vous aurez besoin des informations d'identification du conteneur. Vous devez créer le conteneur avant d'appeler la méthode de connexion.

    Un conteneur Azure Cosmos pour NoSQL est identifié par sa base de données et son conteneur. Vous devez fournir les noms de la base de données, cosmosDBName, et du conteneur, cosmosContainerName, lorsque vous vous connectez à l'API Azure Cosmos pour NoSQL.

  • Une connexion AWS Glue Azure Cosmos DB configurée pour fournir des informations d'authentification et d’emplacement réseau. Pour cela, suivez les étapes de la procédure précédente, Pour configurer une connexion à Azure Cosmos DB. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

Par exemple :

azurecosmos_write = glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="azurecosmos", connection_options={ "connectionName": connectionName, "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName )

Référence des options de connexion Azure Cosmos DB

  • connectionName — Obligatoire. Utilisé pour la lecture/l'écriture. Nom d’une connexion AWS Glue Azure Cosmos DB configurée pour fournir des informations d'authentification et d’emplacement réseau à votre méthode de connexion.

  • spark.cosmos.database — Obligatoire. Utilisé pour la lecture/l'écriture. Valeurs valides : noms des bases de données. Nom de la base de données Azure Cosmos DB pour NoSQL.

  • spark.cosmos.container — Obligatoire. Utilisé pour la lecture/l'écriture. Valeurs valides : noms des conteneurs. Nom du conteneur Azure Cosmos DB pour NoSQL.

  • spark.cosmos.read.customQuery : utilisé pour la lecture. Valeurs valides : requêtes SELECT SQL. Requête personnalisée pour sélectionner les documents à lire.