En versiones anteriores de SQL Server Integration Services, si queríamos tener un control de las ejecuciones de nuestros paquetes SSIS teníamos que construir algún tipo de framework alrededor de los mismos para registrar información como el tiempo de ejecución, los fallos ocurridos, las conexiones que utilizaba el paquete que falló, etc.

[box type=”info”] Este artículo pertenece a la serie “Novedades de Integration Services en SQL 2012”. Puedes encontrar el índice de artículos al pie de este.[/box]

En SQL Server 2012 tenemos una base de datos dedicada a SSIS y, en ella, el catálogo de SSIS, un esquema que contiene tablas y procedimientos almacenados con los que interactuar de una manera más completa y consistente que en anteriores versiones. Esta nueva arquitectura permite un mejor análisis de lo que está ocurriendo en las ejecuciones de los paquetes en nuestro servidor.

Tenemos varias vías para éste análisis:

  • Consultando directamente las vistas y procedimientos presentes de manera nativa en el catálogo.
  • Utilizar el catálogo como fuente para nuestros reportes personalizados.
  • Utilizar los reportes presentes en el dashboard que SSIS nos ofrece a través de la nueva BD.

Hablaremos en este artículo sobre los dashboards de ejecución y performance que nos ofrece el servidor de Integration Services en SQL Server 2012, y en el siguiente capítulo de la serie veremos cómo explotar la información del catálogo directamente mediante consultas TSQL.

Niveles de logging

Integration Services nutre los informes presentes en el dashboard con la información que hay en el catálogo. Ésta información cambiará en parte su nivel de detalle dependiendo del nivel de logging que especifiquemos en la ejecución de nuestros paquetes. Tenemos 4 niveles:

  • None: No guardamos información acerca de la ejecución del paquete
  • Basic: Se guarda información básica (tiempos totales, informes de fallo, etc.)
  • Performance: Se guarda la información básica y además, información relacionada con el rendimiento del paquete (tiempos parciales de ejecución por componente, etc.)
  • Verbose: Se guarda absolutamente toda la información que un paquete produce (incluyendo todos los eventos: validación, ejecución, progreso, post-procesamiento, etc.)

 

Elegiremos el nivel de logging en la pestaña Advanced de la ventana de ejecución de un paquete SSIS ubicado en el servidor.

Dashboards en SQL Server Integration Services 2012
Figura 1 – Niveles de logging

 

A partir de la versión RC0 (Release Candidate 0) de SQL Server 2012 podemos elegir también el nivel de logging por defecto a nivel de servidor en las propiedades del catálogo (botón derecho sobre el catálogo –> Properties):

Dashboards en SQL Server Integration Services 2012
Figura 2 – Niveles de logging a nivel de servidor – Propiedades del catálogo SSIS

En el caso de la ejecución directa desde el catálogo (botón derecho sobre el paquete –> Execute) el nivel de logging efectivo será aquel que especifiquemos en la pestaña Advanced (Figura 1) de la interfaz de ejecución del paquete. El nivel de logging por defecto a nivel de servidor entra en acción cuando no especificamos nivel de logging a nivel de paquete (al invocar una ejecución del paquete desde el procedimiento almacenado correspondiente en el catálogo de SSIS sin concretar el nivel de logging mediante parámetros, por ejemplo)

Además, hay información que siempre se registrará independientemente del nivel de logging establecido a nivel de servidor o paquete. Por ejemplo, aquellas validaciones de paquetes que ejecutemos sobre los paquetes almacenados en el servidor haciendo clic con el botón derecho sobre el paquete –> Validate.

El dashboard de SSIS

Ahora que ya sabemos cómo modificar la información que vamos a registrar en las ejecuciones de nuestros paquetes, vamos a ver cómo podemos examinarla utilizando el dashboard de SSIS.

Haciendo clic sobre la BD dedicada de SSIS podremos elegir la opción Reports y, desde ahí, ir a la página principal del dashboard (Integration Services Dashboard) o a algún informe concreto (Standard Reports)

Dashboards en SQL Server Integration Services 2012
Figura 3 – Arrancando el dashboard

 

Seleccionamos Integration Services Dashboard para ver el dashboard principal e iremos navegando por los distintos informes desde él.

Podemos dividir el dashboard en:

Dashboards en SQL Server Integration Services 2012
Figura 4 – El dashboard de Integration Services

A) Resumen de las ejecuciones de paquetes en las últimas 24 horas (fallidos, en ejecución, con éxito, otros)

B) Enlaces al resto de los informes.

C) Información sobre las conexiones existentes en los paquetes que fallaron en las últimas 24 horas.

D) Listado detallado de los paquetes ejecutados.

Podemos así identificar de un vistazo que ha ido ocurriendo en nuestro sistema en las últimas 24 horas.

Dentro del listado detallado de ejecuciones en las últimas 24 horas podríamos ir al resumen de las ejecuciones de ese paquete (Overview):

Dashboards en SQL Server Integration Services 2012
Figura 5 – Resumen de las ejecuciones de un paquete SSIS

 

Dentro de Overview, podríamos analizar todos y cada uno de los mensajes que ha producido el paquete para esa ejecución (View Messages):

Dashboards en SQL Server Integration Services 2012
Figura 6 – Listado de todos los mensajes de un paquete SSIS

 

En la ejecución de nuestro paquete hemos especificado un nivel de logging “Verbose”, por tanto en el registro de mensajes tendremos absolutamente todos los mensajes que un paquete SSIS es capaz de producir durante su ejecución. Es decir, el equivalente a analizar el log de eventos que podemos ver en SQL Server Data Tools cuando activamos el seguimiento de todos los eventos que tiene un paquete SSIS.

Esto significa muchísimos mensajes, que sólo deberíamos analizar si queremos desentrañar qué está pasando dentro de nuestro paquete SSIS con gran detalle. En el ejemplo que aparece en este artículo el informe tiene 14 páginas de mensajes, y es un paquete sencillo, con apenas 6 componentes. Es recomendable ajustar el nivel de logging a nuestras necesidades de análisis. Si no elegimos el nivel adecuado podemos encontrarnos sin información que examinar o con un exceso de la misma que complique sobremanera la detección de las situaciones o problemas que estamos buscando.

Si vamos al informe de rendimiento (View Performance):

Dashboards en SQL Server Integration Services 2012
Figura 7 – Informe de rendimiento de un paquete SSIS (1/2)

Tendremos una gráfica que nos muestra la evolución de los tiempos de ejecución de las últimas ejecuciones de ese paquete en concreto, cuándo se ejecutó, la media de tiempo de ejecución para todas las ejecuciones registradas con su desviación típica, e incluso si miramos un poco más abajo en el informe:

Dashboards en SQL Server Integration Services 2012
Figura 8 – Informe de rendimiento de un paquete SSIS (2/2)

 

Veremos un desglose de tiempos por componente para poder analizar en detalle el rendimiento de cada uno de ellos para la ejecución seleccionada, cuál nos está provocando un cuello de botella si es que lo hay, etc. Visto de otra manera, es un resumen con un formato amigable de la información que obtendríamos del evento PipelineComponentTime, el cual podemos analizar también desde SQL Server Data Tools para nuestros paquetes SSIS mediante el log de eventos.

Volviendo a los reportes a nivel de servidor, tenemos también todas las validaciones de paquetes que se efectúen de forma explícita (botón derecho sobre el paquete en el servidor –> Validate):

Dashboards en SQL Server Integration Services 2012
Figura 9 – Informe de validaciones sobre el servidor SSIS

 

Todas las ejecuciones (no sólo de las últimas 24 horas) de paquetes en el servidor SSIS, con los enlaces de Overview, Messages y Performance disponibles y un resumen de su ejecución y su duración:

Dashboards en SQL Server Integration Services 2012
Figura 10 – Informe histórico de ejecuciones sobre el servidor SSIS

 

También todas las operaciones ejecutadas sobre el servidor, incluyendo ejecuciones, despliegues y validaciones de paquetes (All Operations):

Dashboards en SQL Server Integration Services 2012
Figura 11 – Informe histórico de operaciones sobre el servidor SSIS

 

Éste último reporte es especialmente útil desde el punto de vista de auditoría para comprobar quién y en qué momento realizó una acción concreta. Nos puede ayudar de manera significativa a controlar qué hay en nuestro servidor y quién es el responsable de los cambios, algo que en versiones anteriores era difícil de controlar cuando había más de un usuario autorizado.

Finalmente, tenemos el reporte de las conexiones utilizadas en los paquetes fallidos, para identificar rápidamente los orígenes de datos que pueden estar causándonos problemas. Es un reporte idéntico al resumen que teníamos en el apartado (D) del dashboard general (Figura 4) pero sin el filtro de las últimas 24 horas.

Conclusiones

En SQL Server 2012 tenemos la posibilidad de acceder de manera rápida y sencilla a una serie de completos reportes para tener una visión general de que está sucediendo en nuestro servidor SSIS. Además, tenemos la opción de profundizar en las ejecuciones individuales de los paquetes SSIS para analizar la razón por la que han fallado, por qué se están ejecutando más lentos de lo normal, quién ha subido la última versión al servidor, etc.

Todo esto nos ahorra una gran cantidad de trabajo, las necesidades básicas de logging y reporte de ejecuciones están cubiertas bajo el dashboard de Integration Services y los informes que podemos encontrar en él.

Aun así, al disponer de las vistas y los procedimientos almacenados del catálogo de SSIS podemos construir nuestros propios reportes o analizar mediante código TSQL los diferentes aspectos de nuestro servidor SSIS. En próximo capítulo de esta serie veremos cómo podemos consumir el catálogo para extraer la información que deseemos de manera personalizada, acorde con nuestras necesidades.

0 Shares:
1 comment
Deja una respuesta

Tu dirección de correo electrónico no será publicada.

You May Also Like
Leer más

Depurar aplicaciones contra datos de producción: ofuscación y GDPR

¿Cómo trabajas con tus bases de datos en producción? ¿Y en entornos de desarrollo? Las organizaciones manejan un enorme volumen de datos personales en sus plataformas de datos y documentos electrónicos digitalizados y físicos que custodian. El 90% de los documentos que las empresas almacenan tiene algún tipo de información de carácter personal. ¿Estás tomando las medidas adecuadas para proteger la información sensible, como exige la normativa? La ofuscación puede ayudarte a cumplir con la GDPR. En este artículo te contamos cómo.