Pular para o conteúdo principal

Prepare SQL Server para ingestão usando o script de objetos utilitários.

Conclua a tarefa de configuração do banco de dados SQL Server para ingestão no Databricks usando LakeFlow Connect.

Requisitos

  • O usuário que executa o script deve ser membro da função db_owner .
  • Para configuração de TC: A opção "Alterar acompanhamento" deve estar disponível na plataforma.
  • Para configuração CDC : a captura de dados de alterações (CDC) deve estar disponível na plataforma.

o passo 1: Instalar objetos russos

Este passo instala os utilitários, procedimentos armazenados e funções necessários para a configuração SQL Server . Para obter detalhes sobre o que é instalado, consulte a referência do script de objetos utilitáriosSQL Server.

  1. Baixe o script: utility_script.sql

  2. Abra o script no SQL Server Management Studio (SSMS), no Azure Data Studio ou no seu cliente SQL preferido.

  3. Conecte-se à sua instância do SQL Server como um usuário com a função db_owner .

  4. Certifique-se de estar conectado ao banco de dados de destino.

  5. execução do roteiro.

  6. Verificar instalação:

    SQL
    SELECT dbo.lakeflowUtilityVersion_1_1() AS UtilityVersion;
    SELECT dbo.lakeflowDetectPlatform() AS Platform;

o passo 2: Habilitar acompanhamento de alteração (para tabelas com chave primária)

O acompanhamento de alterações é um mecanismo leve que rastreia as alterações nas linhas da tabela. Este passo habilita o CT no nível do banco de dados em tabelas específicas e configura objetos de suporte DDL para lidar com alterações de esquema. Para obter detalhes, consulte lakeflowSetupChangeTracking na referência do script de objetos utilitáriosSQL Server.

SQL
-- Enable change tracking on specific tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'Sales.Orders,Production.Products,HR.Employees',
@User = 'your_ingestion_user',
@Retention = '2 DAYS';

Opções alternativas:

  • Para todas as tabelas com chave primária: @Tables = 'ALL'
  • Para esquemas específicos: @Tables = 'SCHEMAS:Sales,HR,Production'
  • Somente para configuração em nível de banco de dados (sem ativação de tabelas): @Tables = NULL

o passo 3: Habilitar captura de dados de alterações (CDC) (para tabelas sem chave primária)

CDC captura atividades de inserção, atualização e exclusão, sendo particularmente útil para tabelas sem chave primária. Esta etapa habilita CDC no nível do banco de dados, configura o gerenciamento de instâncias de captura e cria gatilhos para o tratamento automático de alterações de esquema. Para obter detalhes, consulte lakeflowSetupChangeDataCapture na referência do script de objetos utilitáriosSQL Server.

SQL
-- Enable CDC on specific tables (particularly those without primary keys)
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'Staging.ImportData,Logs.AuditTrail',
@User = 'your_ingestion_user';

Opções alternativas:

  • Para todas as tabelas: @Tables = 'ALL'
  • Para esquemas específicos: @Tables = 'SCHEMAS:Sales,HR'
  • Somente para configuração em nível de banco de dados: @Tables = NULL
nota

Você pode usar tanto o acompanhamento de mudanças quanto CDC, ou ambos. Databricks recomenda o uso do acompanhamento de alterações para tabelas com chave primária (o passo 2) e CDC para tabelas sem chave primária (o passo 3) para uma cobertura abrangente.

o passo 4: Conceder permissões adicionais (se necessário)

Este passo concede as permissões necessárias em nível de sistema e de tabela para o usuário de ingestão. Embora os passos 2 e 3 concedam permissões específicas de CT e CDC, este passo garante que o usuário tenha todas as permissões SELECT necessárias. Para obter detalhes, consulte lakeflowFixPermissions na referência do script de objetos utilitáriosSQL Server.

SQL
-- Grant system-level and table-level permissions
EXEC dbo.lakeflowFixPermissions
@User = 'your_ingestion_user',
@Tables = 'Sales.Orders,Production.Products,HR.Employees';

Opções alternativas:

  • Para todas as tabelas: @Tables = 'ALL'
  • Somente permissões do sistema: @Tables = NULL
  • Esquemas específicos: @Tables = 'SCHEMAS:Sales,HR'
nota

Os procedimentos de configuração nas etapas 2 e 3 concedem automaticamente as permissões CT e CDC necessárias, mas você pode ter que executar este procedimento para conceder permissões adicionais de nível de tabela SELECT ou se as permissões foram revogadas.

o passo 5: Verificar configuração

Execute as seguintes consultas para confirmar se o acompanhamento de alterações e CDC estão configurados corretamente em seu banco de dados e tabelas:

SQL
-- Check Change Tracking status
SELECT
d.name AS DatabaseName,
ctd.is_auto_cleanup_on,
ctd.retention_period,
ctd.retention_period_units_desc
FROM sys.change_tracking_databases ctd
INNER JOIN sys.databases d ON ctd.database_id = d.database_id
WHERE d.name = DB_NAME();

-- Check tables with Change Tracking enabled
SELECT
SCHEMA_NAME(t.schema_id) + '.' + t.name AS TableName,
ct.is_track_columns_updated_on,
ct.begin_version,
ct.cleanup_version
FROM sys.change_tracking_tables ct
INNER JOIN sys.tables t ON ct.object_id = t.object_id;

-- Check CDC status
SELECT
DB_NAME() AS DatabaseName,
is_cdc_enabled
FROM sys.databases
WHERE database_id = DB_ID();

-- Check tables with CDC enabled
SELECT
SCHEMA_NAME(t.schema_id) + '.' + t.name AS TableName,
ct.capture_instance,
ct.start_lsn,
ct.create_date
FROM cdc.change_tables ct
INNER JOIN sys.tables t ON ct.source_object_id = t.object_id;

Exemplo: Abordagem híbrida

nota

Este exemplo usa 'ALL' para habilitar CT e CDC em todas as tabelas por simplicidade. Para uso em produção, considere os cenários comuns nesta página para direcionar esquemas ou tabelas específicos.

SQL
-- Step 1: Already completed (script installed)

-- Step 2 & 3: Enable both CT and CDC
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'lakeflow_user',
@Retention = '2 DAYS';

EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'lakeflow_user';

-- Step 4: Grant all necessary permissions
EXEC dbo.lakeflowFixPermissions
@User = 'lakeflow_user',
@Tables = 'ALL';

Cenários comuns

Cenário 1: Alterar somente acompanhamento (esquemas específicos)

SQL
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,Production',
@User = 'lakeflow_user',
@Retention = '2 DAYS';

EXEC dbo.lakeflowFixPermissions
@User = 'lakeflow_user',
@Tables = 'SCHEMAS:Sales,Production';

Cenário 2: Somente CDC (tabelas específicas)

SQL
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'Staging.ImportData,Logs.AuditTrail,dbo.TempRecords',
@User = 'lakeflow_user';

EXEC dbo.lakeflowFixPermissions
@User = 'lakeflow_user',
@Tables = 'Staging.ImportData,Logs.AuditTrail,dbo.TempRecords';

Cenário 3: Abordagem híbrida (CT para alguns esquemas, CDC para tabelas específicas)

SQL
-- Enable CT on transactional schemas
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,HR',
@User = 'lakeflow_user',
@Retention = '3 DAYS';

-- Enable CDC on specific staging tables without primary keys
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'Staging.ImportData,Logs.AuditTrail',
@User = 'lakeflow_user';

-- Grant permissions on all tables
EXEC dbo.lakeflowFixPermissions
@User = 'lakeflow_user',
@Tables = 'ALL';

Recursos adicionais