Suponha que você tenha um SQL com informações do cliente conectado a um data warehouse. Seus analistas utilizam esse banco de dados para criar campanhas de marketing personalizadas para seus clientes. Novos dados de clientes chegam regularmente e dados antigos de clientes são alterados com frequência. Para levar em conta essas alterações, você deve atualizar seu data warehouse regularmente, o que pode levar a problemas de latência e desacelerar a análise. O resultado? Você confia em dados obsoletos para suas decisões cruciais.
Para garantir que você sempre tome decisões confiáveis, você pode usar a captura de dados alterados (CDC) — uma maneira mais fácil de atualizar dados em um destino de destino. O CDC detecta alterações nos dados da tabela de origem e atualiza seu destino de destino adequadamente. Ele garante que seus dados nunca fiquem obsoletos e que suas decisões sejam sempre baseadas em informações confiáveis e atualizadas. Existem diferentes tipos de Change Data Capture, como baseado em log, modificado em dados, diff e baseado em gatilho.
Este blog fornecerá uma visão geral de como o CDC é útil no gerenciamento de dados e discutirá a captura de dados de alteração baseada em gatilhos em Servidor SQL.
CDC e gerenciamento de dados
O CDC é um divisor de águas no gerenciamento de dados. Com o CDC, você só precisa atualizar as alterações em seu destino de destino. Como resultado, você pode executar processos ETL rapidamente.
Pode desempenhar um papel fundamental no planejamento de contingência. Imagine que seu data center perdeu alguns dados e o backup está faltando alguns arquivos. Com o CDC, você pode manter seus dados primários e fontes de backup sincronizados e garantir que seus planos de recuperação de desastres sejam infalíveis.
O CDC acelera a inteligência de negócios (BI) movendo dados entre bancos de dados em tempo real. Também é útil no setor de saúde, onde a precisão e a pontualidade dos dados são essenciais para fornecer o melhor atendimento ao paciente. Se um banco de dados estiver conectado a um painel, o CDC pode garantir que todos os dados transmitidos de dispositivos médicos sejam atualizados oportunamente no data warehouse.
O tempo de inatividade é um dos maiores desafios durante a migração de dados. Usando o CDC, você pode realizar migrações com tempo de inatividade quase zero, pois ele não interrompe as cargas de trabalho.
Agora que você tem um conhecimento básico do CDC, vamos explorar os tipos de CDC.
Tipos de CDC
O CDC no SQL Server vem em três formas principais: baseado em gatilho, baseado em log e baseado em consulta. Cada tipo oferece benefícios exclusivos adaptados a diferentes ambientes de dados no cenário do SQL Server. A escolha do tipo de CDC no SQL Server depende das necessidades e restrições específicas do seu ambiente de dados do SQL Server. Para ajudar as organizações a tomar uma decisão informada, a seção a seguir se aprofundará nesses tipos de CDC no SQL Server, destacando suas funções, vantagens e casos de uso ideais.
-
CDC baseado em gatilho
O CDC baseado em gatilho no SQL Server envolve o uso de gatilhos de banco de dados para capturar alterações. Um gatilho é um procedimento armazenado em um banco de dados que responde automaticamente a um evento específico, como uma operação de inserção, atualização ou exclusão. Quando qualquer um desses eventos ocorre, o gatilho é acionado e registra as alterações em uma tabela separada, conhecida como tabela de alterações. Embora esse método seja relativamente simples de implementar e funcione em diferentes tipos de bancos de dados, ele pode afetar o desempenho do SQL Server devido à sobrecarga adicional de gerenciamento de gatilhos.
O CDC baseado em gatilho é uma excelente opção para aplicativos SQL Server que exigem atualizações imediatas de dados, como aplicativos voltados para o cliente, onde os dados em tempo real são cruciais para manter uma boa experiência do usuário.
-
CDC baseado em log
O CDC baseado em log no SQL Server captura alterações lendo o log de transações do banco de dados. O log de transações é um arquivo que registra todas as transações e modificações no banco de dados feitas por cada transação. Ao ler esse log, o CDC baseado em log pode identificar quais dados foram alterados, quando foram alterados e em que ordem as alterações ocorreram. Esse método geralmente é mais eficiente e menos intrusivo que o CDC baseado em gatilho, pois não afeta o desempenho do SQL Server. No entanto, requer um conhecimento profundo das operações internas do banco de dados.
O CDC baseado em log é ideal para ambientes SQL Server com altos volumes de transações, como sistemas financeiros, onde ocorrem alterações frequentes. Também é adequado para cenários em que as alterações precisam ser capturadas na ordem exata em que ocorreram, como trilhas de auditoria ou relatórios de conformidade, onde a sequência de eventos é importante.
-
CDC baseado em consulta
O CDC baseado em consulta no SQL Server captura alterações consultando periodicamente o banco de dados de origem e comparando o estado atual dos dados com um estado registrado anteriormente. Esse método é frequentemente usado quando nem o CDC baseado em gatilho nem o CDC baseado em log podem ser implementados, como quando o banco de dados SQL Server de origem não oferece suporte a gatilhos ou logs de transações. No entanto, o CDC baseado em consulta pode consumir muitos recursos e pode não capturar todas as alterações se ocorrerem várias alterações entre as consultas.
O CDC baseado em consulta é mais adequado para bancos de dados SQL Server que não oferecem suporte a gatilhos ou logs de transações ou em cenários onde as atualizações de dados em tempo real não são uma prioridade. Também é útil em ambientes SQL Server onde o acesso ao log de transações é restrito devido a restrições técnicas ou de segurança, como bancos de dados baseados em nuvem ou bancos de dados de terceiros.
Ampliando o CDC baseado em gatilho
O CDC baseado em gatilho é um método de sinalização ao sistema de destino de que houve uma alteração no sistema de origem. Como o nome sugere, o processo de captura de dados de alteração é iniciado com base em gatilhos específicos.
Existem três gatilhos em um banco de dados SQL: Inserir para sinalizar uma nova entrada, Atualizar para indicar uma alteração e Excluir para remover uma entrada. Sempre que esses comandos são executados, eles são registrados em uma sombra ou tabela de alterações, que mantém um registro detalhado de todas as alterações. Uma vez registradas, essas alterações são propagadas para o destino de destino.
Como todos os gatilhos são baseados em SQL, o CDC baseado em gatilho é uma escolha preferencial para o SQL Server.
Trabalhando com o Microsoft SQL Server
O SQL Server é um banco de dados relacional usado no back-end de vários aplicativos. O SQL Server permite que os usuários gerenciem e armazenem dados sem esforço. O banco de dados é equipado com uma série de recursos de gerenciamento e análise de dados, que facilitam a utilização dos usuários para iniciativas de BI e aprendizado de máquina.
Há vários motivos pelos quais os desenvolvedores preferem trabalhar com o Microsoft SQL Server:
Alterar captura de dados no SQL Server
A Microsoft oferece o Change Data Capture no SQL Server, Azure SQL e Azure SQL Managed Instance.
O Change Data Capture no SQL Server usa um SQL Server Agent para registrar qualquer atividade de inserção, atualização ou exclusão em uma tabela e a disponibiliza em um formato fácil de usar.
Aqui está um banco de dados típico no Microsoft SQL Server:
Sempre que são feitas alterações nessa tabela, o CDC as registra em uma tabela separada.
O CDC facilita significativamente a extração de dados do SQL Server e o carregamento em um banco de dados ou data warehouse. Uma ferramenta ETL/ELT geralmente extrai dados do SQL Server e os carrega de forma incremental em um data warehouse. No carregamento incremental, você carrega apenas os dados recentes em vez de todo o banco de dados, o que economiza tempo e melhora o desempenho. Uma combinação de ETL/ELT e CDC garante que um confiável esteja disponível no data warehouse com recursos mínimos.
Você pode usar o CDC no Microsoft SQL Server usando os recursos nativos da Microsoft ou uma ferramenta ETL de terceiros.
Opção 1: habilitar a captura de dados de alterações do Microsoft SQL Server de forma nativa
Você precisa atender a certas condições para habilite o CDC no SQL Server nativamente. Somente um usuário com uma função de servidor fixa sysadmin ou um db_owner pode habilitar o CDC em um banco de dados. Como o CDC não está disponível na versão web, você deve ter o SQL Server Developer, Enterprise ou Standard Edition.
Ao habilitar o CDC, o SQL Server cria o esquema do CDC, as tabelas de metadados e o usuário do CDC. O esquema CDC tem todas as tabelas de metadados com CDC. Depois de habilitar as tabelas de origem para captura de dados alterados, as tabelas de alteração servem como um repositório para dados alterados.
Habilitando o Change Data Capture do Microsoft SQL Server de forma nativa
Embora você possa usar os recursos nativos do CDC do SQL Server, ele tem algumas limitações. Para usar o SQL Server CDC, o SQL Server Agent precisa ser. Além disso, o CDC do SQL Server não se estende a bancos de dados não hospedados em instâncias do SQL Server. Se você estiver enviando dados de várias fontes para um data warehouse, é necessário manter o processo de CDC para cada fonte separadamente.
Você pode usar uma ferramenta de terceiros, como Astera Centerprise para superar essas limitações. Astera Centerprise é uma maneira mais fácil de aproveitar a combinação de CDC e ETL/ELT. A ferramenta sem código vem com um poderoso mecanismo ETL/ELT que processa rapidamente grandes volumes de dados. Combinado com UI intuitiva e uma curta curva de aprendizado, Astera Centerprise facilita a implementação do CDC no SQL Server.
Opção 2: Implementando o Change Data Capture baseado em gatilho no SQL Server com Astera Centerprise
Astera Centerprise simplifica significativamente o processo de implementação do CDC no SQL Server. Basta arrastar e soltar o banco de dados SQL Server no designer de fluxo de dados e escolher a opção 'Ativar captura de dados de alteração na tabela' no menu suspenso.
Implementando o Change Data Capture no SQL Server com Astera Centerprise
Depois de habilitar o CDC, você pode gravar todas as alterações no destino de sua escolha. Existem duas opções: você pode gravá-los em um destino de formato de arquivo, banco de dados ou data warehouse.
Lendo alterações de banco de dados de tabelas de origem
Depois de habilitar o CDC nas tabelas de origem mencionadas acima, escolha CDC baseado em gatilho na seção de propriedades. Se você deseja carregar dados de origem existentes em um destino, a opção 'Executar carregamento total na primeira execução', que é habilitada por padrão. Desmarque esta opção se desejar apenas carregar as alterações.
Lendo alterações de banco de dados de tabelas de origem
Gravando alterações de banco de dados em um formato de arquivo Destino
Você pode gravar suas alterações de banco de dados em qualquer formato de arquivo de sua escolha. Astera Centerprise suporta vários formatos de arquivo, incluindo JSON, Excel, CSV e delimitado. Você pode simplesmente arrastar e soltar o destino no designer de fluxo de dados e mapear os dados da origem para o destino sem escrever nenhum código.
Gravando alterações de banco de dados no destino do formato de arquivo com Astera Centerprise
Gravando alterações de banco de dados em um data warehouse ou banco de dados
Escrever dados em um data warehouse é um pouco diferente, mas simples. Você atualizará os registros antigos ou adicionará novos registros ao seu banco de dados ou data warehouse. Para esses destinos, Centerprise dá a opção para Upsert. Você pode habilitar a opção Upsert e escolher a chave primária.
Caso não tenha um registro no destino, a opção Upsert irá inseri-lo. Se o registro já for , ele será atualizado.
Usando Upsert em Astera Centerprise
Uma vez feito, você pode mapear facilmente as alterações em seu banco de dados ou data warehouse. Astera Centerprise tem conectividade nativa com bancos de dados e data warehouses populares, como MySQL, Snowflake, Amazon Redshift, PostgresSQL e muito mais.
Gravando alterações de banco de dados no destino de banco de dados/data warehouse com Astera Centerprise
Automatize a captura de dados de alteração baseada em gatilho no SQL Server
A melhor parte de implementar o CDC com Astera Centerprise é que você pode tirar proveito de seus recursos de automação. Com Centerprise, você pode configurar facilmente um fluxo de dados do SQL Server para o destino de destino e agendá-lo para ser executado automaticamente.
Centerprise tem um agendador de trabalho integrado que você pode executar com base em suas configurações preferidas. Existem vários gatilhos baseados em eventos e tempo para você escolher. Você pode definir a frequência semanal, mensal, diária ou até mesmo intervalos de hora em hora.
Você também pode configurar uma notificação por email para avisá-lo sempre que um fluxo de dados for executado.
CDC como solução de auditoria
O CDC no SQL Server serve como uma solução de auditoria, fornecendo um rastreamento sistemático e detalhado de todas as alterações feitas nos dados dos bancos de dados. Veja como funciona:
- Rastreamento detalhado: O CDC no SQL Server opera criando tabelas de alteração que espelham a estrutura de colunas das tabelas de origem controladas. Essas tabelas de alterações armazenam um registro detalhado de todas as modificações de dados, incluindo inserções, atualizações e exclusões. Como o CDC fornece uma trilha de auditoria e permite uma revisão e investigação completas das alterações nos dados ao longo do tempo, ele é crucial para manter a integridade dos dados.
- Prestação de contas: Além de rastrear alterações de dados, a captura de dados alterados no SQL Server também captura metadados cruciais, como a natureza da alteração (inserir, atualizar, excluir), o horário da alteração e a transação específica associada à alteração. Manter um registro detalhado promove a responsabilização, pois os usuários têm consciência de que suas ações na base de dados estão sendo registradas, promovendo uma cultura de responsabilidade e transparência.
- Conformidade: O CDC usa um processo chamado Log Reader Agent no SQL Server para ler o log de transações e preencher as tabelas de alterações. O Log Reader Agent é um trabalho executado continuamente em segundo plano, verificando o log de transações do banco de dados e copiando quaisquer alterações no banco de dados de distribuição. Ao rastrear e monitorar ativamente as modificações feitas no sistema, as organizações podem aderir aos requisitos regulamentares, como o Regulamento Geral de Proteção de Dados (GDPR).
- Monitoramento em tempo real: A captura de dados alterados no SQL Server opera quase em tempo real. Ele emprega instâncias de captura, cada uma consistindo em uma tabela de alterações e funções de consulta, para monitorar continuamente tabelas específicas em busca de alterações de dados. À medida que ocorrem alterações, as instâncias de captura registram os detalhes nas tabelas de alterações. Ao rastrear dados em tempo real, as organizações podem detectar e responder rapidamente a quaisquer alterações não autorizadas ou inadequadas, aumentando assim a segurança dos dados.
Por que você deve escolher Astera Centerprise?
Astera Centerprise elimina a complexidade do gerenciamento de dados. O ambiente sem código e a interface do usuário intuitiva permitem que os usuários de negócios tomem conta de suas iniciativas orientadas por dados. Aqui estão algumas características que tornam Astera Centerprise uma excelente escolha para habilitar o CDC:
- Astera Centerprise suporta vários conectores para bancos de dados populares, data warehouses e formatos de arquivo.
- Com o Astera Centerprise, você pode gerenciar o CDC para todos os bancos de dados relacionais em uma plataforma em vez de gerenciá-los separadamente.
- Astera suporta transformações internas que você pode usar para limpar e manipular seus dados
- Você pode usar Astera perfis de dados e recursos de qualidade para garantir a precisão e a confiabilidade dos dados.
- Você pode utilizar Astera Centerprise recursos de automação e agendamento de tarefas para acelerar a transferência de dados
Baixar Astera Centerprise hoje e experimente gratuitamente por 14 dias.
autores:
- Javeria Rahim