Mover dados usando o Azure Data Factory

Concluído

O Azure Data Factory é um serviço nativo para extrair dados, transformá-los e carregá-los em coletores e armazenamentos de forma totalmente sem servidor. De uma perspetiva de integração de dados, isso significa que você pode organizar dados de um armazenamento de dados para outro, independentemente das nuances de cada um, desde que possa transformar razoavelmente os dados entre cada paradigma de dados.

Configurar

O Azure Cosmos DB para NoSQL está disponível como um serviço vinculado no Azure Data Factory. Esse tipo de serviço vinculado é suportado como fonte de ingestão de dados e como destino (coletor) de saída de dados. Para ambos, a configuração é idêntica. Certifique-se de que ativou a identidade gerida e as permissões de controlo de acesso baseado em funções (RBAC) na sua conta do Cosmos DB. Você pode configurar o serviço usando o portal do Azure ou, alternativamente, usando um objeto JSON.

{
    "name": "<example-name-of-linked-service>",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "https://<cosmos-account-name>.documents.azure.com:443/",
            "authenticationType": "ManagedIdentity"
        }
    }
}

Ler a partir do Azure Cosmos DB

No Azure Data Factory, ao ler dados do Azure Cosmos DB para NoSQL, devemos configurar nosso serviço vinculado como uma fonte. Essa configuração lê os dados. Para configurar essa opção, devemos criar uma consulta SQL dos dados que queremos ler. Por exemplo, escrevemos uma consulta como SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500 para filtrar os itens do contentor que queremos ler do Azure Cosmos DB para NoSQL no Azure Data Factory, onde serão transformados e, eventualmente, carregados no nosso armazenamento de dados de destino.

No Azure Data Factory, nossa atividade de origem tem um objeto JSON de configuração que podemos usar para definir propriedades como a consulta:

{
    "source": {
        "type": "CosmosDbSqlApiSource",
        "query": "SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500",
        "preferredRegions": [
            "East US",
            "West US"
        ]        
    }
}

Gravar no Azure Cosmos DB

No Azure Data Factory, ao armazenar dados no Azure Cosmos DB para NoSQL, devemos configurar nosso serviço vinculado como um coletor. Essa configuração carrega nossos dados. Para configurar essa opção, devemos definir nosso comportamento de gravação. Por exemplo, podemos querer inserir nossos dados ou atualizar nossos dados e substituir quaisquer itens que possam ter um identificador exclusivo correspondente (campo id ).

Nossa atividade de sink também tinha um objeto JSON de configuração.

"sink": {
    "type": "CosmosDbSqlApiSink",
    "writeBehavior": "upsert"
}