ETL: Logging y auditoría en SSIS

Post on 30-Jun-2015

934 views 13 download

description

Cuando cargamos nuestros datos ¿como aseguramos que nuestros paquetes están ejecutándose correctamente sin dar errores? ¿como los configuro? ¿que es recomendable auditar y que no?

Transcript of ETL: Logging y auditoría en SSIS

ETL: Logging y auditoría en SSIS

Salvador Ramos

BIN-302

Mentor – Business Intelligence SQL Server MVP, MCTS, MCITP

sramos@solidq.com

α El día a día

α ¿Qué ha ocurrido?

α ¿Qué auditar?

α Logging, auditoría y trazabilidad del dato

α Conclusiones

Agenda

α Diseño de procesos ETL

α Testing

α Puesta en producción

α Ejecuciones periódicas

El día a día

α 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? Error de ejecución del paquete

α 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? Los datos no cuadran

¿Qué ha ocurrido? Tenemos un problema

¿Qué ha ocurrido? Tenemos un problema

α 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

¿Hay solución?

α 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 ¿Qué vamos a auditar?

Framework propuesto Ejecución de paquetes - almacenamiento

Framework propuesto

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

AS

Ejecución de paquetes – Inserción de filas

Framework propuesto Errores - almacenamiento

Framework propuesto

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

Errores - inserción de filas

Framework propuesto Orígenes y destinos - almacenamiento

Framework propuesto

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

Orígenes y destinos - inserción de filas

α Una tabla adicional por cada tabla a auditar

Framework propuesto Historial de cambios - almacenamiento

Framework propuesto y paquete de ejemplo

Framework propuesto Almacenamiento

α Crear plantillas

α Crear informes

α Auditar variables del paquete

α Control de verbosidad (verbose) β Hacerlo dinámico

Framework propuesto Y aún hay mas …

α Logging, auditoría y trazabilidad del dato

Conclusiones ¿Qué ha ocurrido?

No olvideis rellenar las evaluaciones en el Portal

del Summit!

Nos encontrareis en la zona de exposición en los

siguientes horarios

Salvador Ramos

SQL Server MVP, MCTS, MCITP

α El miércoles por la tarde a la hora del café

α En cualquier descanso

sramos@solidq.com

Mentor – Business Intelligence

Salvador Ramos

SQL Server MVP, MCTS, MCITP

sramos@solidq.com

Mentor – Business Intelligence