Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Baixe o script ddl_support_objects.sql .
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
-
(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.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 objetolakeflowDdlAudit_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>;