Configurar um banco de dados do Azure SQL para CDC

É possível transmitir atualizações de captura de dados alterados (CDC) de um banco de dados do Azure SQL para destinos compatíveis, como o BigQuery ou o Cloud Storage, usando o Datastream. O Datastream só oferece suporte ao Banco de Dados SQL do Azure com o método CDC de tabelas de alterações. Para preparar a origem, ative a CDC no banco de dados e nas tabelas, ative o isolamento de snapshot e configure um usuário do Datastream.

Para configurar um banco de dados do Azure SQL:

  1. Ative a captura de dados alterados (CDC) para o banco de dados de origem do Azure SQL. Para fazer isso, conecte-se ao banco de dados usando o Azure Data Studio ou o SQL Server Management Studio e execute o seguinte comando:

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. Ative a CDC nas tabelas em que você precisa capturar alterações:

    EXEC sys.sp_cdc_enable_table
    @source_schema = N'SCHEMA_NAME',
    @source_name = N'TABLE_NAME',
    @role_name = NULL
    GO
    

    Substitua:

    • SCHEMA_NAME: o nome do esquema a que as tabelas pertencem
    • TABLE_NAME: o nome da tabela em que você quer ativar a CDC
  3. Ativar isolamento de snapshot.

    Ao fazer o backfill de dados do banco de dados do SQL Server, é importante garantir snapshots consistentes. Se você não aplicar as configurações descritas nesta seção, as mudanças feitas no banco de dados durante o processo de backfill poderão levar a resultados duplicados ou incorretos. A aplicação das configurações de isolamento de snapshot é necessária se o stream incluir tabelas sem chaves primárias.

    A ativação do isolamento de snapshot cria uma visualização temporária do banco de dados no início do processo de backfill. Isso garante que os dados copiados permaneçam consistentes, mesmo que outros usuários façam mudanças nas tabelas ativas ao mesmo tempo. A ativação do isolamento de snapshot pode ter um pequeno impacto no desempenho, mas é essencial para a extração confiável de dados.

    Para ativar o isolamento de snapshot:

    1. Conecte-se ao banco de dados usando um cliente do SQL Server.
    2. Execute este comando:
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    Substitua DATABASE_NAME pelo nome do banco de dados.

  4. Criar um usuário do Datastream:

    1. Conecte-se ao banco de dados master e crie um login:

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. Conecte-se ao banco de dados de origem e crie um usuário para seu login:

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. Atribua as funções db_owner e db_denydatawriter ao usuário:

      EXEC sp_addrolemember 'db_owner', 'USER_NAME';
      EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
      
    4. Conceda a permissão VIEW DATABASE STATE ao usuário:

      GRANT VIEW DATABASE STATE TO USER_NAME;
      

A seguir