Desafortunadamente no todas las fuentes de datos con las que vamos a trabajar en nuestros proyectos de BI van a ser homogéneos, ni van a ser accesos a SQL Server. Esto hace que no podamos acceder mediante OLE DB a algunos de nuestros datos y por lo tanto la conexión desde nuestros paquetes puede convertirse en una tarea algo más compleja que simplemente arrastrar un conector OLE DB y editar sus propiedades.

Cuando la única forma de acceder a nuestra fuente de datos es a través de ODBC tenemos que identificar qué tipo de consultas vamos a usar para la bajada de datos a nuestro sistema ETL y como está configurada la fuente para tratar las conexiones. Cuando la bajada se realiza siempre mediante la misma consulta sin parametrización, podemos utilizar los controles estándar configurándolos de la forma adecuada y con eso será suficiente, pero si queremos ejecutar consultas parametrizadas o dinámicas tendremos que crear nuestro propio conector o configurar de forma dinámica la sentencia SQL a través de expresiones.

Pasos Iniciales

Lo primero que necesitamos para acceder mediante ODBC a nuestra fuente de datos es instalar los drivers necesarias si estos no estuvieran dentro de la lista de proveedores que ya tengamos instalados en nuestro servidor (Ej: Informix). Una vez instalados habrá que definir el DSN que la información de nuestro origen de datos (servidor, base de datos, proveedor, etc.).

A continuación crearemos una fuente de datos dentro de nuestra solución SSIS. En el primer paso del asistente de creación de fuentes de datos crearemos una nueva conexión. Dentro del gestor de conexiones necesitamos elegir el proveedor «.net ProvidersODBC Data Provider» y a continuación introduciremos el nombre de nuestro DSN.

Esta fuente de datos podrá ser añadida a nuestro paquete a través de la opción ‘Nueva conexión desde fuentes de datos…’ de forma que podremos añadirla a todos nuestros paquetes que vayan a conectarse a nuestra fuente de datos ODBC.

Configuración conector ODBC

Una vez definida nuestra conexión dentro del paquete ya estamos preparados para empezar a crear el flujo de datos que va a leer la información de la fuente de datos ODBC. Los pasos son tan sencillos como arrastrar un objeto ‘DataReader Source’ sobre el área de diseño del flujo de datos y configurarlo para que utilice la conexión compartida definida previamente.

Cuando abrimos la ventana de propiedades de nuestro conector, dentro de la pestaña ‘Connection managers’ se selecciona la conexión ODBC definida a nivel de paquete, a continuación nos movemos a la pestaña ‘Component Properties’ y modificamos la propiedad ‘SQLCommand’ para que contenga una sentencia SQL válida.

Una vez definida el comando SQL las pestañas ‘Column Mappings’ e ‘Input and Output properties’ contendrá los metadatos asociados al conjunto de datos que se va a extraer de la fuente.

Sin embargo, hay excepciones en las que el proveedor ODBC no es capaz de devolver todos o parte de los metadatos requeridos por el conector (ej: nombre de las columnas, tipos de datos, mapas de caracteres), en esos casos, no podremos utilizar este procedimiento para conectarnos al origen de datos y tendremos que crear nuestro propio conector ODBC.