Social Icons

twitter facebook google plus linkedin

lunes, 30 de enero de 2012

Videotutorial: Como crear un paquete SSIS

Navegando por Youtube, encontré esta serie en la cual muestran la creacion de un paquete SSIS. Realiza un proceso super simple: Lee un archivo de texto, realiza un filtro y escribe un archivo de texto distinto.
El material está en Inglés.

Parte I:


Parte II:


Parte III:

jueves, 26 de enero de 2012

Instalar base de datos de prueba en SQL Server 2012 RC0

He conocido a mucha gente sequisima en el tema de las bases de datos e informatica en general. Del total, no he conocido a nadie que haya inventado millones de registros para realizar pruebas. Es por esto, que existen las bases de datos de ejemplo para poder hacer pruebas en ambientes mas o menos reales.

Oracle trae los suyos, MySQL tiene uno que otro repartido por internet. PostgreSQL tiene los suyos por ahi. Obviamente, SQL Server tiene los suyos disponibles en http://msftdbprodsamples.codeplex.com.

Sorpresa! Solo descarga un archivo mdf sin un archivo de logs. Por lo que al momento de adjuntar la base de datos, hay que crear un archivo de logs.

Hay que abrir SQL Management Studio y en una nueva consulta escribir lo siguiente:
{{ CREATE DATABASE AdventureWorks2008R2 ON (FILENAME = 'ruta/al/archivo/AdventureWorks2008R2_Data.mdf') FOR ATTACH_REBUILD_LOG ;}}


Entonces aquí se indica que cree una nueva base de datos a partir del archivo indicado y que cree un nuevo archivo de logs.

jueves, 12 de enero de 2012

Desde SQL Server 2012 RC0 hacia MySQL

¡Buenos días! En este post, explicaré paso a paso como enviar datos (texto plano) desde SQL Server 2012 RC0 hacia MySQL.

Entorno:

Máquina virtual Windows Server 2008 R2 SP1 corriendo sobre Windows Server 2008 R2 con Hyper-V, en la que está instalado Microsoft SQL Server 2012 RC0 y  MySQL 5.5 Community Edition.

La máquina virtual cuenta con 2048 MB de memoria física.

Datos

Como era la primera prueba, solo usé una tabla con 10 registros.

Tabla "Persona" en SQL Server

La información de la tabla es la siguiente:

Descripcion tabla "Persona" que está en SQL Server

Driver ODBC de MySQL 

Aquí hay un punto muy importante en el que perdí mucho tiempo ayer. En el sitio de descargas de MySQL (http://www.mysql.com/downloads/connector/odbc/) , existen versiones para 32 y para 64 bits. En mi caso, instalé el que correspondía a mi arquitectura y no me funcionó. Windows me lo reconocía, pero al momento de crear la conexión en SQL Server Data Tools, va a arrojar y no va a funcionar.  Curiosamente todo se solucionó cuando instalé una versión de 32 bits.

De cualquier manera, espero que te resulte de cualquier modo.

Modelo de Datos

Es muy importante tenerlo claro, ya que los datos se deben organizar de la misma forma en el destino de la operación. En este caso, el modelo que estaba en SQL Server debe respetarse en MySQL.

En algunos tutoriales en Internet mencionan crear las tablas en el destino antes de cargar los datos. En otros, muestran que se puede hacer desde SQL Server Data Tools.

En este caso, la creé antes de cargar los datos:

Descripcion tabla Persona en MySQL

En este ejemplo, es solo una tabla. No me gustaría que quedara un desastre cuando son hartas tablas.

¡Manos a la obra!

Antes de comenzar, hay que configurar la conexion a la base de datos desde Inicio -> Herramientas Administrativas -> Origenes de Datos (ODBC)



Agregar uno nuevo:

Nuevo origen de datos MySQL

Al apretar el botón de finalizar (o finish), aparecerá un formulario solicitando los datos de la conexión a la base de datos de MySQL:

Configurar Conexion

Hay que llenarlos con los datos propios de cada equipo. Yo puse los míos (obvio) y tu tienes que poner los tuyos.  Es importante que rellenes todos los campos, porque al momento de presionar el botón de "test" debe aparecer algo así:

Conexion OK

Al presionar "OK", volverá a la ventana de configuración de conexión a MySQL. Apretar "Ok" nuevamente. Esto cerrará la ventana y quedará la ventana de ODBC abierta. Verificar que aparezca la nueva conexión creada y presionar "Ok" para cerrar la ventana.

Ir a Inicio-> Todos los Programas -> SQL Server 2012 RC0 -> SQL Server Data Tools

Cargará un IDE con una interfaz gráfica idéntica a Visual Studio 2010. En la ventana, se crea un nuevo proyecto: (seguir lo que está marcado con amarillo)

SQL Server Data Tools

Nuevo proyecto de Integration Services

Cargará un proyecto vacío. Lo primero que se debe hacer, es crear las conexiones de ambas bases de datos. Primero, se hará la del origen (SQL Server).

A la mano derecha de la pantalla (La pantalla no tiene manos jeje) hay un cuadro llamado Solution Explorer y en su árbol hay un directorio (o nodo (o como quieran decirle)) llamado Connection Managers

Solution Explorer

En Connection Managers, con un click secundario, se selecciona la opción New Connection Manager

New Connection Manager

Nueva Conexion ADO.NET

Se crea una conexión utilizando ADO.NET. Luego, se abrirá una ventana solicitando los datos de la conexión.

Nueva Conexion a SQL Server

¡Completa el formulario con tus datos! (pista: el "." hace referencia a la máquina local). Al momento de probar la conexión debe salir esto:

Test de la conexion

Para crear la conexión a MySQL se deben repetir los mismos pasos, pero cambiando los datos de conexión:

Nueva Conexion a MySQL

Como aparece en la imagen, hay que cambiar el proveedor de datos (Para SQL Server se usó uno distinto. Para MySQL hay que usar ODBC). Se selecciona el nombre de la conexión en el combobox y luego se ingresan los datos de nombre de usuario y contraseña.

En el entorno, hay varias pestañas. Las que nos importan ahora son: Control Flow y Data Flow:

Pestañas

En Control Flow, arrastramos un objeto llamado Data Flow y debe quedar así:

Data Flow en Control Flow

En la pestaña de Data Flow se arrastran los elementos de Origen de datos ADO.NET y Destino de datos ODBC:

Configuración del Origen

Una vez que la conexión está configurada y seleccionada la tabla con la que se trabajará, es necesario echarle una mirada a las columnas. Ver cuales son y como se "exportarán".

Columnas de origen y como se exportarán

Si todo está bien, se selecciona "OK" y se hace lo mismo para configurar el destino (pero sobre el objeto de ODBC). La información de destino debe estar mas o menos así:

Configuracion de conexión de destino

En la sección de "Mappings" se configura las columnas de origen y las de destino. Como quedan enlazadas. A buenas y a primeras,  me decía "ignore". Luego al echar a correr la solución, me arrojó un error por eso mismo. Volví a la vista de diseño y pude configurarlo. Para ser sincero, no sé por qué pasó eso, pero lo pude solucionar.

Para que tengas una idea de como debe quedar, aquí está la imagen:

Mapeo de Columnas

Al apretar OK, la ventana se cerrará y mostrará la pestaña de data flow. En Data Flow, unir la flecha azul del origen y llevarla al destino. Tal como aparece en la imagen:

Los datos van desde el origen al destino

Se guarda el proyecto y se ejecuta para ver qué es lo que ocurre (Se ejecuta con F5). Observar que en ejecución aparece una nueva pestaña llamada Progress:

Pestaña Progress

En progress, tal como su nombre lo indica, mostrará el progreso y las tareas que se están ejecutando. En caso de aparecer algún error, lo indicará ahí. Si todo ha terminado bien, aparecerá un mensaje así:

Proceso finalizado con éxito

La única forma de corroborar, es ver si los datos fueron llevados a su destino:

Datos en MySQL

Eso es todo!

martes, 3 de enero de 2012

Dependencia .NET Framework 3.5.1 en SQL Server 2012

Cuando estaba instalando SQL Server 2012 RC0, no tome en cuenta las dependencias que tenia el motor de base de datos. Uno de estos en .NET Framework 3.5.1 SP1. Lo mas probable, es que si lo tienes instalado, te encontraras con un error como este:



Si estas usando Windows 7 o Windows Vista, puedes instalar el paquete desde el link que sale en el cuadro. Si estas usando Windows Server 2008 R2 tienes que instalar el paquete como caracteristica (feature) tal como se muestra en la imagen: