Mover dados usando o Azure Data Factory
O Azure Data Factory é um serviço nativo para extrair dados, transformá-los e carregá-los entre coletores e repositórios de forma totalmente sem servidor. De uma perspectiva de integração de dados, isso significa que você pode realizar marshaling de 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.
Instalação
O Azure Cosmos DB para NoSQL está disponível como um serviço vinculado no Azure Data Factory. Esse tipo de serviço vinculado tem suporte tanto como uma fonte de ingestão de dados quanto como um destino (coletor) de saída de dados. Para ambos, a configuração é idêntica. Verifique se você habilitou as permissões RBAC (controle de acesso baseado em função) e identidade gerenciada em sua conta do Cosmos DB. Você pode configurar o serviço usando o portal do Azure ou, como alternativa, 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 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 origem. Essa configuração lê os dados. Para configurar essa opção, precisamos criar uma consulta SQL dos dados que queremos ler. Por exemplo, podemos escrever uma consulta como SELECT id, categoryId, price, quantity, name FROM products WHERE price > 500 para filtrar os itens do contêiner que desejamos ler do Azure Cosmos DB for NoSQL para o Azure Data Factory a ser transformado e então carregado em 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 isso, precisamos definir nosso comportamento de gravação. Por exemplo, talvez sempre queiramos inserir nossos dados ou talvez queiramos fazer upsert de nossos dados e substituir todos os itens que possam ter um identificador exclusivo correspondente (campo id).
Nossa atividade de coletor também tinha um objeto JSON de configuração:
"sink": {
"type": "CosmosDbSqlApiSink",
"writeBehavior": "upsert"
}