SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
BIN-302
ETL: Logging y auditoría en SSIS

Salvador Ramos
Mentor – Business Intelligence
SQL Server MVP, MCTS, MCITP
sramos@solidq.com
Agenda
α   El día a día
α   ¿Qué ha ocurrido?
α   ¿Qué auditar?
α   Logging, auditoría y trazabilidad del dato
α   Conclusiones
El día a día
α   Diseño de procesos ETL
α   Testing
α   Puesta en producción
α   Ejecuciones periódicas
¿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
¿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 
¿Qué ha ocurrido?
Tenemos un problema
¿Qué ha ocurrido?
Tenemos un problema
¿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
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
Framework propuesto
Ejecución de paquetes - almacenamiento
Framework propuesto
Ejecución de paquetes – Inserción de filas

CREATE PROCEDURE [Config].[ExecutionLogSSIS_Insert]
         @PackageGUID             UNIQUEIDENTIFIER
       , @PackageName             VARCHAR(250)
       , @PackageCreator          VARCHAR(250)
       , @CreationDate            DATETIME
       , @VersionGUID             UNIQUEIDENTIFIER
       , @VersionBuild            INT
       , @VersionMajor            INT
       , @VersionMinor            INT
       , @VersionComments         VARCHAR(250)
       , @ExecutionGUID           UNIQUEIDENTIFIER
       , @ParentExecutionGUID     UNIQUEIDENTIFIER
       , @Computer                VARCHAR(100)
       , @User                    VARCHAR(100)
       , @Event                   CHAR(1)
       , @EventDescription        VARCHAR(100)
       , @DateExecution           DATETIME
Framework propuesto
Errores - almacenamiento
Framework propuesto
Errores - inserción de filas

CREATE PROCEDURE [Config].[ErrorLogSSIS_Insert]
         @ExecutionID      INT
       , @DateExecution    DATETIME
       , @ErrorCode        INT
       , @ErrorDescription VARCHAR(MAX)
AS
       SET NOCOUNT ON;
       BEGIN TRAN
       -- INSERT Execution
       INSERT INTO Config.ErrorLogSSIS(ExecutionID,
DateExecution, ErrorCode, ErrorDescription)
       VALUES(@ExecutionID, @DateExecution, @ErrorCode,
@ErrorDescription)
       COMMIT
GO
Framework propuesto
Orígenes y destinos - almacenamiento
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
Framework propuesto
Historial de cambios - almacenamiento
α Una tabla adicional por cada tabla a auditar
Framework propuesto y paquete de ejemplo
Framework propuesto
Almacenamiento
Framework propuesto
Y aún hay mas …
α Crear plantillas
α Crear informes

α Auditar variables del paquete
α Control de verbosidad (verbose)
 β   Hacerlo dinámico
Conclusiones
¿Qué ha ocurrido?
α Logging, auditoría y trazabilidad del dato
 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
Salvador Ramos
Mentor – Business Intelligence
     SQL Server MVP, MCTS, MCITP
          sramos@solidq.com
ETL: Logging y auditoría en SSIS
ETL: Logging y auditoría en SSIS

Más contenido relacionado

Destacado

1. limpieza y transformación de datos
1. limpieza y transformación de datos1. limpieza y transformación de datos
1. limpieza y transformación de datos
Miguel Murillo
 

Destacado (9)

Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
 
SolidQ SSIS Framework
SolidQ SSIS FrameworkSolidQ SSIS Framework
SolidQ SSIS Framework
 
Webinar: Oracle Data Integrator 12c (25-02-2015)
Webinar: Oracle Data Integrator 12c (25-02-2015)Webinar: Oracle Data Integrator 12c (25-02-2015)
Webinar: Oracle Data Integrator 12c (25-02-2015)
 
1. limpieza y transformación de datos
1. limpieza y transformación de datos1. limpieza y transformación de datos
1. limpieza y transformación de datos
 
Management in Informatica Power Center
Management in Informatica Power CenterManagement in Informatica Power Center
Management in Informatica Power Center
 
Principios de diseño para procesos de ETL
Principios de diseño para procesos de ETLPrincipios de diseño para procesos de ETL
Principios de diseño para procesos de ETL
 
Designing and implementing_an_etl_framework
Designing and implementing_an_etl_frameworkDesigning and implementing_an_etl_framework
Designing and implementing_an_etl_framework
 
Keeping Spark on Track: Productionizing Spark for ETL
Keeping Spark on Track: Productionizing Spark for ETLKeeping Spark on Track: Productionizing Spark for ETL
Keeping Spark on Track: Productionizing Spark for ETL
 
Big Data Architecture
Big Data ArchitectureBig Data Architecture
Big Data Architecture
 

Similar a ETL: Logging y auditoría en SSIS

Examen ISC
Examen ISCExamen ISC
Examen ISC
ivan mtz
 
Portabilidad y transportabilidad
Portabilidad y transportabilidadPortabilidad y transportabilidad
Portabilidad y transportabilidad
juanmanuelsalgado
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
oswchavez
 
Componentes de sql server 2008
Componentes de sql server 2008Componentes de sql server 2008
Componentes de sql server 2008
Jillian Motoharu
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
GeneXus
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
GeneXus
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
Enrique Catala Bañuls
 

Similar a ETL: Logging y auditoría en SSIS (20)

Examen ISC
Examen ISCExamen ISC
Examen ISC
 
Portabilidad y transportabilidad
Portabilidad y transportabilidadPortabilidad y transportabilidad
Portabilidad y transportabilidad
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
 
Componentes de sql server 2008
Componentes de sql server 2008Componentes de sql server 2008
Componentes de sql server 2008
 
ABI-Box
ABI-BoxABI-Box
ABI-Box
 
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
 
DB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL AvanzadoDB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL Avanzado
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
Tutorial MIneria de datos en sql server
Tutorial  MIneria de datos en sql serverTutorial  MIneria de datos en sql server
Tutorial MIneria de datos en sql server
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
 
Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Vistazo a SQL Server 2016
Vistazo a SQL Server 2016
 
Adaptive BI Framework
Adaptive BI Framework Adaptive BI Framework
Adaptive BI Framework
 
Machine Learning en SQL Server
Machine Learning en SQL ServerMachine Learning en SQL Server
Machine Learning en SQL Server
 
Optimizacion de Modelos Multidimensionales con Analysis Services
Optimizacion de Modelos Multidimensionales con Analysis ServicesOptimizacion de Modelos Multidimensionales con Analysis Services
Optimizacion de Modelos Multidimensionales con Analysis Services
 
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL Server
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 

Más de SolidQ

Más de SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
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
  • 11. Framework propuesto Ejecución de paquetes - almacenamiento
  • 12. Framework propuesto Ejecución de paquetes – Inserción de filas CREATE PROCEDURE [Config].[ExecutionLogSSIS_Insert] @PackageGUID UNIQUEIDENTIFIER , @PackageName VARCHAR(250) , @PackageCreator VARCHAR(250) , @CreationDate DATETIME , @VersionGUID UNIQUEIDENTIFIER , @VersionBuild INT , @VersionMajor INT , @VersionMinor INT , @VersionComments VARCHAR(250) , @ExecutionGUID UNIQUEIDENTIFIER , @ParentExecutionGUID UNIQUEIDENTIFIER , @Computer VARCHAR(100) , @User VARCHAR(100) , @Event CHAR(1) , @EventDescription VARCHAR(100) , @DateExecution DATETIME
  • 14. Framework propuesto Errores - inserción de filas CREATE PROCEDURE [Config].[ErrorLogSSIS_Insert] @ExecutionID INT , @DateExecution DATETIME , @ErrorCode INT , @ErrorDescription VARCHAR(MAX) AS SET NOCOUNT ON; BEGIN TRAN -- INSERT Execution INSERT INTO Config.ErrorLogSSIS(ExecutionID, DateExecution, ErrorCode, ErrorDescription) VALUES(@ExecutionID, @DateExecution, @ErrorCode, @ErrorDescription) COMMIT GO
  • 15. Framework propuesto Orígenes y destinos - almacenamiento
  • 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
  • 17. Framework propuesto Historial de cambios - almacenamiento α Una tabla adicional por cada tabla a auditar
  • 18. Framework propuesto y paquete de ejemplo
  • 20. Framework propuesto Y aún hay mas … α Crear plantillas α Crear informes α Auditar variables del paquete α Control de verbosidad (verbose) β Hacerlo dinámico
  • 21. Conclusiones ¿Qué ha ocurrido? α Logging, auditoría y trazabilidad del dato
  • 22.
  • 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
  • 24. Salvador Ramos Mentor – Business Intelligence SQL Server MVP, MCTS, MCITP sramos@solidq.com