03 Manual SSIS – Columnas Derivadas

Una de las transformaciones más útiles es la creación de columnas derivadas “Derived Column”.

Una columna derivada no es más un nueva columna que añadimos a nuestro Flujo de trabajo y que podremos generar con un valor predefino o en base a un determinado cálculo con los valores de entrada.

Para explicar su funcionamiento y posibilidades partiremos de un nuevo proyecto SSIS en el que añadiremos un “Data Flow Task” con un flujo básico como el siguiente.

Data Flow Task

Si hacemos clic sobre “Derived Colum” podremos acceder a sus propiedades.

El parte superior izquierda tenemos acceso a las variables internas de SSIS, así como a los campos que obtenemos con “Ole DB Source”.

Derived Column 01

Para realizar alguna operación con estos elementos debemos arrastrarlos hasta el Grid situado en la parte interior de la pantalla quedando así:

Derived Column 02

En la sección derecha tenemos agrupadas todas la operaciones que podemos realizar siendo:

  1. Funciones matemáticas básicas.
  2. Funciones de cadenas.
  3. Funciones de fecha/hora.
  4. Comprobaciones de valores NULL en función del tipo de dato.
  5. Funciones de conversión de datos.
  6. Operadores.

En nuestro ejemplo realizaremos un substring del campo “LastName” partiendo de la base de que necesitamos los dos primeros caracteres de este campo. Por tanto, iremos a “String Functions” y arrastraremos la función SUBSTRING.

Substring

La completaremos con los siguientes valores:

SUBSTRING( [LastName], 1, 2 )

Partiendo de la base de que las cadenas en SSIS tienen base 1. Es decir, el primer carácter es el 1 y no el 0 como en otros sistemas.

Estas funciones de cadena (o de cualquier otro tipo) se pueden combinar. Si por ejemplo, queremos poner el resultado en mayúscula dejaríamos la expresión como:

UPPER(SUBSTRING( [LastName], 1, 2 ) )

Por último faltaría asignarle un nombre a nuestra columna derivada. Por ejemplo, “NewLastName”.

Derived Column 03

No dejéis de revisar el resto de funciones aplicables a expresiones de columnas derivadas. Empleándolas de forma correcta nos darán muchísimo juego a la hora de crear nuestros paquetes SSIS.

8 comentarios sobre “03 Manual SSIS – Columnas Derivadas”

  1. Estimado, conoces algún libro o videotutorial para iniciarse en el tema de SSIS, Datawarehouse, OLAP y todos estos temas de hoy en día.

    1. Hola Luis Enrique,

      Tienes dos opciones, añadir ese texto en tu select de origen como un campo nuevo, tipo [select ‘Mi texto’ as CampoNuevo] o bien añadir un nuevo campo en nivel DTS con valor fijo poniendo como valor de expresión “Mi Texto”.

      Saludos!

  2. genial man, tu eres uno de los pocos que responde al toque, ahora dime estoy subiendo informacion de dos meses enero y febrero pero este archivo excel tiene un campo fecha que solo dice 2015 y necesito diferenciarlo x mes, ayuda

  3. Buenas Tardes, me gustaría saber cual es el mejor método para insertar una nueva columna con un numero autoincremental se puede con “Derived Colum”?

    1. Hola Iván,

      La forma más sencilla sería añadir en la select de origen un ID ficticio empleando la función de sql server Row_number(). Puedes consultar su uso en https://msdn.microsoft.com/es-es/library/ms186734.aspx.

      Otra forma sería mediante el uso de variables en SSIS. Tienes una guía en el siguiente enlace: http://beyondrelational.com/modules/2/blogs/81/posts/11262/incrementing-a-column-value-in-ssis.aspx

      Espero que te sirva.

      Saludos y muchas gracias por visitar el blog!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s