Spostare i dati usando Azure Data Factory

Completato

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"
}