Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Material de referencia de acceso para el script de objetos de utilidad de SQL Server, incluidos componentes, parámetros y solución de problemas.
Información general
El script instala procedimientos almacenados de utilidad y funciones versionados para configurar tu base de datos de SQL Server para el proceso de ingesta en Lakeflow Connect. Las tareas de instalación incluyen:
- Administración de permisos
- Configurar el seguimiento de cambios (CT)
- Configuración de captura de datos de cambios (CDC)
- Detección de plataformas
- Compatibilidad de DDL con la creación de objetos para el seguimiento de cambios de esquema
Información de versión
- Versión actual: 1.1
- Versión principal: 1
- Versión secundaria: 1
- Función de versión:
lakeflowUtilityVersion_1_1()
Componentes claves
Functions
lakeflowDetectPlatform()
Detecta el tipo de plataforma de SQL Server.
Devuelve: 'AZURE_SQL_DATABASE', 'AZURE_SQL_MANAGED_INSTANCE', 'AMAZON_RDS', 'ON_PREMISES'o 'UNKNOWN'
lakeflowUtilityVersion_1_1()
Detecta la versión de objetos de utilidad.
Devuelve: '1.1'
Procedimientos almacenados
lakeflowFixPermissions
Concede permisos necesarios a los usuarios para las operaciones de ingesta.
Parameters:
| Parámetro | Description |
|---|---|
@User (NVARCHAR(128)) |
Obligatorio. Nombre de usuario para conceder permisos a |
@Tables (NVARCHAR(MAX)) |
Optional. Controla el ámbito de permisos a nivel de tabla |
@Tables opciones de parámetros:
| Opción | Description |
|---|---|
NULL |
Conceder solo permisos de nivel de sistema (valor predeterminado) |
'ALL' |
Concesión de permisos en todas las tablas de usuario de la base de datos |
'SCHEMAS:Schema1,Schema2' |
Otorgar permisos en todas las tablas dentro de esquemas especificados |
'Schema.Table1,Schema.Table2' |
Otorgar permisos en tablas específicas |
| Compatibilidad con caracteres comodín | Ejemplo: 'Sales.*,HR.Employees' |
Lo que hace:
- Concesión de permisos
SELECTen las vistas del sistema requeridas (sys.objects,sys.tables,sys.columns, etc.) - Permisos
EXECUTEen procedimientos almacenados del sistema (sp_tables,sp_columns_100, etc.) - Opcionalmente concede permisos en
SELECTsobre tablas de usuario basándose en el parámetro@Tables. - Controla las diferencias específicas de la plataforma (Azure SQL Database, Instancia administrada, RDS, Local)
lakeflowSetupChangeTracking
Habilita el seguimiento de cambios en los niveles de base de datos y tablas con compatibilidad con DDL.
Parameters:
| Parámetro | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Optional. Tablas para activar CT en |
@User (NVARCHAR(128)) |
Optional. Usuario al que conceder permisos |
@Retention (NVARCHAR(50)) |
Optional. Período de retención de CT (valor predeterminado: '2 DAYS') |
@Mode (NVARCHAR(10)) |
Optional.
'INSTALL' (valor predeterminado) o 'CLEANUP' |
@Tables opciones de parámetros:
| Opción | Description |
|---|---|
NULL |
Configurar solo el soporte de CT y DDL a nivel de base de datos (sin habilitación de tablas) |
'ALL' |
Habilitar CT en todas las tablas de usuario con claves primarias |
'SCHEMAS:Schema1,Schema2' |
Habilitar CT en tablas dentro de esquemas definidos |
'Schema.Table1,Schema.Table2' |
Habilitar CT en tablas específicas |
| Compatibilidad con caracteres comodín | Ejemplo: 'Sales.*,HR.Employees' |
Lo que hace:
- Habilita el seguimiento de cambios en el nivel de base de datos si aún no está habilitado
- Crea una tabla de auditoría DDL versionada (
lakeflowDdlAudit_1_2) - Crea un desencadenador de auditoría DDL para capturar los cambios de esquema
- Habilita CT en tablas especificadas (omite tablas sin claves principales)
- Concede
VIEW CHANGE TRACKINGpermisos al usuario especificado -
CLEANUPmode: quita objetos de soporte de DDL
Comportamientos importantes:
- Omite automáticamente las tablas sin claves principales (se recomienda CDC para estas)
- Detección inteligente con el
'ALL'parámetro - Idempotente: seguro para ejecutarse varias veces
lakeflowSetupChangeDataCapture
Habilita CDC en los niveles de base de datos y tablas con compatibilidad con DDL y administración de instancias de captura.
Parameters:
| Parámetro | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Optional. Tablas para habilitar CDC en |
@User (NVARCHAR(128)) |
Optional. Usuario al que conceder permisos |
@Mode (NVARCHAR(10)) |
Optional.
'INSTALL' (valor predeterminado) o 'CLEANUP' |
@Tables opciones de parámetros:
| Opción | Description |
|---|---|
NULL |
Configurar solo la compatibilidad con CDC y DDL a nivel de base de datos |
'ALL' |
Habilitar CDC en todas las tablas de usuario |
'SCHEMAS:Schema1,Schema2' |
Habilitar CDC en tablas en esquemas especificados |
'Schema.Table1,Schema.Table2' |
Habilitar CDC en tablas específicas |
Lo que hace:
- Habilita CDC en el nivel de base de datos si aún no está habilitado
- Crea una tabla de seguimiento de instancias de captura (
lakeflowCaptureInstanceInfo_1_2) - Crea procedimientos auxiliares para la administración de instancias de captura:
lakeflowDisableOldCaptureInstance_1_2lakeflowMergeCaptureInstances_1_2lakeflowRefreshCaptureInstance_1_2
- Crea un
ALTER TABLEdesencadenador para el control automático de cambios de esquema - Habilita CDC en tablas especificadas
- Concede permisos CDC necesarios al usuario especificado.
-
CLEANUPmode: elimina todos los objetos de soporte de CDC DDL
Comportamientos importantes:
- Funciona con tablas con o sin claves principales
- Controla automáticamente la rotación de instancias de captura en los cambios de esquema.
- Idempotente: seguro para ejecutarse varias veces
Compatibilidad con plataformas
- SQL Server en las instalaciones (EngineEdition 1-4)
- Azure SQL Database (EngineEdition 5)
- Instancia administrada de Azure SQL (EngineEdition 8)
- Amazon RDS para SQL Server (detectado por el patrón de nombre de servidor)
Prerrequisitos
- El usuario que ejecuta el script debe ser miembro del
db_ownerrol - Para la configuración de CT: El seguimiento de cambios debe estar disponible en dicha plataforma
- ** Para la configuración de CDC, la captura de cambios de datos debe estar habilitada en la plataforma.
Instrucciones de instalación
Descarga y ejecución del script
Descargue el script: utility_script.sql
Ejecución del script
- Abra el script descargado en SQL Server Management Studio (SSMS), Azure Data Studio o su cliente SQL preferido.
- Conéctese a la instancia de SQL Server.
- Confirme que está conectado a la base de datos de destino donde desea instalar los objetos de utilidad.
- Ejecute el script.
Comprobación de la instalación
-- Verify installation SELECT dbo.lakeflowUtilityVersion_1_1() AS UtilityVersion; SELECT dbo.lakeflowDetectPlatform() AS Platform;
Alternativa: Ejecutar con la línea de comandos
Si prefiere usar sqlcmd:
sqlcmd -S YourServerName -d YourDatabase -E -i lakeflow_utility_objects.sql
Nota:
Reemplace YourServerName y YourDatabase por los nombres reales de servidor y base de datos. Use -U username -P password en lugar de -E si no usa la autenticación de Windows.
Ejemplo: Corrección de permisos (solo sistema)
-- Grant system permissions only
EXEC dbo.lakeflowFixPermissions
@User = 'myuser';
Ejemplo: Corrección de permisos (con acceso a tablas)
-- 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';
Ejemplos: Configuración del seguimiento de cambios
Solo a nivel de base de datos
-- Setup CT infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = NULL,
@User = 'myuser';
Habilitar en todas las tablas
-- Enable CT on all user tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
Configuración basada en esquemas
-- Enable CT on all tables in specific schemas
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,HR',
@User = 'myuser',
@Retention = '3 DAYS';
Tablas específicas
-- Enable CT on specific tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'dbo.Table1,Sales.Orders,HR.Employees',
@User = 'myuser';
Ejemplos: configuración CDC
Solo a nivel de base de datos
-- Setup CDC infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = NULL,
@User = 'myuser';
Habilitar en todas las tablas
-- Enable CDC on all user tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Tablas específicas
-- Enable CDC on specific tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'dbo.Table1,Sales.Orders',
@User = 'myuser';
Ejemplo: Enfoque híbrido
-- 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';
Ejemplo: Limpieza
-- Remove CT DDL support objects
EXEC dbo.lakeflowSetupChangeTracking
@Mode = 'CLEANUP';
-- Remove CDC DDL support objects
EXEC dbo.lakeflowSetupChangeDataCapture
@Mode = 'CLEANUP';
Objetos de compatibilidad con DDL creados
Se crean los siguientes objetos de soporte DDL, en función de si utiliza el seguimiento de cambios o CDC.
Para el seguimiento de cambios
| Tipo de objeto | Nombre | Description |
|---|---|---|
| Table | lakeflowDdlAudit_1_2 |
Almacena el historial de cambios de DDL. |
| Trigger | lakeflowDdlAuditTrigger_1_2 |
Captura eventos ALTER TABLE |
Para CDC
| Tipo de objeto | Nombre | Description |
|---|---|---|
| Table | lakeflowCaptureInstanceInfo_1_2 |
Realiza un seguimiento de las instancias de captura |
| Procedimiento | lakeflowDisableOldCaptureInstance_1_2 |
Quita la instancia de captura antigua. |
| Procedimiento | lakeflowMergeCaptureInstances_1_2 |
Combina datos entre instancias |
| Procedimiento | lakeflowRefreshCaptureInstance_1_2 |
Crea una nueva instancia de captura. |
| Trigger | lakeflowAlterTableTrigger_1_2 |
Gestiona los cambios de esquema. |
Limitaciones del seguimiento de cambios
- Requiere claves principales: las tablas sin claves principales no pueden usar el seguimiento de cambios.
- El script omite automáticamente las tablas sin PKs y recomienda usar CDC como alternativa.
Comportamiento específico de la plataforma
- Azure SQL Database: los procedimientos almacenados del sistema son accesibles de forma predeterminada (sin
EXECUTEconcesiones necesarias). - Vistas con ámbito de servidor: acceso limitado en Azure SQL Database para vistas como
sys.change_tracking_databases.
Ruta de actualización
- El script quita automáticamente todas las versiones anteriores cuando se ejecuta.
- Esquema de control de versiones:
objectName_majorVersion_minorVersion - Los objetos actuales usan
_1_1sufijo para el seguimiento de versiones.
procedimientos recomendados
- Ejecute siempre como
db_ownero un usuario con privilegios equivalentes. - Pruebe primero en bases de datos que no son de producción.
- Use el enfoque híbrido para una cobertura completa.
- Ejecute
lakeflowFixPermissionsdespués de la instalación para garantizar el acceso adecuado al usuario. - Considere los períodos de retención en función de la frecuencia de ingesta.
Solución de problemas
"El usuario que ejecuta este script no es un miembro de rol "db_owner"
Solución: Ejecutar como usuario con db_owner rol
"El seguimiento de cambios no está habilitado en el catálogo"
Solución: habilite CT en el nivel de base de datos o deje que el procedimiento lo controle automáticamente.
"La captura de datos modificados no está habilitada en el catálogo"
Solución: habilite CDC en el nivel de base de datos o permita que el procedimiento lo controle automáticamente.
"Tablas omitidas debido a la falta de claves principales"
Solución: use lakeflowSetupChangeDataCapture en su lugar para estas tablas.
Integración de validación
El marco de validación de Java valida los siguientes objetos de utilidad:
| Objeto | Description |
|---|---|
SqlServerUtilityObjectsSetupValidator |
Valida la instalación de objetos de utilidad |
SqlServerChangeDataManagementSetupValidator |
Valida la configuración de CT/CDC. |
SqlServerDdlSupportObjectsSetupValidator |
Valida los objetos de compatibilidad con DDL. |
SqlServerPermissionsSetupValidator |
Valida los permisos. |
Notas de migración
Si la actualización desde versiones anteriores de DDL admite objetos (era de objetos anteriores a la utilidad):
- El script limpia automáticamente los objetos heredados.
- No se requiere ninguna limpieza manual.
- La versión 1.1 consolida toda la funcionalidad en procedimientos unificados.
Recursos adicionales
- Preparación de SQL Server para la ingesta mediante el script de objetos de utilidad
- Configuración de Microsoft SQL Server para la ingesta en Azure Databricks
- Requisitos de usuario de base de datos de Microsoft SQL Server
- Seguimiento de los cambios de datos (SQL Server) en la documentación de SQL Server
- Acerca de Change Tracking (SQL Server) en la documentación de SQL Server
- ¿Qué es la captura de datos modificados (CDC)? en la documentación de SQL Server