Spostare i dati usando Azure Data Factory
Azure Data Factory è un servizio nativo per estrarre dati, trasformarli e caricarli tra sink e archivi in modalità completamente serverless. Dal punto di vista dell'integrazione dei dati, ciò significa che è possibile effettuare il marshalling dei dati da un archivio a un altro, indipendentemente dalle sfumature di ognuno di essi, purché sia possibile trasformare ragionevolmente i dati tra i diversi paradigmi di dati.
Configurazione
Azure Cosmos DB per NoSQL è disponibile come servizio collegato all'interno di Azure Data Factory. Questo tipo di servizio collegato è supportato sia come origine dell'inserimento di dati che come destinazione (sink) dell'output di dati. La configurazione è identica per entrambi i casi. Assicurarsi di aver abilitato le autorizzazioni di identità gestita e di controllo degli accessi in base al ruolo per l'account Cosmos DB. È possibile configurare il servizio usando il portale di Azure oppure usando un oggetto JSON.
{
"name": "<example-name-of-linked-service>",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"accountEndpoint": "https://<cosmos-account-name>.documents.azure.com:443/",
"authenticationType": "ManagedIdentity"
}
}
}
Leggere da Azure Cosmos DB
In Azure Data Factory, quando si leggono i dati da Azure Cosmos DB per NoSQL, è necessario configurare il servizio collegato come sorgente. Con questa impostazione i dati verranno letti. Per configurare questa opzione, è necessario creare una query SQL dei dati da leggere. Ad esempio, è possibile scrivere una query come SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500 per filtrare dal contenitore gli elementi che si desidera vengano letti da Azure Cosmos DB for NoSQL ad Azure Data Factory, per trasformarli e quindi caricarli nell'archivio dati di destinazione.
In Azure Data Factory l'attività di origine ha un oggetto di configurazione JSON che è possibile usare per impostare proprietà come la query:
{
"source": {
"type": "CosmosDbSqlApiSource",
"query": "SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500",
"preferredRegions": [
"East US",
"West US"
]
}
}
Scrivere in Azure Cosmos DB
In Azure Data Factory, quando si archiviano i dati in Azure Cosmos DB per NoSQL, è necessario configurare il servizio collegato come sink. Con questa impostazione i dati verranno caricati. Per configurare questa opzione, è necessario impostare il comportamento di scrittura. Ad esempio, si potrebbero voler inserire i dati oppure si potrebbe voler eseguire l'upsert dei dati e sovrascrivere tutti gli elementi che potrebbero avere un identificatore univoco corrispondente (campo ID).
L'attività sink aveva anche un oggetto JSON di configurazione:
"sink": {
"type": "CosmosDbSqlApiSink",
"writeBehavior": "upsert"
}