Breaking

Post Top Ad

Your Ad Spot

domingo, 15 de diciembre de 2019

Una descripción general de SSIS Pivot y SSIS Unpivot Transformations

Este artículo explora una transformación SSIS Pivot y una transformación SSIS Unpivot para crear tablas de datos Pivot y Unpivot.

Introducción

Las tablas dinámicas son una característica accesible y útil para fines de análisis de datos en Microsoft Excel. Es una herramienta de informes en las hojas de Excel para calcular, analizar y resumir datos. También obtiene comparaciones de datos, tendencias de los datos de origen.
En la siguiente imagen, podemos ver las conversiones de datos Pivot y Unpivot:
Ejemplo PIVOT
  • Pivote : convierte datos de filas individuales en datos de columnas separadas
  • Unpivot : realiza la conversión inversa de datos de datos Pivot. Obtenemos los datos reales después de Unpivot
SQL Server proporciona funciones SQL PIVOT y SQL UNPIVOT en T-SQL. Puede leer más sobre estas funciones en la descripción general del operador relacional Pivot y Unpivot de SQL estático y dinámico .
Como se explicó en artículos anteriores de SSIS sobre SQLShack, SSIS es un componente amigable que puede usar para realizar transformaciones complejas con pocos pasos. No requiere un amplio conocimiento de programación. En este artículo, aprenderemos transformaciones Pivot y Unpivot usando el paquete SSIS.

Requisito previo para la transformación de pivote SSIS

Base de datos de muestra - AdventureWorks

Para este artículo, estoy usando la siguiente base de datos de ejemplo AdventureWorks.
Data de muestra

Visual Studio 2019

En este artículo, estoy usando las herramientas de datos de SQL Server en Visual Studio 2019. Es una nueva versión de Visual Studio y ha sufrido muchos cambios. Puede consultar los documentos de Microsoft para ver los cambios en SSDT y descargar el instalador.

Configuración de Visual Studio 2019 para proyectos de Integration Service

Visual Studio 2019
Tengamos un resumen rápido de la creación de un paquete SSIS en Visual Studio 2019. Haga clic en Continuar sin código :
Lanzamiento de Visual Studio 2019
Lanza el Microsoft Visual Studio. Haga clic en Extensiones seguido de Administrar extensiones :
Extensiones en Visual Studio 2019
Busque Integration Services y muestra las extensiones disponibles:
Buscar servicios de integración
Haga clic en Descargar delante de Proyectos de servicios de integración de SQL Server . Comienza a descargar los paquetes necesarios en el navegador web predeterminado:
Descargar proyectos de servicios de integración de servidores
Ejecute el instalador ejecutable e inicia la configuración de SSDT para Visual Studio. Seleccione el idioma del instalador:
Selección de idioma
Haga clic en Aceptar y seleccione la versión de Visual Studio. Si tiene instaladas varias versiones de Visual Studio, seleccione la versión adecuada:
Seleccione la versión de Visual Studio
Haga clic en Instalar y completará los proyectos del Servicio de integración de SQL Server en unos minutos, según las especificaciones de la máquina. Se requiere reiniciar el sistema después de una instalación exitosa.

Configure un paquete SSIS para la transformación de pivote SSIS

Inicie Visual Studio 2019 y haga clic en Archivo  >  Nuevo  >  Proyecto  en la barra de menú o haciendo clic en el botón  Nuevo proyecto  en la barra de herramientas. Abre plantillas de proyecto. Haga clic en Proyecto de servicio de integración :
Lanzar proyecto de Integration Services
Especifique el nombre del proyecto y la ubicación de almacenamiento. Haga clic en la casilla de verificación Colocar solución y proyecto en el mismo directorio y Crear :
Configurar el proyecto
Crea la solución del proyecto para SSIS Pivot Transformation y lanza la página predeterminada de Visual Studio 2019:
Página por defecto
Arrastre y suelte la Tarea de flujo de datos desde la caja de herramientas SSIS, como se muestra a continuación:
Arrastrar y soltar Tarea de flujo de datos
Haga clic con el botón derecho en Tarea de flujo de datos y cámbiele el nombre a PIVOT Transformations:
Renombrar la tarea
Haga doble clic en él y se abrirá la pestaña de flujo de datos.
Arrastre y suelte los siguientes componentes desde la caja de herramientas SSIS en el área de flujo de datos:
  • Fuente OLE DB
  • Transformación de pivote
Agregar una transformación dinámica
Haga doble clic en Fuente OLE DB y en la ventana del editor, realice las siguientes configuraciones:
Editor de fuente OLE DB
  1. Administradores de conexión OLE DB : especifique una nueva conexión o seleccione una conexión existente a una instancia SQL
  2. Modo de acceso a datos : seleccione el modo de acceso a datos como comando SQL, ya que utilizaremos la instrucción select especificada anteriormente
  3. Texto de comando SQL : especifique la instrucción select para recuperar los registros. Usaremos el resultado de esta consulta en la operación Pivot
Ahora, arrastre la flecha desde el origen OLE DB a la transformación de pivote SSIS :
editor de transformación pivote
Haga doble clic en Pivot y se abrirá la edición del editor de transformación de pivote:
Opciones de configuración de pivote
Nota : Es posible que obtenga una transformación dinámica ligeramente diferente en una versión diferente de SSIS. Siempre prefiero usar la última versión
  1. Establecer clave : en esta sección, especificamos la columna para los valores de la columna izquierda. Use la columna [Nombre] en la clave de clasificación de nuestros datos de muestra
  2. Clave dinámica : especifica la columna que usamos para la fila de encabezado en la tabla dinámica. Usamos la columna [OrderYear] en la clave dinámica
  3. Valor de pivote : especifica la columna para los valores de la tabla aparte del encabezado y dejó la columna. Utilice la columna [OrderQuantity] en el valor Pivot
  4. Ignorar los valores de clave dinámica no coincidentes e informarlos después de la ejecución de DataFlow : podemos usar esta opción para ignorar los valores de clave dinámica no coincidentes. Informa todos los valores clave de pivote en los registros
Especificar las entradas en Pivot
Como se destaca en la captura de pantalla anterior, proporciona una pista para ejecutar el flujo de datos en el depurador y copiar los valores en esta ventana.
Haga clic en Aceptar y agregue un operador de multidifusión SSIS. También podemos agregar un destino OLE DB, pero para esta demostración, agregaremos un operador de multidifusión y veremos los datos de Pivot:
agregue un operador de multidifusión SSIS.
Haga clic derecho en el conector entre Pivot y el operador Multicast . Haga clic en Activar visor de datos para que podamos ver los datos dinámicos:
Habilitar visor de datos
Ejecute el paquete SSIS Pivot Transformation. En la barra de progreso, puede ver los valores de pivote [2005], [2006], [2007], [2008] como se muestra a continuación:
Valores de pivote
Haga clic derecho en esta línea y copie el mensaje:
Copiar texto del mensaje
Detener la depuración del paquete (Shift + F5):
Detener la depuración de paquetes
Pegue los valores del mensaje en la sección resaltada. También podemos escribir en este cuadro, pero si tenemos una gran cantidad de valores, es una buena idea copiarlos desde la barra de progreso. Ahorra esfuerzos manuales y tiempo también:
generar columnas de salida pivote
Haga clic en Generar columnas ahora y aparecerá el siguiente mensaje sobre los resultados de la columna de salida:
Resultados de salida de columna
Haga clic en Aceptar y podrá ver estas columnas en las columnas de salida pivotantes existentes como se muestra a continuación:
Salida pivotada existente
Ejecute el paquete y podrá ver los datos dinámicos desde la ventana del visor de datos:
Ver datos dinámicos mediante la transformación dinámica de SSIS
En la siguiente sección, también usaremos la transformación SSIS Unpivot. Usemos un destino OLE DB y agreguemos los datos dinámicos en una tabla SQL.
Arrastre el Destino OLE DB desde la caja de herramientas SSIS:
Arrastre un destino OLE DB
En el destino, especifique el nombre de la tabla para los datos dinámicos junto con la conexión de instancia de SQL:
Editor de destino OLE DB
Haga clic en Asignaciones y verifique la asignación entre las columnas de origen y destino:
Verificar el mapeo de origen y destino
Haga clic en Aceptar y ejecute el paquete. Verifique los datos dinámicos en la tabla SQL:
Verificar datos de pivote

SSIS Unpivot Transformation

A veces obtenemos datos de Pivot, y necesitamos obtener los datos originales. Requerimos realizar la transformación de pivote inverso. También lo llamamos transformación Unpivot.
En el nuevo paquete SSIS, arrastre el origen OLE DB y la transformación Unpivot.
Configure la fuente OLE DB para la tabla SQL en la que insertamos los datos dinámicos en la sección anterior:
Transformación de SSIS Unpivot
Haga doble clic en Unpivot y configúrelo:
Editor de transformación Unpivot
  1. Columnas de entrada disponibles: en esta columna, seleccionamos las columnas para Unpivot. También puede observar una columna Pass-Through. Haga clic en Pass-Through para las columnas restantes. Si no hacemos clic en la casilla de verificación Pass-through, esa columna no estará disponible en el destino.
    En este ejemplo, seleccionamos C_2005_OrderQuantity, C_2006_OrderQuantity, C_2007_OrderQuantity, C_2008_OrderQuantity como columnas de entrada disponibles y Name como columna de paso
  2. Columna de entrada: una  vez que seleccionamos cualquier columna en las columnas de entrada disponibles, aparece automáticamente como una columna de entrada
  3. Columna de destino: especifique la columna de destino que almacenará los valores
  4. Valor de clave dinámica: aquí, especificamos el valor de clave dinámica. Debería ser similar a la clave Pivot que utilizamos en la transformación Pivot. Por defecto, toma un valor similar de entrada y columnas de clave dinámica
  5. Nombre de columna de valor de clave dinámica: podemos especificar el nombre de columna para la clave dinámica según nuestro requisito
En la siguiente captura de pantalla, podemos ver las columnas de entrada y pivote de clave-valor:
Configuración de univivot
Realice los cambios según la siguiente captura de pantalla:
Especificar entradas
Nombre de columna de valor de clave dinámica: en nuestros datos originales, debe aparecer como el año, por lo tanto, lo cambia al año respectivo. Por ejemplo, cambie c_2005_OrderQuantity a 2005.
Agregue una transformación de multidifusión SSIS y habilite el visor de datos entre Unpivot y la conexión de multidifusión. El paquete SSIS de transformación SSIS Upivot se parece a la siguiente captura de pantalla:
Configuración SSIS
Ejecute el paquete SSIS y verifique los datos. Podemos ver los datos originales (Unpivot) en el visor de datos:
Verifique los datos de Unpivot utilizando la transformación SSIS Unpivot
Puede notar que Unpivot convierte 266 filas en 613 filas. Es opuesto a la transformación de pivote en la que vimos la conversión de 613 filas en 266 filas.

Conclusión


En este artículo, exploramos la transformación de SSIS Pivot y las transformaciones de SSIS Unpivot para preparar los datos de Pivot y Unpivot. Podemos usar fácilmente estas transformaciones sin ningún conocimiento complejo de T-SQL.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas