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 for Spark pour lire et écrire dans des conteneurs existants dans Azure Cosmos DB à l'aide de l'API NoSQL de AWS Glue 4.0 et des versions ultérieures. 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 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 AWS Secrets Manager secret, puis associer ce secret à une connexion Azure Cosmos DB AWS Glue.
Prérequis :
Dans Azure, vous devrez identifier ou générer une clé de base de données Azure Cosmos à utiliser par AWS Glue,
cosmosKey. Pour plus d'informations, consultez la section Accès sécurisé aux données dans Azure Cosmos DBdans la documentation Azure.
Pour configurer une connexion à Azure Cosmos DB :
Dans AWS Secrets Manager, créez un secret à l'aide de votre clé de base de données Azure Cosmos. Pour créer un secret dans Secrets Manager, suivez le didacticiel disponible dans la section Créer un AWS Secrets Manager secret de la AWS Secrets Manager documentation. Après avoir créé le secret, conservez le nom du secret
secretNamepour l'étape suivante.-
Lorsque vous sélectionnez des Key/value paires, créez une paire pour la clé
spark.cosmos.accountKeyavec la valeurcosmosKey.
-
Dans la console AWS Glue, créez une connexion en suivant les étapes décrites dansAjouter une AWS Glue connexion. 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 AWS secret, indiquez
secretName.
Après avoir créé une connexion AWS Glue Azure Cosmos DB, vous devez suivre les étapes suivantes avant d'exécuter votre tâche AWS Glue :
Autorisez le rôle IAM associé à votre job AWS Glue à lire
secretName.Dans la configuration de votre tâche AWS Glue, indiquez
connectionNamecomme 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 et du conteneur lors de la connexion à l'API Azure Cosmos for NoSQL.
cosmosDBNamecosmosContainerName -
Une connexion AWS Glue Azure Cosmos DB configurée pour fournir des informations d'authentification et de localisation 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 SQL SELECT 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'une base de données existante DynamicFrame 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 et du conteneur lors de la connexion à l'API Azure Cosmos for NoSQL.
cosmosDBNamecosmosContainerName -
Une connexion AWS Glue Azure Cosmos DB configurée pour fournir des informations d'authentification et de localisation 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 Read/Write. Nom d'une connexion AWS Glue Azure Cosmos DB configurée pour fournir des informations d'authentification et de localisation réseau à votre méthode de connexion. -
spark.cosmos.database— Obligatoire. Utilisé pour Read/Write. 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 Read/Write. 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.