Déplacer des données à l’aide d’Azure Data Factory
Azure Data Factory est un service natif permettant d’extraire des données, de les transformer et de les charger sur des récepteurs et dans des magasins de manière totalement serverless. Du point de vue de l’intégration des données, cela signifie que vous pouvez orchestrer les données d’une source de données vers une autre, indépendamment des particularités de chacune, tant que vous pouvez effectuer de façon raisonnable une transformation des données entre chaque paradigme de données.
Configuration
Azure Cosmos DB for NoSQL est disponible en tant que service lié dans Azure Data Factory. Ce type de service lié est pris en charge à la fois en tant que source d’ingestion de données et en tant que cible (récepteur) de la sortie des données. Pour les deux, la configuration est identique. Vérifiez que vous avez activé les autorisations de l’identité managée et du contrôle d’accès en fonction du rôle (RBAC) sur votre compte Cosmos DB. Vous pouvez configurer le service à l’aide du portail Azure ou à l’aide d’un objet JSON.
{
"name": "<example-name-of-linked-service>",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"accountEndpoint": "https://<cosmos-account-name>.documents.azure.com:443/",
"authenticationType": "ManagedIdentity"
}
}
}
Lire depuis Azure Cosmos DB
Dans Azure Data Factory, lors de la lecture de données à partir d’Azure Cosmos DB for NoSQL, nous devons configurer notre service lié en tant que source. Ce paramètre lit les données. Pour configurer cette option, nous devons créer une requête SQL des données que nous souhaitons lire. Par exemple, nous pouvons écrire une requête comme SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500 pour filtrer les éléments du conteneur que nous souhaitons lire à partir d’Azure Cosmos DB for NoSQL et les passer à Azure Data Factory pour les transformer et les charger dans notre magasin de données de destination.
Dans Azure Data Factory, notre activité source possède un objet JSON de configuration que nous pouvons utiliser pour définir des propriétés telles que la requête :
{
"source": {
"type": "CosmosDbSqlApiSource",
"query": "SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500",
"preferredRegions": [
"East US",
"West US"
]
}
}
Écrire dans Azure Cosmos DB
Dans Azure Data Factory, lors du stockage de données dans Azure Cosmos DB for NoSQL, nous devons configurer notre service lié en tant que récepteur. Ce paramètre charge nos données. Pour configurer cette option, nous devons définir notre comportement d’écriture. Par exemple, nous voudrons peut-être insérer nos données ou effectuer un upsert de nos données et remplacer tous les éléments qui pourraient avoir un identificateur unique correspondant (champ id).
L’activité de notre récepteur avait également un objet JSON de configuration :
"sink": {
"type": "CosmosDbSqlApiSink",
"writeBehavior": "upsert"
}