sql >> Base de Datos >  >> RDS >> Sqlserver

Exporte datos de SQL Server a Excel y archivos de texto mediante el uso del paquete SSIS

Mientras usamos el flujo de datos SSIS, podemos realizar una tarea ETL que se puede usar para la migración de datos, la descarga de datos, el diseño y la implementación del almacén de datos.

En este artículo, explico cómo exportar datos de una tabla SQL a Excel y un archivo de texto mediante la tarea de flujo de datos SSIS.

En esta demostración, realizaré los siguientes pasos:

1. Cree un paquete SSIS y cree un administrador de conexiones ADO.NET.

2. Cree una tarea de flujo de datos que tenga una fuente ADO.NET para completar los datos de SQL Server. Los datos se escribirán en un archivo de Excel y un archivo de texto, por lo tanto, configure el destino del archivo plano y el destino de Excel.

3. Ejecute el paquete SSIS y verifique que los datos se hayan escrito en archivos de Excel y de texto.

Crear paquete SSIS y conexión ADO.NET

Para esta demostración, utilicé las herramientas de datos de SQL Server 2015. En primer lugar, estoy creando un nuevo proyecto de servicio de integración llamado "Exportar datos de SQL ”:

Después de la creación de un proyecto SSIS, crearé la tarea de flujo de datos. La tarea de flujo de datos utilizará SQL Server como fuente. El archivo de Excel y el archivo plano se determinarán como el destino. Antes de la creación de la tarea de flujo de datos, debemos crear la conexión ADO.NET .

Configurar conexión ADO.NET

Como mencioné anteriormente, voy a utilizar "WideWorldImportors ” base de datos de demostración que se puede descargar desde aquí.

Para crear una “Fuente ” conexión, haga clic con el botón derecho en “Administradores de conexión ” y seleccione “Nueva conexión ADO.NET ” como se muestra en la siguiente imagen:

Un cuadro de diálogo "Configurar el administrador de conexión ADO.NET " abrirá. En el cuadro de diálogo, haga clic en "Nuevo ” como se muestra en la siguiente imagen:

Un cuadro de diálogo "Administrador de conexión " abrirá. Configuraré los parámetros de conectividad SQL:

1. Nombre del servidor – es el nombre de host o la dirección IP del servidor de la base de datos donde está instalado SQL.

2. Autenticación – es un "tipo de autenticación" utilizado para conectar el servidor que se selecciona en "Nombre del servidor " caja desplegable. Puede ser autenticación de SQL o autenticación de Windows.

3. Nombre de la base de datos – es el nombre de la base de datos que vamos a utilizar para la extracción de datos.

En esta demostración, usaré mi máquina virtual local. Usaré la autenticación de Windows para conectar la instancia de SQL y usaré "WideWorldImportors ” base de datos.

Mira la siguiente imagen:

Haga clic en "Probar conexión ” para verificar la conectividad exitosa. Mira la siguiente imagen:

Una vez configurada la conexión SQL, podrá ver la conexión en los “Administradores de conexión " ventana. Se encuentra en la parte inferior de la ventana de flujo de control como se muestra en la siguiente imagen:

Crear tarea de flujo de datos

La tarea de flujo de datos se utiliza para mover datos entre el origen y el destino. Se puede utilizar para realizar tareas ETL (Extraer, Transformar y cargar). Exportaré datos de SQL Server a Excel o a un archivo de texto, por lo que utilizaremos la tarea de flujo de datos.

Para configurar la tarea de flujo de datos, primero arrastraré y soltaré la tarea de flujo de datos en la ventana de flujo de control y le cambiaré el nombre a "Exportar datos de ventas a Excel ” como se muestra en la siguiente imagen:

Configurar fuente ADO.NET

Para completar los datos de la tabla de SQL Server, debemos configurar el componente fuente de ADO.Net. Haga doble clic en "Tarea de flujo de datos " Para hacer eso. La ventana “Configurar tarea de flujo de datos " abrirá. Alternativamente, puede seleccionar "Flujo de datos ” que se encuentra junto a “Flujo de control ”. Como ya configuramos la conexión SQL, arrastraremos y soltaremos el origen de ADO.NET en la ventana de flujo de datos como se muestra en la imagen a continuación:

Ahora configuraremos ADO.NET Source para extraer datos de la tabla consultando la tabla de SQL Server. Para ello, haga doble clic en "fuente de ADO Net ”. Se abrirá un cuadro de diálogo. En el cuadro de diálogo debemos configurar los siguientes parámetros:

1. Administrador de conexiones ADO.NET – rellena la lista de conexiones ADO.NET creadas en el paquete SSIS.

2. Modo de acceso a datos tiene dos opciones:

una. Si selecciona "Tabla o Vista ” en “Modo de acceso a datos ” cuadro desplegable, “Nombre de la tabla o la vista El menú desplegable se llenará con tablas y vistas que existen en la base de datos. Vea la imagen a continuación:

b. Si seleccionamos “Comando SQL ”, abrirá un cuadro de texto de varias líneas donde podemos escribir la consulta Ad-Hoc para extraer datos de la base de datos.

Vea la imagen a continuación:

Ya creamos la conexión ADO.Net, por lo que en el administrador de conexiones ADO.NET se despliega para seleccionar el nombre creado. En esta demostración, vamos a escribir nuestra propia consulta para que el método de acceso a los datos sea "Comando SQL ”.

Creé una consulta que me dará la lista de clientes de la base de datos. Esta consulta se encuentra a continuación:

SELECT s.CustomerID, 
s.CustomerName, 
sc.CustomerCategoryName, 
pp.FullName AS PrimaryContact, 
ap.FullName AS AlternateContact, 
s.PhoneNumber, 
s.FaxNumber, 
bg.BuyingGroupName, 
dm.DeliveryMethodName AS DeliveryMethod, 
c.CityName AS CityName 
FROM Sales.Customers AS s 
LEFT OUTER JOIN Sales.CustomerCategories AS sc 
ON s.CustomerCategoryID = sc.CustomerCategoryID 
LEFT OUTER JOIN [Application].People AS pp 
ON s.PrimaryContactPersonID = pp.PersonID 
LEFT OUTER JOIN [Application].People AS ap 
ON s.AlternateContactPersonID = ap.PersonID 
LEFT OUTER JOIN Sales.BuyingGroups AS bg 
ON s.BuyingGroupID = bg.BuyingGroupID 
LEFT OUTER JOIN [Application].DeliveryMethods AS dm 
ON s.DeliveryMethodID = dm.DeliveryMethodID 
LEFT OUTER JOIN [Application].Cities AS c 
ON s.DeliveryCityID = c.CityID

Finalmente, el editor de código fuente de ADO.NET se verá como la siguiente imagen:

Podemos obtener una vista previa del resultado de la consulta haciendo clic en "Vista previa botón ” en el cuadro de diálogo. El resultado de la consulta será el que se muestra en la siguiente imagen:

Configurar destino de Excel

Una vez que configuremos el origen de ADO.NET, configuraremos el destino de Excel.

En la caja de herramientas de SSIS, arrastre y suelte el destino de Excel en la ventana de flujo de datos y cámbiele el nombre a "Archivo de Excel de ventas ” como se muestra en la siguiente imagen:

Haga doble clic en el destino de Excel. Un cuadro de diálogo "Editor de destino de Excel ” se abrirá para configurar los siguientes parámetros:

1. Administrador de conexiones de Excel – utilizado para conectar el archivo de Excel.

2. Método de acceso a los datos . La hoja de cálculo de Excel se considera como una tabla o vista. Si selecciona "Tabla o Vista ”, cuadro desplegable “Nombre de la hoja de Excel ” se completará con todas las hojas de trabajo que se crean en el libro de Excel.

3. Nombre de la hoja de Excel . De forma predeterminada, este cuadro desplegable está deshabilitado. Se habilitará automáticamente cuando seleccionemos “Tabla o Vista ” como modo de acceso a datos. También podemos seleccionar la hoja de cálculo de Excel apropiada.

Todavía no creamos una conexión de destino de Excel, por lo que primero es necesario crear un administrador de destino de Excel. Para hacer eso, haga clic en "Nuevo ” junto a “Administrador de conexiones de Excel cuadro desplegable como se muestra en la siguiente imagen:

El cuadro de diálogo "Administrador de conexiones de Excel " abrirá. Aquí podemos configurar:

1. Ruta del archivo de Excel – la ubicación del archivo de Excel.

2. Versión de Excel – puede seleccionar la versión de Excel del cuadro desplegable.

Para esta demostración, creé un archivo de Excel y lo guardé en mi computadora. Para localizar el archivo, haga clic en Examinar, desplácese por el sistema de archivos, seleccione el archivo y haga clic en Aceptar. , como se muestra en la siguiente imagen:

Ahora en el modo de acceso a datos seleccionado como "Tabla o vista ” en “Administrador de destinos de Excel ”. La lista de hojas de trabajo de Excel se completará en el cuadro desplegable. Seleccione "Nombre de la hoja de Excel ” del cuadro desplegable como se muestra en la siguiente imagen:

Ahora, para exportar datos de una tabla SQL a un archivo de Excel, debemos asignar los campos de la tabla SQL y el archivo de Excel. Para hacerlo, arrastre la flecha azul debajo de "Datos de ventas del servidor DB ” y colóquelo en “Archivo de Excel de ventas ” componente como se muestra en la siguiente imagen:

Haga doble clic en "Destino de Excel ” para mapear los campos. “Editor de destino de Excel (archivo de Excel de ventas) " abrirá. Seleccione "Asignaciones ” en el panel izquierdo del cuadro de diálogo. En el mapeo, las columnas de entrada serán las columnas de salida de SQL Query y las columnas de destino serán las columnas del archivo de Excel. Se sugiere mantener el mismo nombre de salida de consulta SQL y columnas de Excel. Esto hará que el mapeo sea mucho más fácil porque no necesitamos mapear campos manualmente. SSIS asignará columnas automáticamente.

Para esta demostración, el archivo de Excel y la salida de consulta SQL tienen el mismo nombre, por lo que el mapeo se realizó automáticamente. Verifique que la asignación se haya realizado correctamente y haga clic en Aceptar . Vea la imagen a continuación:

Una vez que se completó el mapeo, toda la tarea de flujo de datos se verá como en la imagen a continuación:

Ahora podemos ejecutar el paquete. Para hacerlo, haga clic en "Iniciar ” que se encuentra en la barra de menú. Si el paquete se ejecuta correctamente, puede ver el icono verde en cada componente como se muestra en la imagen a continuación:

Configurar destino de archivo sin formato

Como mencioné al principio del artículo, en SSIS podemos exportar datos de una tabla SQL a un archivo de texto. Para hacer eso, debemos crear un destino de archivo plano en la tarea de flujo de datos. Arrastre y suelte “destino de archivo plano ” a la ventana de tareas de flujo de datos y cámbiele el nombre a “Datos de ventas en archivo de texto ” como se muestra en la siguiente imagen:

Ahora haga doble clic en “Destino de archivo plano ”. Un cuadro de diálogo "Editor de destino de archivo plano ” se abrirá como se muestra en la siguiente imagen:

Ahora haga clic en "Nuevo ” junto a “Gestores de conexión de archivos planos " caja desplegable. El cuadro de diálogo "Formato de archivo plano " abrirá. Tiene cuatro opciones:exportar datos a delimitado, ancho fijo, ancho fijo con delimitadores de fila y derecho irregular. Para esta demostración, elegiremos "Delimitado ”.

Seleccione "Delimitado ” y haga clic en Aceptar como se muestra en la imagen a continuación:

Otro cuadro de diálogo "Editor del administrador de conexiones de archivos planos " abrirá. Nombre el administrador de conexión como "Exportar datos de ventas ” como se muestra en la siguiente imagen:

Para guardar los datos SQL en un archivo de texto, podemos crear el nuevo archivo de texto o elegir el existente.

Para esta demostración, vamos a crear un nuevo archivo. Crearé el archivo llamado "Datos de ventas ”. Para ello, haré clic en Examinar y me desplazaré por el sistema de archivos como se muestra en la siguiente imagen:

Ahora configuraremos los parámetros del archivo plano:

  • Los datos exportados de la tabla SQL se almacenarán en el formato delimitado, así que seleccione "D limitado ” en “Formato cuadro desplegable como se muestra en la siguiente imagen:

  • Delimitador de fila de encabezado ” será “{CR}{LF} ”, así que elija la opción adecuada en el cuadro desplegable como se muestra en la imagen a continuación:

  • En el archivo de texto, la primera fila será el encabezado de la columna, así que marque "Nombres de columna en la primera fila de datos ” como se muestra en la siguiente imagen:

Haz clic en Aceptar para cerrar el “editor del administrador de conexión de archivos planos ”.

Ahora mapearemos las columnas. Para hacer eso, haga clic en "Asignaciones ” en el lado izquierdo de “Editor de destino de archivo plano ” como se muestra en la siguiente imagen:

Como los nombres de “Entrada de consulta SQL ” y “Destino del archivo de texto ” las columnas son las mismas, el paquete SSIS asigna las columnas automáticamente.

Una vez que se completa el mapeo, toda la tarea de flujo de datos se verá como en la imagen a continuación:

Ahora podemos ejecutar el paquete. Para hacerlo, haga clic en "Iniciar ” que se encuentra en la barra de menú. Si el paquete se ejecuta correctamente, puede ver el icono verde en cada componente como se muestra en la imagen a continuación:

A continuación se muestra la captura de pantalla de los datos que se extrajeron de la tabla SQL:

Resumen

En este artículo, cubrí:

  1. Creación del administrador de conexiones ADO.NET
  2. Creación de la tarea de flujo de datos y configuración de la base de datos de origen
  3. Configurar el destino de Excel y exportar datos de la tabla SQL a un archivo de Excel.
  4. Configuración de destino de archivo sin formato y exportación de datos de tabla SQL a archivo de texto.

Herramientas útiles:

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