Transformación de pivote

Se aplica a:SQL Server SSIS Integration Runtime en Azure Data Factory

La transformación de tabla dinámica convierte un conjunto de datos normalizado en una versión menos normalizada pero más compacta al pivotar los datos de entrada a partir de los valores de una columna. Por ejemplo, un conjunto de datos Orders normalizado que enumera el nombre del cliente, el producto y la cantidad comprada normalmente tiene varias filas para cualquier cliente que compró varios productos, donde cada fila para ese cliente muestra los detalles de pedido de un producto diferente. Al pivotar el conjunto de datos sobre la columna de producto, la transformación Pivot puede generar un conjunto de datos con una sola fila por cliente. Esa única fila enumera todas las compras realizadas por el cliente, con los nombres de los productos representados como nombres de columnas, y la cantidad indicada como un valor en la columna de producto. Dado que no todos los clientes compran todos los productos, muchas columnas pueden contener valores NULL.

Cuando se dinamiza un conjunto de datos, las columnas de entrada ejecutan diferentes roles en el proceso de dinamización. Una columna puede participar de las siguientes maneras:

  • La columna se pasa sin cambios a la salida. Dado que varias filas de entrada pueden obtener una sola fila de salida, la transformación copia solamente el primer valor de entrada para la columna.

  • La columna funciona como la clave o parte de la clave que identifica un conjunto de registros.

  • La columna define el pivote. Los valores de esta columna se asocian con columnas en el conjunto de datos dinamizado.

  • La columna contiene valores que se colocan en las columnas que crea la tabla dinámica.

Esta transformación tiene una entrada, una salida normal y una salida de error.

Ordenar y duplicar filas

Para pivotar los datos de forma eficiente, lo que significa crear el menor número posible de registros en el conjunto de datos de salida, los datos de entrada deben estar ordenados por la columna de pivotación. Si los datos no están ordenados, la transformación Pivot puede generar varios registros para cada valor de la clave del conjunto, que es la columna que define la pertenencia al conjunto. Por ejemplo, si un conjunto de datos se dinamiza en una columna Name pero los nombres no se ordenan, el conjunto de datos de salida puede tener más de una fila para cada cliente, porque se produce una dinamización cada vez que cambia el valor de Name .

Los datos de entrada pueden contener filas duplicadas, que darán lugar a que no funcione la transformación Dinamización. "Filas duplicadas" se refiere a las filas que tienen los mismos valores en las columnas clave del conjunto y en las columnas de pivote. Para evitar este error, puede configurar la transformación para que redirija las filas que causan el error hacia una salida de error, o bien agregar previamente valores para garantizar que no haya filas duplicadas.

Opciones del cuadro de diálogo de tabla dinámica

Configure la operación de dinamizar, para lo cual se configuran las opciones en el cuadro de diálogo Dinamización . Para abrir el cuadro de diálogo Pivot, agregue la transformación Pivot al paquete en SQL Server Data Tools (SSDT) y, después, haga clic con el botón derecho en el componente y haga clic en Editar.

La siguiente lista describe las opciones del cuadro de diálogo Pivot.

Clave de pivote
Especifica la columna que se va a utilizar para los valores de toda la fila superior (fila de encabezado) de la tabla.

Establecer clave
Especifica la columna que se va a usar para los valores en la columna izquierda de la tabla. La fecha de entrada debe ordenarse por esta columna.

Valor de pivote
Especifica la columna que se va a usar para los valores de la tabla, a excepción de los valores en la fila de encabezado y en la columna izquierda.

Omitir valores de clave dinámica que no tengan coincidencias y notificarlos tras la ejecución de flujo de datos
Seleccione esta opción para configurar la transformación dinámica con el fin de omitir las filas que contengan valores no reconocidos en la columna Clave dinámica y generar todos los valores de clave dinámica en un mensaje de registro cuando se ejecute el paquete.

También puede configurar la transformación para generar los valores si establece la propiedad personalizada PassThroughUnmatchedPivotKeys en True.

Generar columnas de salida dinámicas a partir de valores
Escriba los valores de clave dinámica en este cuadro para permitir la transformación dinámica con el fin de crear columnas de salida para cada valor. Puede especificar los valores antes de ejecutar el paquete o hacer lo siguiente.

  1. Seleccione la opción Omitir los valores de clave dinámica no coincidentes y registrarlos después de la ejecución del flujo de datos y, después, haga clic en Aceptar en el cuadro de diálogo Dinamización para guardar los cambios en la transformación dinámica.

  2. Ejecute el paquete.

  3. Cuando el paquete finalice correctamente, haga clic en la pestaña Progress y busque el mensaje informativo del registro de la transformación Pivot que contiene los valores de la clave de Pivot.

  4. Haga clic con el botón derecho en el mensaje y, después, haga clic en Copiar texto del mensaje.

  5. Haga clic en Detener depuración en el menú Depurar para ir al modo de diseño.

  6. Haga clic con el botón secundario en la transformación Pivot y, después, haga clic en Editar.

  7. Desactive la opción Omitir los valores de clave dinámica no coincidentes y registrarlos después de la ejecución del flujo de datos y pegue los valores de clave dinámica en el cuadro Generar columnas de salida dinámicas a partir de valores con el formato siguiente.

    [valor1],[valor2],[valor3]

Generar columnas ahora
Haga clic para crear una columna de salida por cada valor de clave dinámica que aparece en el cuadro Generar columnas de salida dinámicas a partir de valores .

Las columnas de salida aparecen en el cuadro Columnas de salida pivotadas existentes.

Columnas de salida dinamizadas existentes
Enumera las columnas de salida para los valores de clave de pivote

En la tabla siguiente se muestra un conjunto de datos antes de dinamizar los datos en la columna Year .

Año Nombre de producto Total
2004 Neumático de montaña HL 1504884,15
2003 Tubo de neumáticos de carretera 35920.50
2004 Botella de agua - 30 oz. 2805.00
2002 Neumático de turismo 62364.225

La tabla siguiente muestra un conjunto de datos después de reorganizar los datos en torno a la columna Year.

Nombre de producto 2002 2003 2004
Neumático de montaña HL 141164.10 446297.775 1504884.15
Tubo de neumáticos de carretera 3592.05 35920.50 89801.25
Botella de agua - 30 oz. NULL NULL 2805.00
Neumático de turismo 62364.225 375051.60 1041810.00

Para pivotar los datos de la columna Year, tal como se muestra arriba, se configuran las siguientes opciones en el cuadro de diálogo Pivot.

  • El año se selecciona en el cuadro de lista Pivot Key.

  • Nombre del producto se selecciona en el cuadro de lista Establecer clave.

  • El total está seleccionado en el cuadro de lista Valor dinámico .

  • Estos valores se van incluyendo en el cuadro Generar columnas de salida dinámicas a partir de valores .

    [2002],[2003],[2004]

Configuración de la transformación de pivote

Puede establecer propiedades a través del Diseñador de SSIS o mediante programación.

Para obtener más información sobre las propiedades que se pueden configurar en el cuadro de diálogo Editor avanzado , haga clic en uno de los siguientes temas: