Referência de script de objetos utilitáriosSQL Server
Acesse o material de referência para o script de objetos utilitários SQL Server , incluindo componentes, parâmetros e solução de problemas.
Visão geral
O script instala utilitários versionados, procedimentos armazenados e funções para configurar seu banco de dados SQL Server para ingestão no LakeFlow Connect. As tarefas de configuração incluem:
- Gestão de permissões
- Alterar configuração de envio (CT)
- captura de dados de alterações (CDC) (CDC) setup
- Detecção de plataforma
- Suporte a DDL para criação de objetos para alteração de esquema
Informações da versão
- Versão atual: 1.1
- Versão principal: 1
- Versão secundária: 1
- Função de versão:
lakeflowUtilityVersion_1_1()
componentes principais
Funções
lakeflowDetectPlatform()
Detecta o tipo de plataforma do SQL Server.
Retorna: 'AZURE_SQL_DATABASE', 'AZURE_SQL_MANAGED_INSTANCE', 'AMAZON_RDS', 'ON_PREMISES', ou 'UNKNOWN'
lakeflowUtilityVersion_1_1()
Detecta a versão dos objetos russos.
Devoluções: '1.1'
Procedimentos armazenados
lakeflowFixPermissions
Concede as permissões necessárias aos usuários para operações de ingestão.
Parâmetros:
Parâmetro | Descrição |
|---|---|
| Obrigatório. Nome de usuário ao qual conceder permissões |
| Opcional. Controla o escopo de permissões em nível de tabela. |
@Tables opções de parâmetros:
Opção | Descrição |
|---|---|
| Conceder apenas permissões de nível de sistema (default) |
| Conceda permissões em todas as tabelas de usuários no banco de dados. |
| Conceder permissões em todas as tabelas nos esquemas especificados. |
| Conceder permissões em tabelas específicas |
Suporte a curingas | Exemplo: |
O que faz:
- Concede
SELECTna visão de sistema necessária (sys.objects,sys.tables,sys.columns, etc.) - Concede
EXECUTEem procedimentos armazenados do sistema (sp_tables,sp_columns_100, etc.) - Opcionalmente, concede
SELECTem tabelas de usuários com base no parâmetro@Tables. - Lida com diferenças específicas da plataforma (Banco de Dados SQL Azure , instância gerenciada, RDS, local).
lakeflowSetupChangeTracking
Permite o acompanhamento de alterações nos níveis de banco de dados e tabela com suporte a DDL.
Parâmetros:
Parâmetro | Descrição |
|---|---|
| Opcional. Tabelas para habilitar a TC em |
| Opcional. O usuário deverá conceder permissões a |
| Opcional. Período de retenção CT (default: |
| Opcional. |
@Tables opções de parâmetros:
Opção | Descrição |
|---|---|
| Configurar suporte apenas para CT e DDL em nível de banco de dados (sem habilitar tabelas). |
| Habilite o CT em todas as tabelas de usuários com chave primária. |
| Ativar CT em tabelas nos esquemas especificados |
| Habilitar CT em tabelas específicas |
Suporte a curingas | Exemplo: |
O que faz:
- Permite alterar o acompanhamento no nível do banco de dados, caso ainda não esteja ativado.
- Cria uma tabela de auditoria DDL versionada (
lakeflowDdlAudit_1_2) - Cria um gatilho de auditoria DDL para capturar alterações de esquema.
- Habilita o CT em tabelas específicas (ignora tabelas sem chave primária).
- Concede permissões
VIEW CHANGE TRACKINGao usuário especificado. CLEANUPmodo: Remove objetos de suporte DDL
Comportamentos importantes:
- Ignora automaticamente tabelas sem chave primária (CDC é recomendado para esses casos).
- Descoberta inteligente com o parâmetro
'ALL' - Idempotente: Seguro para execução múltiplas vezes
lakeflowSetupChangeDataCapture
Habilita a captura de erros de captura (CDC) nos níveis de banco de dados e tabela, com suporte a DDL e gerenciamento de instâncias de captura.
Parâmetros:
Parâmetro | Descrição |
|---|---|
| Opcional. Tabelas para habilitar o CDC em |
| Opcional. O usuário deverá conceder permissões a |
| Opcional. |
@Tables opções de parâmetros:
Opção | Descrição |
|---|---|
| Configure o suporte a CDC e DDL somente no nível do banco de dados. |
| Ative o CDC em todas as tabelas de usuários. |
| Habilitar CDC em tabelas nos esquemas especificados |
| Habilitar o CDC em tabelas específicas |
O que faz:
-
Habilita o CDC no nível do banco de dados, caso ainda não esteja habilitado.
-
Cria uma tabela de acompanhamento da instância de captura (
lakeflowCaptureInstanceInfo_1_2) -
Cria procedimentos auxiliares para o gerenciamento de instâncias de captura:
lakeflowDisableOldCaptureInstance_1_2lakeflowMergeCaptureInstances_1_2lakeflowRefreshCaptureInstance_1_2
-
Cria um gatilho
ALTER TABLEpara o tratamento automático de alterações de esquema. -
Habilita o CDC em tabelas específicas.
-
Concede as permissões necessárias do CDC ao usuário especificado.
-
CLEANUPmodo: Remove todos os objetos de suporte DDL do CDC
Comportamentos importantes:
- Funciona com tabelas com ou sem chave primária.
- Gerencia automaticamente a rotação da instância de captura em caso de alterações de esquema.
- Idempotente: Seguro para execução múltiplas vezes
Suporte da plataforma
- SQL Server local (EngineEdition 1-4)
- Banco de Dados SQL do Azure (EngineEdition 5)
- Instância de gerenciamento Azure SQL (EngineEdition 8)
- Amazon RDS para SQL Server (detectado pelo padrão do nome do servidor)
Pré-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
Instruções de instalação
baixe e execute o script
-
Baixe o roteiro
baixar
lakeflow_utility_objects.sqlde [URL A SER DETERMINADA] -
execução do roteiro
- Abra o script de downloads no SQL Server Management Studio (SSMS), Azure Data Studio ou no seu cliente SQL preferido.
- Conecte-se à sua instância do SQL Server.
- Confirme se você está conectado ao banco de dados de destino onde deseja instalar os objetos utilitários.
- execução do roteiro.
-
Verifique a instalação
SQL-- Verify installation
SELECT dbo.lakeflowUtilityVersion_1_1() AS UtilityVersion;
SELECT dbo.lakeflowDetectPlatform() AS Platform;
Alternativa: execução usando a linha de comando
Se preferir usar sqlcmd:
sqlcmd -S YourServerName -d YourDatabase -E -i lakeflow_utility_objects.sql
Substitua YourServerName e YourDatabase pelos nomes reais do seu servidor e banco de dados. Use -U username -P password em vez de -E se não estiver usando autenticação do Windows.
Exemplo: Corrigir permissões (somente do sistema)
-- Grant system permissions only
EXEC dbo.lakeflowFixPermissions
@User = 'myuser';
Exemplo: Corrigir permissões (com acesso à tabela)
-- Grant system permissions plus access to all tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'ALL';
-- Grant permissions for specific schemas
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'SCHEMAS:Sales,HR,Production';
-- Grant permissions for specific tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'Sales.Orders,HR.Employees';
Exemplos: Alterar configuração de envio
Somente em nível de banco de dados
-- Setup CT infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = NULL,
@User = 'myuser';
Ativar em todas as tabelas
-- Enable CT on all user tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
Configuração baseada em esquema
-- Enable CT on all tables in specific schemas
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,HR',
@User = 'myuser',
@Retention = '3 DAYS';
Tabelas específicas
-- Enable CT on specific tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'dbo.Table1,Sales.Orders,HR.Employees',
@User = 'myuser';
Exemplos: Configuração do CDC
Somente em nível de banco de dados
-- Setup CDC infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = NULL,
@User = 'myuser';
Ativar em todas as tabelas
-- Enable CDC on all user tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Tabelas específicas
-- Enable CDC on specific tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'dbo.Table1,Sales.Orders',
@User = 'myuser';
Exemplo: Abordagem híbrida
-- Step 1: Enable CT on tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
-- Step 2: Enable CDC on remaining tables (without primary keys)
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Exemplo: Limpeza
-- Remove CT DDL support objects
EXEC dbo.lakeflowSetupChangeTracking
@Mode = 'CLEANUP';
-- Remove CDC DDL support objects
EXEC dbo.lakeflowSetupChangeDataCapture
@Mode = 'CLEANUP';
Objetos de suporte DDL criados
Os seguintes objetos de suporte DDL são criados, dependendo se você usa acompanhamento de alterações ou CDC.
Para alterar a reprodução
Tipo de objeto | Nome | Descrição |
|---|---|---|
Tabela |
| História de alteração de DDL das lojas |
Trigger |
| Captura eventos |
Para o CDC
Tipo de objeto | Nome | Descrição |
|---|---|---|
Tabela |
| As faixas capturam instâncias |
Procedimento |
| Remove a instância de captura antiga |
Procedimento |
| mesclar dados entre instâncias |
Procedimento |
| Cria uma nova instância de captura. |
Trigger |
| Lida com alterações de esquema |
Alterar limitações de envio
- Requer chave primária: Tabelas sem chave primária não podem usar acompanhamento de alterações.
- O script ignora automaticamente tabelas sem chaves primárias e recomenda o uso do CDC em vez disso.
Comportamento específico da plataforma
- Banco de Dados SQL Azure : os procedimentos armazenados do sistema são acessíveis por default (nenhuma concessão
EXECUTEé necessária). - Exibição com escopo de servidor: Acesso limitado no Banco de Dados SQL Azure para exibição como
sys.change_tracking_databases.
Caminho de atualização
- O script descarta automaticamente todas as versões anteriores ao ser executado.
- Esquema de versionamento:
objectName_majorVersion_minorVersion - Os objetos atuais utilizam o sufixo
_1_1para acompanhamento de versão.
Melhores práticas
- Sempre execução como
db_ownerou um usuário com privilégios equivalentes. - Teste primeiro em bancos de dados que não sejam de produção.
- Utilize a abordagem híbrida para uma cobertura abrangente.
- execução
lakeflowFixPermissionsapós a configuração para garantir o acesso adequado do usuário. - Considere os períodos de retenção com base na frequência de ingestão.
Solução de problemas
"O usuário que executa este script não é membro da função 'db_owner'"
soluções : Execute como um usuário com função db_owner
"Alterar conforme necessário não está habilitado no catálogo"
Soluções : Habilite o CT no nível do banco de dados ou deixe o procedimento lidar com ele automaticamente.
"A captura de dados de alterações (CDC) não está habilitada no catálogo"
Soluções : Habilite CDC no nível do banco de dados ou deixe o procedimento lidar com isso automaticamente.
"Tabelas ignoradas devido à ausência da chave primária"
soluções : Use lakeflowSetupChangeDataCapture para estas tabelas em vez disso
Integração de validação
Os seguintes objetos utilitários são validados pela estrutura de validação Java :
Objeto | Descrição |
|---|---|
| Valida a instalação de objetos de utilidades |
| Valida a configuração CT/CDC |
| Valida objetos de suporte DDL |
| Valida permissões |
Notas sobre migração
Se estiver atualizando de versões antigas de objetos de suporte DDL (era pré-objetos utilitários):
- O script limpa automaticamente os objetos legados.
- Não é necessária limpeza manual.
- A versão 1.1 consolida todas as funcionalidades em procedimentos unificados.
Recursos adicionais
- Prepare SQL Server para ingestão usando o script de objetos utilitários.
- Configure o Microsoft SQL Server para ingestão de dados no Databricks.
- Requisitos do usuário do banco de dados Microsoft SQL Server
- Rastrear alterações de dados (SQL Server) na documentação do SQL Server
- Sobre a alteração de acompanhamento (SQL Server) na documentação SQL Server
- O que é captura de dados de alterações (CDC) (CDC)? na documentação SQL Server