Habilitar o acompanhamento de mudanças em Microsoft SQL Server
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.
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.
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:
GRANT VIEW CHANGE TRACKING ON SCHEMA::<schema-name> TO <database-user>;
Para conceder permissões em nível de tabela, execute o seguinte:
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.
-
Faça o download do script ddl_support_objects.sql.
-
Modifique o script para definir o valor
mode
:BOTH
: Inicializa os objetos CT e CDC (default)CT
: inicializa objetos CTCDC
: Inicializa os objetos CDCNONE
: Exclui todos os objetos CT e CDC pré-existentes
-
(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. -
Execute o script em cada banco de dados que o senhor deseja ingerir.
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 objetolakeflowDdlAudit_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>
:
GRANT VIEW CHANGE TRACKING ON OBJECT::dbo.lakeflowDdlAudit_1_1 TO <database-user>;
GRANT VIEW DEFINITION ON DATABASE::<database-name> TO <database-user>;