Copiar e transformar dados no Azure Cosmos DB para NoSQL usando o Azure Data Factory
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve como usar a Atividade de Cópia no Azure Data Factory para copiar dados de e para o Azure Cosmos DB para NoSQL e usar o Fluxo de Dados para transformar dados no Azure Cosmos DB para NoSQL. Para saber mais, leia os artigos introdutórios do Azure Data Factory e do Azure Synapse Analytics.
Nota
Este conector suporta apenas o Azure Cosmos DB para NoSQL. Para Azure Cosmos DB para MongoDB, consulte conector para Azure Cosmos DB para MongoDB. Outros tipos de API não são suportados agora.
Capacidades suportadas
Este conector do Azure Cosmos DB para NoSQL tem suporte para os seguintes recursos:
Capacidades suportadas | IR | Ponto final privado gerido |
---|---|---|
Atividade de cópia (origem/coletor) | (1) (2) | ✓ |
Mapeando o fluxo de dados (origem/coletor) | (1) | ✓ |
Atividade de Pesquisa | (1) (2) | ✓ |
(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado
Para atividade de cópia, este conector do Azure Cosmos DB para NoSQL suporta:
- Copie dados de e para o Azure Cosmos DB para NoSQL usando chave, entidade de serviço ou identidades gerenciadas para autenticações de recursos do Azure.
- Escreva no Azure Cosmos DB como inserir ou atualizar.
- Importe e exporte documentos JSON no estado em que se encontram ou copie dados de ou para um conjunto de dados tabular. Os exemplos incluem um banco de dados SQL e um arquivo CSV. Para copiar documentos como estão para ou de arquivos JSON ou de ou para outra coleção do Azure Cosmos DB, consulte Importar e exportar documentos JSON.
Os pipelines do Data Factory e do Synapse integram-se à biblioteca de executores em massa do Azure Cosmos DB para fornecer o melhor desempenho quando você escreve no Azure Cosmos DB.
Gorjeta
O vídeo Migração de Dados orienta você pelas etapas de cópia de dados do armazenamento de Blob do Azure para o Azure Cosmos DB. O vídeo também descreve considerações de ajuste de desempenho para a ingestão de dados no Azure Cosmos DB em geral.
Começar agora
Para executar a atividade Copiar com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- A ferramenta Copiar dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- Azure PowerShell
- A API REST
- O modelo do Azure Resource Manager
Criar um serviço vinculado ao Azure Cosmos DB usando a interface do usuário
Use as etapas a seguir para criar um serviço vinculado ao Azure Cosmos DB na interface do usuário do portal do Azure.
Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:
Procure o Azure Cosmos DB para NoSQL e selecione o conector do Azure Cosmos DB para NoSQL.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades que você pode usar para definir entidades específicas do Azure Cosmos DB para NoSQL.
Propriedades do serviço vinculado
O conector do Azure Cosmos DB para NoSQL dá suporte aos seguintes tipos de autenticação. Consulte as seções correspondentes para obter detalhes:
- Autenticação da chave
- Autenticação do principal de serviço
- Autenticação de identidade gerenciada atribuída pelo sistema
- Autenticação de identidade gerenciada atribuída pelo usuário
Autenticação da chave
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como CosmosDb. | Sim |
connectionString | Especifique as informações necessárias para se conectar ao banco de dados do Azure Cosmos DB. Nota: Você deve especificar as informações do banco de dados na cadeia de conexão, conforme mostrado nos exemplos a seguir. Você também pode colocar a chave da conta no Cofre de Chaves do Azure e extrair a accountKey configuração da cadeia de conexão. Consulte os seguintes exemplos e o artigo Armazenar credenciais no Cofre de Chaves do Azure com mais detalhes. |
Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o Tempo de Execução de Integração do Azure ou um tempo de execução de integração auto-hospedado (se seu armazenamento de dados estiver localizado em uma rede privada). Se essa propriedade não for especificada, o Tempo de Execução de Integração do Azure padrão será usado. | Não |
Exemplo
{
"name": "CosmosDbSQLAPILinkedService",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"connectionString": "AccountEndpoint=<EndpointUrl>;AccountKey=<AccessKey>;Database=<Database>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo: armazenar a chave da conta no Cofre da Chave do Azure
{
"name": "CosmosDbSQLAPILinkedService",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"connectionString": "AccountEndpoint=<EndpointUrl>;Database=<Database>",
"accountKey": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticação do principal de serviço
Nota
Atualmente, a autenticação da entidade de serviço não é suportada no fluxo de dados.
Para usar a autenticação da entidade de serviço, siga estas etapas.
Registre um aplicativo com a plataforma de identidade da Microsoft. Para saber como, consulte Guia de início rápido: registrar um aplicativo com a plataforma de identidade da Microsoft. Anote estes valores, que você usa para definir o serviço vinculado:
- ID da aplicação
- Chave de aplicação
- ID de Inquilino do
Conceda à entidade de serviço a permissão adequada. Veja exemplos de como a permissão funciona no Azure Cosmos DB em listas de controle de acesso em arquivos e diretórios. Mais especificamente, crie uma definição de função e atribua a função à entidade de serviço por meio da ID do objeto da entidade de serviço.
Estas propriedades são suportadas para o serviço vinculado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como CosmosDb. | Sim |
accountEndpoint | Especifique a URL do ponto de extremidade da conta para a instância do Azure Cosmos DB. | Sim |
base de dados | Especifique o nome do banco de dados. | Sim |
servicePrincipalId | Especifique o ID do cliente do aplicativo. | Sim |
servicePrincipalCredentialType | O tipo de credencial a ser usado para autenticação da entidade de serviço. Os valores permitidos são ServicePrincipalKey e ServicePrincipalCert. | Sim |
servicePrincipalCredential | A credencial da entidade de serviço. Ao usar ServicePrincipalKey como o tipo de credencial, especifique a chave do aplicativo. Marque este campo como SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. Ao usar ServicePrincipalCert como credencial, faça referência a um certificado no Cofre da Chave do Azure e verifique se o tipo de conteúdo do certificado é PKCS #12. |
Sim |
tenant | Especifique as informações do locatário (nome de domínio ou ID do locatário) sob as quais seu aplicativo reside. Recupere-o passando o mouse no canto superior direito do portal do Azure. | Sim |
azureCloudType | Para autenticação da entidade de serviço, especifique o tipo de ambiente de nuvem do Azure no qual seu aplicativo Microsoft Entra está registrado. Os valores permitidos são AzurePublic, AzureChina, AzureUsGovernment e AzureGermany. Por padrão, o ambiente de nuvem do serviço é usado. |
Não |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se não for especificado, o tempo de execução de integração padrão do Azure será usado. | Não |
Exemplo: usando a autenticação de chave da entidade de serviço
Você também pode armazenar a chave principal do serviço no Cofre de Chaves do Azure.
{
"name": "CosmosDbSQLAPILinkedService",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"accountEndpoint": "<account endpoint>",
"database": "<database name>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalCredential": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo: usando a autenticação de certificado da entidade de serviço
{
"name": "CosmosDbSQLAPILinkedService",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"accountEndpoint": "<account endpoint>",
"database": "<database name>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalCredential": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<AKV reference>",
"type": "LinkedServiceReference"
},
"secretName": "<certificate name in AKV>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticação de identidade gerenciada atribuída pelo sistema
Nota
Atualmente, a autenticação de identidade gerenciada atribuída pelo sistema é suportada em fluxos de dados por meio do uso de propriedades avançadas no formato JSON.
Uma fábrica de dados ou pipeline Synapse pode ser associado a uma identidade gerenciada atribuída pelo sistema para recursos do Azure, que representa essa instância de serviço específica. Você pode usar diretamente essa identidade gerenciada para autenticação do Azure Cosmos DB, semelhante ao uso de sua própria entidade de serviço. Ele permite que esse recurso designado acesse e copie dados de ou para sua instância do Azure Cosmos DB.
Para usar identidades gerenciadas atribuídas pelo sistema para autenticação de recursos do Azure, siga estas etapas.
Recupere as informações de identidade gerenciada atribuídas pelo sistema copiando o valor do ID do objeto de identidade gerenciado gerado junto com seu serviço.
Conceda à identidade gerenciada atribuída pelo sistema a permissão adequada. Veja exemplos de como a permissão funciona no Azure Cosmos DB em listas de controle de acesso em arquivos e diretórios. Mais especificamente, crie uma definição de função e atribua a função à identidade gerenciada atribuída ao sistema.
Estas propriedades são suportadas para o serviço vinculado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como CosmosDb. | Sim |
accountEndpoint | Especifique a URL do ponto de extremidade da conta para a instância do Azure Cosmos DB. | Sim |
base de dados | Especifique o nome do banco de dados. | Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se não for especificado, o tempo de execução de integração padrão do Azure será usado. | Não |
subscriptionId | Especifique a ID da assinatura para a instância do Azure Cosmos DB | Não para atividade de cópia, Sim para mapeamento de fluxo de dados |
tenantId | Especifique a ID do locatário para a instância do Azure Cosmos DB | Não para atividade de cópia, Sim para mapeamento de fluxo de dados |
resourceGroup | Especifique o nome do grupo de recursos para a instância do Azure Cosmos DB | Não para atividade de cópia, Sim para mapeamento de fluxo de dados |
Exemplo:
{
"name": "CosmosDbSQLAPILinkedService",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"accountEndpoint": "<account endpoint>",
"database": "<database name>",
"subscriptionId": "<subscription id>",
"tenantId": "<tenant id>",
"resourceGroup": "<resource group>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticação de identidade gerenciada atribuída pelo usuário
Nota
Atualmente, a autenticação de identidade gerenciada atribuída pelo usuário é suportada em fluxos de dados por meio do uso de propriedades avançadas no formato JSON.
Uma fábrica de dados ou um pipeline Synapse pode ser associado a uma identidade gerenciada atribuída pelo usuário, que representa essa instância de serviço específica. Você pode usar diretamente essa identidade gerenciada para autenticação do Azure Cosmos DB, semelhante ao uso de sua própria entidade de serviço. Ele permite que esse recurso designado acesse e copie dados de ou para sua instância do Azure Cosmos DB.
Para usar identidades gerenciadas atribuídas pelo usuário para autenticação de recursos do Azure, siga estas etapas.
Crie uma ou várias identidades gerenciadas atribuídas pelo usuário e conceda à identidade gerenciada atribuída pelo usuário a permissão adequada. Veja exemplos de como a permissão funciona no Azure Cosmos DB em listas de controle de acesso em arquivos e diretórios. Mais especificamente, crie uma definição de função e atribua a função à identidade gerenciada atribuída pelo usuário.
Atribua uma ou várias identidades gerenciadas atribuídas pelo usuário ao seu data factory e crie credenciais para cada identidade gerenciada atribuída pelo usuário.
Estas propriedades são suportadas para o serviço vinculado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como CosmosDb. | Sim |
accountEndpoint | Especifique a URL do ponto de extremidade da conta para a instância do Azure Cosmos DB. | Sim |
base de dados | Especifique o nome do banco de dados. | Sim |
credenciais | Especifique a identidade gerenciada atribuída pelo usuário como o objeto de credencial. | Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se não for especificado, o tempo de execução de integração padrão do Azure será usado. | Não |
subscriptionId | Especifique a ID da assinatura para a instância do Azure Cosmos DB | Não para atividade de cópia, Sim para mapeamento de fluxo de dados |
tenantId | Especifique a ID do locatário para a instância do Azure Cosmos DB | Não para atividade de cópia, Sim para mapeamento de fluxo de dados |
resourceGroup | Especifique o nome do grupo de recursos para a instância do Azure Cosmos DB | Não para atividade de cópia, Sim para mapeamento de fluxo de dados |
Exemplo:
{
"name": "CosmosDbSQLAPILinkedService",
"properties": {
"type": "CosmosDb",
"typeProperties": {
"accountEndpoint": "<account endpoint>",
"database": "<database name>",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
},
"subscriptionId": "<subscription id>",
"tenantId": "<tenant id>",
"resourceGroup": "<resource group>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte Conjuntos de dados e serviços vinculados.
As seguintes propriedades têm suporte para o conjunto de dados do Azure Cosmos DB for NoSQL:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do conjunto de dados deve ser definida como CosmosDbSqlApiCollection. | Sim |
collectionName | O nome da coleção de documentos do Azure Cosmos DB. | Sim |
Se você usar o conjunto de dados do tipo "DocumentDbCollection", ele ainda será suportado como está para compatibilidade com versões anteriores para a atividade de cópia e pesquisa, não é suportado para o fluxo de dados. Sugere-se que você use o novo modelo no futuro.
Exemplo
{
"name": "CosmosDbSQLAPIDataset",
"properties": {
"type": "CosmosDbSqlApiCollection",
"linkedServiceName":{
"referenceName": "<Azure Cosmos DB linked service name>",
"type": "LinkedServiceReference"
},
"schema": [],
"typeProperties": {
"collectionName": "<collection name>"
}
}
}
Copiar propriedades da atividade
Esta seção fornece uma lista de propriedades que o Azure Cosmos DB para NoSQL oferece suporte de origem e coletor. Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte Pipelines.
Azure Cosmos DB para NoSQL como origem
Para copiar dados do Azure Cosmos DB para NoSQL, defina o tipo de origem em Copy Activity como DocumentDbCollectionSource.
As seguintes propriedades são suportadas na seção Copiar fonte de atividade:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type da fonte de atividade de cópia deve ser definida como CosmosDbSqlApiSource. | Sim |
query | Especifique a consulta do Azure Cosmos DB para ler dados. Exemplo: SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\" |
Não Se não for especificado, esta instrução SQL será executada: select <columns defined in structure> from mycollection |
preferredRegions | A lista preferencial de regiões às quais se conectar ao recuperar dados do Azure Cosmos DB. | Não |
pageSize | O número de documentos por página do resultado da consulta. O padrão é "-1", o que significa que usa o tamanho de página dinâmico do lado do serviço de até 1000. | Não |
detectDatetime | Se deve detetar datetime a partir dos valores de cadeia de caracteres nos documentos. Os valores permitidos são: true (padrão), false. | Não |
Se você usar o tipo de origem "DocumentDbCollectionSource", ele ainda será suportado como está para compatibilidade com versões anteriores. Sugere-se que você use o novo modelo no futuro, que fornece recursos mais avançados para copiar dados do Azure Cosmos DB.
Exemplo
"activities":[
{
"name": "CopyFromCosmosDBSQLAPI",
"type": "Copy",
"inputs": [
{
"referenceName": "<Cosmos DB for NoSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "CosmosDbSqlApiSource",
"query": "SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\"",
"preferredRegions": [
"East US"
]
},
"sink": {
"type": "<sink type>"
}
}
}
]
Ao copiar dados do Azure Cosmos DB, a menos que você queira exportar documentos JSON no estado em que se encontram, a prática recomendada é especificar o mapeamento na atividade de cópia. O serviço respeita o mapeamento especificado na atividade - se uma linha não contiver um valor para uma coluna, um valor nulo será fornecido para o valor da coluna. Se você não especificar um mapeamento, o serviço inferirá o esquema usando a primeira linha nos dados. Se a primeira linha não contiver o esquema completo, algumas colunas estarão faltando no resultado da operação de atividade.
Azure Cosmos DB para NoSQL como coletor
Para copiar dados para o Azure Cosmos DB para NoSQL, defina o tipo de coletor em Copiar atividade como DocumentDbCollectionSink.
As seguintes propriedades são suportadas na seção Copiar coletor de atividade:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do coletor Copy Activity deve ser definida como CosmosDbSqlApiSink. | Sim |
writeBehavior | Descreve como gravar dados no Azure Cosmos DB. Valores permitidos: inserir e upsert. O comportamento do upsert é substituir o documento se já existir um documento com o mesmo ID, caso contrário, insira o documento. Nota: O serviço gera automaticamente um ID para um documento se um ID não for especificado no documento original ou por mapeamento de coluna. Isso significa que você deve garantir que, para que o upsert funcione conforme o esperado, seu documento tenha um ID. |
Não (o padrão é inserir) |
writeBatchSize | O serviço usa a biblioteca de executores em massa do Azure Cosmos DB para gravar dados no Azure Cosmos DB. A propriedade writeBatchSize controla o tamanho dos documentos que o serviço fornece à biblioteca. Você pode tentar aumentar o valor de writeBatchSize para melhorar o desempenho e diminuir o valor se o tamanho do documento for grande - veja as dicas abaixo. | Não (o padrão é 10.000) |
disableMetricsCollection | O serviço coleta métricas como RUs do Azure Cosmos DB para otimização de desempenho de cópia e recomendações. Se você estiver preocupado com esse comportamento, especifique true para desativá-lo. |
Não (o padrão é false ) |
maxConcurrentConnections | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
Gorjeta
Para importar documentos JSON no estado em que se encontram, consulte a seção Importar ou exportar documentos JSON; para copiar de dados em forma de tabela, consulte Migrar do banco de dados relacional para o Azure Cosmos DB.
Gorjeta
O Azure Cosmos DB limita o tamanho de uma única solicitação a 2 MB. A fórmula é Tamanho da Solicitação = Tamanho do Documento Único * Tamanho do Lote de Gravação. Se você clicar no erro dizendo "O tamanho da solicitação é muito grande.", reduza o valor na configuração do writeBatchSize
coletor de cópia.
Se você usar a fonte do tipo "DocumentDbCollectionSink", ela ainda será suportada como está para compatibilidade com versões anteriores. Sugere-se que você use o novo modelo no futuro, que fornece recursos mais avançados para copiar dados do Azure Cosmos DB.
Exemplo
"activities":[
{
"name": "CopyToCosmosDBSQLAPI",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Document DB output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "CosmosDbSqlApiSink",
"writeBehavior": "upsert"
}
}
}
]
Mapeamento de esquema
Para copiar dados do Azure Cosmos DB para coletor tabular ou invertido, consulte mapeamento de esquema.
Mapeando propriedades de fluxo de dados
Ao transformar dados em fluxo de dados de mapeamento, você pode ler e gravar em coleções no Azure Cosmos DB. Para obter mais informações, consulte a transformação de origem e a transformação de coletor no mapeamento de fluxos de dados.
Nota
O Azure Cosmos DB sem servidor não tem suporte no mapeamento do fluxo de dados.
Transformação da fonte
As configurações específicas do Azure Cosmos DB estão disponíveis na guia Opções de Origem da transformação de origem.
Incluir colunas do sistema: se true, id
, _ts
e outras colunas do sistema serão incluídas nos metadados do fluxo de dados do Azure Cosmos DB. Ao atualizar coleções, é importante incluir isso para que você possa pegar o ID de linha existente.
Tamanho da página: o número de documentos por página do resultado da consulta. O padrão é "-1", que usa a página dinâmica do serviço até 1000.
Taxa de transferência: defina um valor opcional para o número de RUs que você gostaria de aplicar à sua coleção do Azure Cosmos DB para cada execução desse fluxo de dados durante a operação de leitura. O mínimo é de 400.
Regiões preferidas: escolha as regiões de leitura preferidas para este processo.
Feed de alterações: se verdadeiro, você obterá dados do feed de alterações do Azure Cosmos DB, que é um registro persistente de alterações em um contêiner na ordem em que ocorrem a partir da última execução automaticamente. Ao defini-lo true, não defina os tipos de coluna derivada Infer e Permitir desvio de esquema como true ao mesmo tempo. Para obter mais detalhes, consulte Feed de alterações do Azure Cosmos DB).
Começar do início: se verdadeiro, você obterá a carga inicial de dados de instantâneo completos na primeira execução, seguida pela captura de dados alterados nas próximas execuções. Se false, a carga inicial será ignorada na primeira execução, seguida pela captura de dados alterados nas próximas execuções. A configuração é alinhada com o mesmo nome de configuração na referência do Azure Cosmos DB. Para obter mais detalhes, consulte Feed de alterações do Azure Cosmos DB.
Transformação do lavatório
As configurações específicas do Azure Cosmos DB estão disponíveis na guia Configurações da transformação do coletor.
Método de atualização: determina quais operações são permitidas no destino do banco de dados. O padrão é permitir apenas inserções. Para atualizar, atualizar ou excluir linhas, uma transformação de linha de alteração é necessária para marcar linhas para essas ações. Para atualizações, upserts e exclusões, uma coluna ou colunas de chave devem ser definidas para determinar qual linha alterar.
Ação de coleta: determina se a coleção de destino deve ser recriada antes da gravação.
- Nenhuma: Nenhuma ação será feita para a coleta.
- Recriar: A coleção será descartada e recriada
Tamanho do lote: um inteiro que representa quantos objetos estão sendo gravados na coleção do Azure Cosmos DB em cada lote. Normalmente, começar com o tamanho de lote padrão é suficiente. Para ajustar ainda mais esse valor, observe:
- O Azure Cosmos DB limita o tamanho de uma única solicitação a 2 MB. A fórmula é "Tamanho do Pedido = Tamanho do Documento Único * Tamanho do Lote". Se você clicar no erro dizendo "O tamanho da solicitação é muito grande", reduza o valor do tamanho do lote.
- Quanto maior o tamanho do lote, melhor taxa de transferência o serviço pode alcançar, ao mesmo tempo em que se certifica de alocar RUs suficientes para capacitar sua carga de trabalho.
Chave de partição: insira uma cadeia de caracteres que represente a chave de partição para sua coleção. Exemplo: /movies/title
Taxa de transferência: defina um valor opcional para o número de RUs que você gostaria de aplicar à sua coleção do Azure Cosmos DB para cada execução desse fluxo de dados. O mínimo é de 400.
Orçamento de taxa de transferência de gravação: um inteiro que representa as RUs que você deseja alocar para essa operação de gravação de fluxo de dados, fora da taxa de transferência total alocada para a coleção.
Nota
Para limitar o uso de RU, defina a taxa de transferência do Cosmos DB (escala automática) como Manual.
Propriedades da atividade de pesquisa
Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.
Importar e exportar documentos JSON
Você pode usar este conector do Azure Cosmos DB para NoSQL para:
- Copie documentos entre duas coleções do Azure Cosmos DB no estado em que se encontram.
- Importe documentos JSON de várias fontes para o Azure Cosmos DB, incluindo do armazenamento de Blob do Azure, do Repositório Azure Data Lake e de outros armazenamentos baseados em arquivos suportados pelo serviço.
- Exporte documentos JSON de uma coleção do Azure Cosmos DB para vários repositórios baseados em arquivos.
Para obter uma cópia independente do esquema:
- Ao usar a ferramenta Copiar Dados, selecione a opção Exportar como está para arquivos JSON ou Coleção do Azure Cosmos DB.
- Ao usar a criação de atividades, escolha o formato JSON com o armazenamento de arquivos correspondente para origem ou coletor.
Migrar do banco de dados relacional para o Azure Cosmos DB
Ao migrar de um banco de dados relacional e.g. SQL Server para o Azure Cosmos DB, a atividade de cópia pode facilmente mapear dados tabulares da origem para nivelar documentos JSON no Azure Cosmos DB. Em alguns casos, talvez você queira reprojetar o modelo de dados para otimizá-lo para os casos de uso do NoSQL de acordo com a modelagem de dados no Azure Cosmos DB, por exemplo, para desnormalizar os dados incorporando todos os subitens relacionados em um documento JSON. Para esse caso, consulte este artigo com um passo a passo sobre como alcançá-lo usando a atividade de cópia.
Feed de alterações do Azure Cosmos DB
O Azure Data Factory pode obter dados do feed de alterações do Azure Cosmos DB habilitando-os na transformação da fonte de fluxo de dados de mapeamento. Com essa opção de conector, você pode ler feeds de alteração e aplicar transformações antes de carregar dados transformados em conjuntos de dados de destino de sua escolha. Não é necessário usar as funções do Azure para ler o feed de alterações e, em seguida, escrever transformações personalizadas. Você pode usar essa opção para mover dados de um contêiner para outro, preparar exibições de material orientadas por feed de alterações para fins adequados ou automatizar o backup ou a recuperação de contêineres com base no feed de alterações e habilitar muitos outros casos de uso usando o recurso visual de arrastar e soltar do Azure Data Factory.
Certifique-se de manter o pipeline e o nome da atividade inalterados, para que o ponto de verificação possa ser registrado pelo ADF para que você obtenha dados alterados da última execução automaticamente. Se alterar o nome do pipeline ou o nome da atividade, o ponto de verificação será redefinido, o que faz com que tenha que começar do início ou obter alterações a partir de agora na próxima execução.
Quando você depura o pipeline, esse recurso funciona da mesma forma. Lembre-se de que o ponto de verificação será redefinido quando você atualizar o navegador durante a execução de depuração. Depois de estar satisfeito com o resultado do pipeline da execução de depuração, você pode ir em frente para publicar e acionar o pipeline. No momento em que você aciona pela primeira vez seu pipeline publicado, ele é reiniciado automaticamente desde o início ou recebe alterações a partir de agora.
Na seção de monitoramento, você sempre tem a chance de executar novamente um pipeline. Quando você está fazendo isso, os dados alterados são sempre capturados do ponto de verificação anterior da execução do pipeline selecionado.
Além disso, o repositório analítico do Azure Cosmos DB agora oferece suporte à Captura de Dados de Alteração (CDC) para API do Azure Cosmos DB para NoSQL e à API do Azure Cosmos DB para Mongo DB (visualização pública). O repositório analítico do Azure Cosmos DB permite que você consuma com eficiência um feed contínuo e incremental de dados alterados (inseridos, atualizados e excluídos) do repositório analítico.
Conteúdos relacionados
Para obter uma lista de armazenamentos de dados que a Atividade de Cópia suporta como fontes e coletores, consulte Armazenamentos de dados suportados.