sql >> Base de Datos >  >> RDS >> Mysql

Transformación de división condicional:exporte datos de SQL Server a bases de datos Oracle y MySQL

En este artículo, he explicado cómo podemos dividir y exportar datos de la tabla de la base de datos de SQL Server a bases de datos Oracle y MySQL. Ese proceso se basa en la condición definida en SSIS como "transformación dividida condicional ”. La transformación de división condicional es como una declaración de caso de cualquier lenguaje de programación. Usando condicional, podemos redirigir la salida de un componente en múltiples destinos que se basa en una condición definida en el componente de división condicional.

Configuración de demostración

Podemos recuperar datos de varias plataformas de bases de datos usando una conexión ODBC mientras usamos herramientas de datos de SQL Server. La mayoría de las plataformas de bases de datos proporcionan sus controladores de conectividad que se pueden usar para configurar la conexión entre la aplicación y la base de datos.

Voy a exportar datos de la tabla de clientes de “AdventureWorks2014 ” base de datos a Oracle y MySQL en función de la condición definida en la división de condiciones. Los datos se dividirán en base al “StateProvinceName ” columna de “Clientes " mesa. Registros que tienen el valor denominado "California ” en “Nombre de la provincia del estado ” se exportará a la base de datos de Oracle y los registros que tengan el valor denominado “Washington ” se exportará a la base de datos MySQL.

Instalé Oracle 11g express edition y MySQL 8.0 en mi máquina local. Creé una base de datos XE en Oracle y “WideWorldImportors ” base de datos en el servidor MySQL. He creado el “Cliente ” tabla en ambas bases de datos. A continuación se muestra el código SQL para crear una tabla.

CREATE TABLE customers 
  ( 
     cust_id                INT, 
     cust_customername      VARCHAR(500), 
     cust_contactnumber     VARCHAR(50), 
     cust_contactnumbertype VARCHAR(10), 
     cust_email             VARCHAR(150), 
     cust_addresstype       VARCHAR(10), 
     cust_address           VARCHAR(1500), 
     cust_city              VARCHAR(50), 
     cust_state             VARCHAR(50), 
     cust_postalcode        INT, 
     cust_countryname       VARCHAR(100) 
  )

Al usar el componente de flujo de datos de las herramientas de datos de SQL Server, podemos transferir datos entre varias bases de datos configurando controladores ODBC. Las herramientas de datos de SQL Server que podemos instalar mediante el administrador de conexiones ya son compatibles con Oracle Client, pero para MySQL, necesitamos crear una fuente de datos ODBC.

Las herramientas de datos de SQL Server son una aplicación de 32 bits y se ejecutan en modo de 32 bits. Por lo tanto, tenemos que descargar el controlador ODBC de 32 bits de MySQL. Vea la imagen a continuación como referencia:

Tenemos que instalar “Conector/ODBC 8.0.11 ” para conectar la base de datos MySQL utilizando el controlador ODBC. El controlador ODBC 8.0.11 está disponible para la plataforma del sistema operativo de 64 bits. Por lo tanto, tenemos que usar una versión anterior de los controladores ODBC. Vea la imagen a continuación:

En lugar de utilizar controladores de conectividad proporcionados por MySQL, he utilizado controlador ODBC para MySQL desarrollado por Devart.

El controlador ODBC de Devart para MySQL es un controlador de conectividad potente y de alto rendimiento. Es independiente de la plataforma, fácil de configurar y admite herramientas de terceros para la conexión de bases de datos MySQL. A continuación se muestran las características.

  1. Admite conexión segura SSL y SSH.
  2. Compatible con todas las versiones de MySQL. Es compatible con MariaDB, base de datos Azure para MySQL y Amazon Aurora.
  3. Compatible con muchas herramientas de análisis de terceros.
  4. Independiente de la plataforma. Admite plataformas de SO de 32 y 64 bits y muchas más.

Puede descargar la versión de prueba de 30 días de ODBC Driver for MySQL aquí . Consulte la siguiente imagen como referencia:

Una vez que se descarguen los controladores, instálelos ejecutando el programa de instalación.

Una vez instalados los controladores, tenemos que configurar la fuente de datos ODBC para conectar la base de datos MySQL. Para ello, abra fuentes de datos ODBC (32 bits). Se encuentra en Panel de control>> Herramientas administrativas>> Orígenes de datos ODBC. Vea la imagen a continuación como referencia:

Fuentes de datos ODBC abiertas (32 bits). El cuadro de diálogo "Administrador de origen de datos ODBC (32 bits) " abrirá. En ese cuadro de diálogo, haga clic en "Agregar ”. Otro cuadro de diálogo "Crear nueva fuente de datos ” que tiene todos los controladores ODBC instalados en la computadora se abrirá. De esa lista, seleccione “Devart ODBC Driver for MySQL ” y haga clic en “Finalizar ”. Consulte la siguiente imagen como referencia:

Una vez que haga clic en "Finalizar ”, se abrirá un cuadro de diálogo para configurar los parámetros de conectividad de MySQL. En ese cuadro de diálogo, puede definir los parámetros de conectividad. Proporcione el nombre y la descripción para reconocer la fuente de datos en los campos correspondientes. En “Servidor El cuadro de texto proporciona el nombre del host o la dirección IP de la computadora/servidor donde está instalado MySQL. Proporcione el nombre de usuario y la contraseña apropiados para iniciar sesión en el servidor y seleccione la base de datos. Consulte la siguiente imagen como referencia:

Instalé MySQL en mi máquina local, por lo tanto, proporcioné "localhost" como cuadro de texto del servidor. Me estoy conectando al servidor por el usuario "raíz", por lo tanto, el usuario es "raíz". Idealmente, no es preferible. En lugar de root, cree otro usuario y utilícelo para autenticar la base de datos MySQL. He creado “WideWorldImportors ” base de datos en el servidor de base de datos MySQL, por lo tanto, he proporcionado “WideWorldImportors ” en el cuadro desplegable de la base de datos.

De manera similar, para conectar la base de datos de Oracle mediante SSDT, debemos instalar el software de cliente de Oracle. Las herramientas de datos de SQL Server funcionan en modo de 32 bits, por lo que se debe instalar la versión de 32 bits de los controladores ODBC para Oracle. Puede descargar Oracle Client desde aquí.

Como todos sabemos cómo crear un paquete SSIS, explicaré directamente cómo crear la tarea de flujo de datos.

Crear tarea de flujo de datos

En la tarea de flujo de datos, vamos a utilizar cuatro componentes:

  1. Fuente de ADO.NET para completar datos de la base de datos de SQL Server.
  2. División condicional para dividir datos en varios conjuntos.
  3. Configurar destino MySQL y destino Oracle
  4. Configure la ruta de datos para almacenar la salida de la división condicional en bases de datos relevantes.

Configurar fuente ADO.NET

Arrastre y suelte “Fuente ADO.NET ” de SSIS Toolbox a “Flujo de datos ” y asígnele el nombre “Datos de ventas ” como se muestra en la siguiente imagen:

Haga doble clic en "Datos de ventas ”. El cuadro de diálogo “Editor de código fuente de ADO.NET " abrirá. Como el administrador de conexiones aún no se ha creado, por lo tanto, "Administrador de conexiones ADO.NET El cuadro desplegable está vacío. Para crear una nueva conexión en ese cuadro de diálogo, haga clic en "Nuevo ”. Otro cuadro de diálogo "Configurar administrador de conexión ” se abrirá como se muestra en la siguiente imagen:

En “Configurar el administrador de conexiones ADO.NET ” cuadro de diálogo, haga clic en “Nuevo ” para abrir “Administrador de conexión ” cuadro de diálogo.

En “Nombre del servidor en el cuadro de texto, ingrese el nombre o la dirección IP del servidor donde se ha instalado SQL Server. SQL Server está instalado en mi máquina local, por lo que proporcioné "localhost\SQL2016 ” como cuadro de texto del nombre del servidor. En el cuadro desplegable Autenticación, seleccione el tipo de autenticación utilizada para conectarse a la instancia de SQL. Me estoy autenticando en el servidor SQL mediante el uso de la autenticación de Windows, por lo tanto, he seleccionado la autenticación de Windows en el cuadro desplegable. Y finalmente, en el cuadro desplegable de la base de datos, seleccione el nombre de la base de datos donde se almacena la tabla. Estoy exportando datos de "AdventureWorks2014 ” base de datos, por lo que la he seleccionado en “Nombre de la base de datos " caja desplegable. Mira la siguiente imagen:

Una vez completada la configuración, haga clic en “Probar conexión ” para verificar la conectividad con la base de datos y haga clic en “Aceptar”.

Hemos configurado el administrador de conexión ADO.NET, por lo tanto, el administrador de conexión predeterminado se seleccionará automáticamente en "Administrador de conexión ADO.NET " desplegable. Para recuperar datos de una tabla, seleccione "Tabla o vista ” en el cuadro desplegable del modo de acceso a datos. Una vez que selecciona la opción "Tabla o Vista" en el cuadro desplegable, trae una lista de todas las tablas creadas en la base de datos. De esa lista, seleccione "Clientes ” como se muestra en la siguiente imagen:

Configurar división condicional

Ahora usaremos la transformación de división condicional para exportar datos en diferentes hojas de cálculo de Excel según la condición. Arrastre el componente de división condicional desde la caja de herramientas de SSIS a la ventana Flujo de datos y cámbiele el nombre a "Filtro de datos ” como se muestra en la siguiente imagen:

Mencioné anteriormente, la salida de los datos de la tabla "Clientes" se exportará en múltiples bases de datos Oracle y MySQL según la condición definida en "División condicional ” componente.

En primer lugar, conecte la fuente ADO.Net a la transformación de división condicional. Para hacerlo, haga clic en la flecha azul en la ruta del flujo de datos debajo de "Base de datos SQL de clientes ” y arrástrelo a la transformación de división condicional como se muestra en la siguiente imagen:

Para configurar la división condicional, haga doble clic en "Editor de transformación de división condicional". Un cuadro de diálogo "Editor de transformación de división condicional ” se abrirá como se muestra en la siguiente imagen:

Para aplicar una condición en "StateProvinceName ”, primero expanda el nodo de la columna, arrastre el “StateProvinceName ” (Sección 1) y colóquelo en la cuadrícula (Sección 3). La condición de filtrado de datos está en la columna "StateProvinceName". Registros que tienen un valor "California ” se exportará a la base de datos de Oracle y los registros que tengan un valor “Washington ” se exportará a la base de datos MySQL. Según la condición, vamos a usar igual a (==) operador. La ecuación es la siguiente:

[Cust_State]=="California"

[Cust_State]=="Washington"

Mira la siguiente imagen:

Una vez definidas las condiciones, haga clic en "Aceptar" para guardar y cerrar el cuadro de diálogo.

Configurar destino MySQL

Para exportar datos de SQL Server a MySQL y Oracle, necesitamos configurar dos destinos. Primero, configure el destino de MySQL. Para hacerlo, arrastre y suelte el destino ODBC desde la caja de herramientas SSIS y cámbiele el nombre a "Base de datos MySQL" como se muestra en la siguiente imagen:

Haga doble clic en el destino de la base de datos MySQL (conexión ODBC). Se abrirá un cuadro de diálogo "Destino ODBC". En ese cuadro de diálogo, haga clic en "Nuevo". Se abrirá otro cuadro de diálogo "Configurar administrador de conexión ODBC", como se muestra en la siguiente imagen:

Otro cuadro de diálogo "Administrador de conexiones " abrirá. En el cuadro de diálogo, la lista de DSN creados en la máquina que se completa con "Usar nombre de fuente de datos de usuario o sistema " caja desplegable. Como ya hemos configurado ODBC DSN, seleccione el “Destino MySQL ” de la lista desplegable como se muestra en la siguiente imagen:

Haga clic en "Probar conexión ” para verificar que la conexión se ha establecido correctamente y haga clic en “Aceptar”.

Ahora en “Destino ODBC ” cuadro de diálogo, seleccione el nombre de la tabla de “Nombre de la tabla o la vista ” cuadro desplegable como se muestra en la siguiente imagen:

Una vez que el destino de la base de datos MySQL se haya configurado correctamente, configure el destino de la base de datos Oracle.

Configurar destino de Oracle

Para configurar el destino de Oracle, arrastre y suelte "Destino de ADO.NET" en la ventana de flujo de datos y cámbiele el nombre a "Base de datos de Oracle" como se muestra en la siguiente imagen:

Haga doble clic en Oracle Database (destino ADO.NET). Un cuadro de diálogo "Editor de destino ADO.NET " abrirá. En el cuadro de diálogo, haga clic en "Nuevo ”. Otro cuadro de diálogo "Configurar el administrador de conexión ADO.NET" se abrirá como se muestra en la siguiente imagen:

En “Configurar el administrador de conexión ADO.NET ” cuadro de diálogo, haga clic en “Nuevo ”. Se abrirá otro cuadro de diálogo "Administrador de conexión". Para configurar la conectividad de la base de datos Oracle, debemos seleccionar “Net.Provider\OracleClient ” en “Proveedor " caja de diálogo. Proporcione el nombre de host o la dirección IP del servidor de la base de datos de Oracle en el cuadro de texto "Nombre del servidor". Proporcione el nombre de usuario y la contraseña para conectar la instancia de la base de datos Oracle. Como mencioné, instalé la instancia de Oracle como mi máquina local, por lo tanto, proporcioné "localhost" en el cuadro de texto del nombre del servidor. Conecté la base de datos de Oracle usando el usuario "Ventas", por lo tanto, en el cuadro de texto "Nombre de usuario" ingresé "Ventas" como nombre de usuario e ingresé la contraseña. Mira la siguiente imagen:

Para verificar que se ha establecido la conexión, haga clic en "Probar conexión ” y una vez establecida la conexión, haga clic en “OK ” para cerrar el cuadro de diálogo.

Ahora en “Editor de destino ADO.NET cuadro de diálogo, seleccione la tabla o vea el nombre donde se deben guardar los datos. Estoy exportando datos a la tabla de clientes, por lo que he seleccionado "Ventas.Cliente ” como se muestra en la siguiente imagen:

Configurar ruta de datos

Una vez que ambos destinos estén configurados, configure la ruta de datos para transferir datos en las respectivas bases de datos. Para hacerlo, arrastre la flecha azul de la ruta de datos debajo de la transformación de división condicional y suéltela en Destino ODBC (Destino MySQL). Cuando la ruta de datos se conecta al destino ODBC, aparece un cuadro de diálogo. Seleccione el destino de “Salida cuadro desplegable para dirigir los datos que se recuperan de SQL Query. El cuadro de diálogo se parece a la siguiente imagen:

La lista desplegable se completa con todas las condiciones que se definen en la transformación de división condicional. En este caso, un menú desplegable incluye tres opciones.

  1. Salida MySQL
  2. Salida de Oracle
  3. Salida predeterminada

Como se mencionó anteriormente, los registros que tienen el valor "Washington ” de la columna “StateProvinceName” se exportará a la base de datos MySQL, por lo tanto, seleccione MySQL Output.

Ahora mapee las columnas de salida de la transformación condicional con la tabla de clientes de la base de datos MySQL. Para hacer eso, haga doble clic en “Base de datos MySQL ” (destino ODBC) y en el cuadro de diálogo “Destino ODBC”, seleccione “Asignación ” opción que se encuentra en el panel izquierdo del cuadro de diálogo como se muestra en la siguiente imagen:

En la imagen de arriba, "Columnas de entrada" son el nombre de la columna de la tabla de SQL Server y la columna de destino será el nombre de la columna de la tabla "Clientes" de la hoja de MySQL. En esta demostración, el nombre de la columna de la tabla SQL y las tablas MySQL son los mismos, por lo que sus columnas de entrada y salida se asignan automáticamente.

Repita el proceso de configuración del flujo de datos para la ruta de datos "Oracle Output" de la misma manera. A continuación se muestran los cambios.

  1. Debemos seleccionar "Oracle Output" en el cuadro de diálogo de selección de entrada y salida, como se muestra en la siguiente imagen:
  2. En el "Editor de destino ADO.NET", verifique que las asignaciones de columnas de entrada y salida sean correctas, como se muestra en la siguiente imagen:

Una vez que se completan todas las configuraciones, toda la tarea de flujo de datos se ve como la siguiente imagen:

Prueba del paquete SSIS

Ahora ejecute el paquete haciendo clic en el botón "Inicio" en la barra de menú. Si el paquete completa su ejecución con éxito, debería verse como la siguiente imagen:

El paquete dividió la salida de datos SQL mediante el uso de división condicional y exportó 4445 registros en la base de datos MySQL y 2285 registros en la base de datos Oracle.

Resumen

En este artículo, configuramos la conexión ODBC para MySQL, creamos un paquete SSIS con un flujo de datos. Usamos Transformación de división condicional para dividir la salida, recuperada de la base de datos del servidor SQL y exportarla a las bases de datos Oracle y MySQL.

Herramientas útiles:

Componentes de flujo de datos de Devart SSIS:le permiten integrar bases de datos y datos en la nube a través de SQL Server Integration Services.

Controladores ODBC de Devart:brindan soluciones de conectividad ricas en funciones y de alto rendimiento para aplicaciones basadas en ODBC.