Compartilhar via


Habilitar o controle de alterações no Microsoft SQL Server

Importante

O conector do Microsoft SQL Server está em Visualização Pública.

Esta página fornece instruções para habilitar o controle de alterações no Microsoft SQL Server. Você deve habilitar o controle de alterações ou a CDC (captura de dados de alteração) para usar o conector do SQL Server. O Databricks recomenda usar o controle de alterações para qualquer tabela que tenha uma chave primária para minimizar a carga no banco de dados de origem. Se o controle de alterações e o CDC estiverem habilitados, o conector usará o controle de alterações. Para obter diretrizes sobre qual opção escolher, consulte Controle de alterações versus captura de dados de alterações.

Habilitar o controle de alterações em um banco de dados

Execute o seguinte, substituindo <database-name> pelo nome do banco de dados no qual você deseja habilitar o controle de alterações. Defina CHANGE_RETENTION como o tempo máximo que o gateway provavelmente ficará inativo. Após esse período de tempo, uma atualização completa é necessária para retomar o gateway.

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

Habilitar o controle de alterações em uma tabela

Execute o seguinte, substituindo <schema-name>.<table-name> pelo nome do esquema e da tabela em que você deseja habilitar o controle de alterações.

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

Conceder VIEW CHANGE TRACKING 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 as tabelas que estão sendo rastreadas.

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

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

Para conceder permissões no nível da tabela, execute o seguinte:

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

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

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

Para executar 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) descarta quaisquer objetos de suporte DDL pré-existentes e cria os objetos de suporte DDL necessários para capturar alterações de DDL que ocorrem no banco de dados.

  1. Baixe o script ddl_support_objects.sql .

  2. Modifique o script para definir o mode valor:

    • BOTH: inicializa tanto os objetos de CT quanto da CDA (padrão)
    • CT: inicializa objetos da CT
    • CDC: inicializa os objetos da CDA
    • NONE: exclui todos os objetos de CT e CDA pré-existentes
  3. (Recomendado) Opcionalmente, modifique o script para definir a variável replicationUser para o usuário de banco de dados do seu SQL Server.

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

  4. Execute o script em cada banco de dados que você quiser ingerir.

    Importante

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

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

Requisitos de privilégio do controle de alterações

Se você definir a replicationUser variável no script, o script concederá os privilégios necessários nos objetos de suporte DDL para o 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ê quer ingerir

Se replicationUser não estiver definido no script, você deverá conceder manualmente os privilégios necessários para o controle de alterações. Para fazer isso, execute os seguintes comandos T-SQL, substituindo <database-user>:

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