Este documento describe un marco para el registro y auditoría de paquetes SSIS. Propone almacenar detalles de ejecuciones de paquetes, errores, orígenes y destinos de datos, e historial de cambios en tablas de base de datos. Esto permitiría auditar procesos ETL, identificar errores, y rastrear datos desde su origen hasta el destino.
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
ETL: Logging y auditoría en SSIS
1.
2. BIN-302
ETL: Logging y auditoría en SSIS
Salvador Ramos
Mentor – Business Intelligence
SQL Server MVP, MCTS, MCITP
sramos@solidq.com
3. Agenda
α El día a día
α ¿Qué ha ocurrido?
α ¿Qué auditar?
α Logging, auditoría y trazabilidad del dato
α Conclusiones
4. El día a día
α Diseño de procesos ETL
α Testing
α Puesta en producción
α Ejecuciones periódicas
5. ¿Qué ha ocurrido?
Error de ejecución del paquete
α Sólo tengo un mensaje de error
α No sé …
β qué ha ocurrido antes del error
β qué ha ocasionado el error
β desde donde relanzar el proceso
β qué datos se han actualizado
β si son coherentes mis datos tras el error
6. ¿Qué ha ocurrido?
Los datos no cuadran
α La aplicación me dice que vendimos 20.000 y el BI 20.500
α Informes, con los mismos parámetros y sacados en fechas
diferentes, muestran datos diferentes
α No consigo reproducirlo
9. ¿Hay solución?
α El Logging de SSIS es necesario, pero no suficiente
α Además necesitamos:
β Auditar procesos con detalle
β Registrar cambios
β Trazabilidad del dato desde el origen al destino
10. Framework propuesto
¿Qué vamos a auditar?
α Ejecuciones de paquetes
β Paquetes y versiones
β Inicio , Checkpoints, Fin
α Errores de ejecución
α Orígenes y destinos
β Fuentes de datos
β Detalle de sentencias ejecutadas
α Filas afectadas
β Id de ejecución del paquete
β Cambios realizados
16. Framework propuesto
Orígenes y destinos - inserción de filas
CREATE PROCEDURE
[Config].[ExecutionLogSSIS_SourceDest_Insert]
@ExecutionID INT
, @Type TINYINT -- Origen o Destino
, @SourceType TINYINT
, @Description VARCHAR(MAX)
, @Rows INT
AS
SET NOCOUNT ON;
BEGIN TRAN
-- INSERT SourceDest
INSERT INTO Config.ExecutionLogSSIS_SourceDest
(ExecutionID, [Type], SourceType, [Description], [Rows])
VALUES(@ExecutionID, @Type, @SourceType,
@Description, @Rows)
COMMIT
GO
20. Framework propuesto
Y aún hay mas …
α Crear plantillas
α Crear informes
α Auditar variables del paquete
α Control de verbosidad (verbose)
β Hacerlo dinámico
23. No olvideis rellenar las evaluaciones en el Portal
del Summit!
Nos encontrareis en la zona de exposición en los
siguientes horarios
α El miércoles por la tarde a la hora del café
α En cualquier descanso
Salvador Ramos
Mentor – Business Intelligence
SQL Server MVP, MCTS, MCITP
sramos@solidq.com