Pular para o conteúdo principal

Habilitar o acompanhamento de mudanças em Microsoft SQL Server

info

Visualização

O conector do Microsoft SQL Server está em Public Preview.

Esta página fornece instruções para ativar o acompanhamento de alterações em Microsoft SQL Server. O senhor deve ativar o acompanhamento de alterações ou a captura de dados de alterações (CDC) (CDC) para usar o conector SQL Server. Databricks recomenda o uso do acompanhamento de alterações para qualquer tabela que tenha um key primário para minimizar a carga no banco de dados de origem. Se as opções change acompanhamento e CDC estiverem ambas ativadas, o conector usará change acompanhamento. Para obter orientação sobre qual opção escolher, consulte Change acompanhamento vs. captura de dados de alterações (CDC).

Habilitar o acompanhamento de mudanças em um banco de dados

execute o seguinte, substituindo <database-name> pelo nome do banco de dados no qual o senhor deseja ativar o acompanhamento de alterações. Defina CHANGE_RETENTION para o tempo máximo em que o gateway provavelmente ficará inativo. Após esse período de tempo, é necessário um refresh completo para retomar o gateway.

SQL
ALTER DATABASE <database-name> SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 3 DAYS, AUTO_CLEANUP = ON)

Habilitar a alteração do acompanhamento em uma tabela

execute o seguinte, substituindo <schema-name>.<table-name> pelo nome do esquema e da tabela em que o senhor deseja ativar o acompanhamento de alterações.

SQL
ALTER TABLE <schema-name>.<table-name> ENABLE CHANGE_TRACKING

Conceder a visualização CHANGE acompanhamento em tabelas ingeridas

Além dos privilégios descritos na configuração de origem, o usuário do banco de dados precisa do privilégio VIEW CHANGE TRACKING nas tabelas ingeridas ou em um esquema que contém tabelas que estão sendo rastreadas.

Para conceder permissões no nível do esquema, execute o seguinte:

SQL
GRANT VIEW CHANGE TRACKING ON SCHEMA::<schema-name> TO <database-user>;

Para conceder permissões em nível de tabela, execute o seguinte:

SQL
GRANT VIEW CHANGE TRACKING ON OBJECT::<schema-name>.<table-name> TO <database-user>;

Configurar a captura de DDL e a evolução do esquema

O conector do SQL Server pode rastrear a linguagem de definição de dados (DDL) nos objetos de banco de dados ingeridos e aplicar alterações relevantes no esquema da tabela às tabelas de destino ou adicionar novas tabelas no caso de replicação de esquema completo.

Para realizar a captura DDL, é necessária uma configuração adicional do objeto de banco de dados (por exemplo, tabelas internas, procedimentos armazenados e gatilhos). O script Transact-SQL (T-SQL) fornecido neste artigo (ddl_support_objects.sql) elimina todos os objetos de suporte DDL pré-existentes e cria os objetos de suporte DDL necessários para capturar as alterações DDL que ocorrem no banco de dados.

  1. Faça o download do script ddl_support_objects.sql.

  2. Modifique o script para definir o valor mode:

    • BOTH: Inicializa os objetos CT e CDC (default)
    • CT: inicializa objetos CT
    • CDC: Inicializa os objetos CDC
    • NONE: Exclui todos os objetos CT e CDC pré-existentes
  3. (Recomendado) Opcionalmente, modifique o script para definir a variável replicationUser como o usuário do banco de dados do SQL Server.

    Se replicationUser for definido, o script concederá ao usuário todos os privilégios necessários para trabalhar com os objetos de suporte DDL. Caso contrário, você deverá conceder cada privilégio manualmente.

  4. Execute o script em cada banco de dados que o senhor deseja ingerir.

important

Não execute o script no banco de dados principal.

Se o senhor executar o script em uma ferramenta de terceiros, selecione o script inteiro antes de executá-lo.

Alterar os requisitos de privilégio de acompanhamento

Se você definir a variável replicationUser no script, o script concederá os privilégios necessários nos objetos de suporte DDL ao usuário do banco de dados. Os privilégios necessários são:

  • VIEW CHANGE TRACKING no objeto lakeflowDdlAudit_1_1
  • VIEW DEFINITION no banco de dados que você deseja ingerir

Se replicationUser não estiver definido no script, o senhor deverá conceder manualmente os privilégios necessários para o acompanhamento das alterações. Para fazer isso, execute o seguinte comando T-SQL, substituindo <database-user>:

SQL
GRANT VIEW CHANGE TRACKING ON OBJECT::dbo.lakeflowDdlAudit_1_1 TO <database-user>;
GRANT VIEW DEFINITION ON DATABASE::<database-name> TO <database-user>;

Próxima etapa

Criar um pipeline de ingestão