Alterar captura de dados no repositório analítico do Azure Cosmos DB
APLICA-SE A: NoSQL MongoDB
A captura de dados de alteração (CDC) no 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. Perfeitamente integrado com o Azure Synapse e o Azure Data Factory, ele fornece uma experiência sem código escalável para alto volume de dados. Como o recurso de captura de dados de alteração é baseado no armazenamento analítico, ele não consome RUs provisionadas, não afeta suas cargas de trabalho transacionais, fornece menor latência e tem TCO mais baixo.
O recurso de captura de dados de alteração no repositório analítico do Azure Cosmos DB pode gravar em vários coletores usando um fluxo de dados do Azure Synapse ou do Azure Data Factory.
Para obter mais informações sobre tipos de coletor suportados em um fluxo de dados de mapeamento, consulte Tipos de coletor suportados por fluxo de dados.
Além de fornecer feed de dados incremental do armazenamento analítico para diversos destinos, a captura de dados de alteração suporta os seguintes recursos:
- Suporta a captura de exclusões e atualizações intermediárias
- Capacidade de filtrar o feed de alterações para um tipo específico de operação (Inserir | , Atualizar | , Excluir | , TTL)
- Suporta a aplicação de filtros, projeções e transformações no feed Alterar por meio da consulta de origem
- Várias alimentações de alteração no mesmo recipiente podem ser consumidas simultaneamente
- Cada alteração no contêiner aparece exatamente uma vez no feed de captura de dados de alteração, e os pontos de verificação são gerenciados internamente para você
- As alterações podem ser sincronizadas "desde o início" ou "a partir de um determinado carimbo de data/hora" ou "a partir de agora"
- Não há limitação em relação ao período fixo de retenção de dados para o qual as alterações estão disponíveis
Captura de dados incremental eficiente com pontos de verificação gerenciados internamente
Cada alteração no contêiner do Cosmos DB aparece exatamente uma vez no feed CDC e os pontos de verificação são gerenciados internamente para você. Isso ajuda a resolver as desvantagens abaixo do padrão comum de usar pontos de verificação personalizados com base no valor "_ts":
O filtro "_ts" é aplicado contra os arquivos de dados, o que nem sempre garante uma varredura mínima de dados. Os pontos de verificação baseados em GLSN gerenciados internamente no novo recurso CDC garantem que a identificação incremental de dados seja feita, apenas com base nos metadados e, portanto, garante uma varredura mínima de dados em cada fluxo.
O processo de sincronização do repositório analítico não garante a ordenação baseada em "_ts", o que significa que pode haver casos em que o "_ts" de um registro incremental é menor do que o último ponto de verificação "_ts" e pode ser perdido no fluxo incremental. O novo CDC não considera "_ts" para identificar os registros incrementais e, portanto, garante que nenhum dos registros incrementais seja perdido.
Funcionalidades
A captura de dados de alteração no repositório analítico do Azure Cosmos DB dá suporte aos seguintes recursos principais.
Capturando alterações desde o início
Quando a Start from beginning
opção é selecionada, a carga inicial inclui um instantâneo completo dos dados do contêiner na primeira execução e os dados alterados ou incrementais são capturados nas execuções subsequentes. Isso é limitado pela propriedade e os analytical TTL
documentos removidos pelo TTL do repositório analítico não estão incluídos no feed de alterações. Exemplo: Imagine um contêiner com analytical TTL
31536000 segundos, o que equivale a 1 ano. Se você criar um processo CDC para esse contêiner, somente documentos com mais de 1 ano serão incluídos na carga inicial.
Capturando alterações de um determinado carimbo de data/hora
Quando a Start from timestamp
opção é selecionada, a carga inicial processa os dados do carimbo de data/hora fornecido e os dados incrementais ou alterados são capturados em execuções subsequentes. Este processo também é limitado pela analytical TTL
propriedade.
Capturando mudanças a partir de agora
Quando a Start from timestamp
opção é selecionada, todas as operações anteriores do contêiner não são capturadas.
Capturando exclusões, atualizações intermediárias e TTLs
O recurso de captura de dados de alteração para o repositório analítico captura exclusões, atualizações intermediárias e operações TTL. As exclusões e atualizações capturadas podem ser aplicadas em coletores que suportam operações de exclusão e atualização. O valor {_rid} identifica exclusivamente os registros e, portanto, especificando {_rid} como coluna chave no lado do coletor, as operações de atualização e exclusão seriam refletidas no coletor.
Observe que as operações TTL são consideradas exclusões. Verifique a seção de configurações de origem para verificar os detalhes do modo e o suporte para atualizações intermediárias e exclusões em coletores.
Filtrar o feed de alterações para um tipo específico de operação
Você pode filtrar o feed de captura de dados de alteração para um tipo específico de operação. Por exemplo, você pode capturar seletivamente apenas as operações de inserção e atualização, ignorando assim as operações user-delete e TTL-delete.
Aplicação de filtros, projeções e transformações no feed Alterar por meio da consulta de origem
Opcionalmente, você pode usar uma consulta de origem para especificar filtro(s), projeção(ões) e transformação(ões), que seriam empurrados para baixo para o repositório analítico colunar. Aqui está um exemplo de consulta de origem que capturaria apenas registros incrementais com o filtro Category = 'Urban'
. Esta consulta de exemplo projeta apenas cinco campos e aplica uma transformação simples:
SELECT ProductId, Product, Segment, concat(Manufacturer, '-', Category) as ManufacturerCategory
FROM c
WHERE Category = 'Urban'
Vários processos CDC
Você pode criar vários processos para consumir CDC no repositório analítico. Essa abordagem traz flexibilidade para dar suporte a diferentes cenários e requisitos. Enquanto um processo pode não ter transformações de dados e vários coletores, outro pode ter achatamento de dados e um coletor. E podem correr em paralelo.
Isolamento de taxa de transferência, menor latência e menor TCO
As operações no repositório analítico do Cosmos DB não consomem as RUs provisionadas e, portanto, não afetam suas cargas de trabalho transacionais. A captura de dados de alteração com armazenamento analítico também tem menor latência e menor TCO. A menor latência é atribuída ao armazenamento analítico, permitindo um melhor paralelismo para o processamento de dados e reduzindo o TCO geral, permitindo que você aumente a eficiência de custos nessas condições econômicas em rápida mudança.
Cenários
Aqui estão cenários comuns em que você pode usar a captura de dados de alteração e o armazenamento analítico.
Consumindo dados incrementais do Cosmos DB
Você pode usar a captura de dados de alteração de armazenamento analítico, se estiver usando ou planejando usar:
- Captura incremental de dados usando os Fluxos de Dados do Azure Data Factory ou a atividade de Cópia.
- Processamento em lote único usando o Azure Data Factory.
- Streaming de dados do Cosmos DB
- O repositório analítico tem latência de até 2 minutos para sincronizar dados de armazenamento transacionais. Você pode agendar Fluxos de Dados no Azure Data Factory a cada minuto.
- Se você precisar transmitir sem a latência acima, recomendamos usar o recurso de feed de alterações do repositório transacional.
- Captura de exclusões, alterações incrementais, aplicação de filtros em dados do Cosmos DB.
- Se você estiver usando gatilhos do Azure Functions ou qualquer outra opção com feed de alterações e quiser capturar exclusões, alterações incrementais, aplicar transformações, etc.; Recomendamos alterar a captura de dados no repositório analítico.
Alimentação incremental para a plataforma analítica de sua escolha
A capacidade de captura de dados de alteração permite uma solução analítica de ponta a ponta, oferecendo a flexibilidade de usar dados do Azure Cosmos DB com qualquer um dos tipos de coletor suportados. Para obter mais informações sobre tipos de coletor suportados, consulte Tipos de coletor suportados por fluxo de dados. A captura de dados de alteração também permite que você traga os dados do Azure Cosmos DB para um data lake centralizado e junte os dados com dados de outras fontes diversas. Você pode nivelar os dados, particioná-los e aplicar mais transformações no Azure Synapse Analytics ou no Azure Data Factory.
Alterar a captura de dados no Azure Cosmos DB para contêineres do MongoDB
A interface de serviço vinculada para a API do MongoDB ainda não está disponível nos fluxos de dados do Azure Data Factory. Você pode usar sua API para o ponto de extremidade da conta do MongoDB com a interface de serviço vinculado do Azure Cosmos DB para NoSQL como uma solução alternativa até que o serviço vinculado do Mongo tenha suporte direto.
Na interface de um novo serviço vinculado NoSQL, selecione Inserir manualmente para fornecer as informações da conta do Azure Cosmos DB. Aqui, use o ponto de extremidade de documento NoSQL da conta (Exemplo: https://<account-name>.documents.azure.com:443/
) em vez do ponto de extremidade Mongo DB (Exemplo: mongodb://<account-name>.mongo.cosmos.azure.com:10255/
)