Compartir por


Carga de datos con Integration Services en Almacenamiento de datos paralelos

Proporciona información de referencia e implementación para cargar datos en Almacenamiento de datos paralelos de SQL Server mediante paquetes de SQL Server Integration Services (SSIS).

Aspectos básicos

Integration Services es el componente de SQL Server para la extracción, transformación y carga de datos (ETL) de alto rendimiento, y se suele usar para rellenar y actualizar un almacenamiento de datos.

El adaptador de destino de PDW es un componente de Integration Services que permite cargar datos en PDW mediante paquetes dtsx de Integration Services. En un flujo de trabajo de paquetes para Sistema de plataforma de análisis (PDW) de SQL Server, puedes cargar y combinar datos de varios orígenes y cargar datos en varios destinos. Las cargas se producen en paralelo, en un paquete y entre varios paquetes que se ejecutan simultáneamente, hasta un máximo de 10 cargas que se ejecutan en paralelo en el mismo dispositivo.

Además de las tareas descritas en este tema, puede usar otras características de Integration Services para filtrar, transformar, analizar y limpiar los datos antes de cargarlos en el almacenamiento de datos. También puede mejorar el flujo de trabajo del paquete mediante la ejecución de instrucciones SQL, la ejecución de paquetes secundarios o el envío de correo.

Para obtener documentación completa de Integration Services, vea SQL Server Integration Services.

Métodos para ejecutar un paquete de Integration Services

Use uno de estos métodos para ejecutar un paquete de Integration Services.

Ejecución desde Business Intelligence Development Studio (BIDS) de SQL Server 2008 R2

Para ejecutar el paquete desde BIDS, haga clic con el botón derecho en el paquete y elija Ejecutar paquete.

De forma predeterminada, BIDS ejecuta paquetes con archivos binarios de 64 bits. Esto viene determinado por la propiedad del paquete Run64BitRuntime. Para establecer esta propiedad, vaya al Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija Propiedades. En las Páginas de propiedades de Integration Services, vaya a Propiedades de configuración y seleccione Depuración. Verá la propiedad Run64BitRuntime en Opciones de depuración. Para usar tiempos de ejecución de 32 bits, establezca esto en False. Para usar tiempos de ejecución de 64 bits, establezca esto True.

Ejecución desde SQL Server Data Tools de SQL Server 2012

Para ejecutar el paquete desde SQL Server Data Tools, haga clic con el botón derecho en el paquete y elija Ejecutar paquete.

Ejecución desde PowerShell

Para ejecutar el paquete desde Windows PowerShell, use la utilidad dtexec: dtexec /FILE <packagePath>

Por ejemplo, dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"

Ejecución desde un símbolo del sistema de Windows

Para ejecutar el paquete desde un símbolo del sistema de Windows, use la utilidad dtexec: dtexec /FILE <packagePath>

Por ejemplo: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"

Tipos de datos

Al usar Integration Services para cargar datos de un origen de datos a una base de datos PDW de SQL Server, los datos se asignan primero desde los datos de origen a los tipos de datos de Integration Services. Esto permite que datos de varios orígenes de datos se asignen a un conjunto común de tipos de datos.

Después, los datos se asignan desde Integration Services a tipos de datos PDW de SQL Server. Para cada tipo de datos PDW de SQL Server, en la tabla siguiente se enumeran los tipos de datos de Integration Services que se pueden convertir al tipo de datos PDW de SQL Server.

Tipo de datos de PDW Tipos de datos de Integration Services que se asignan al tipo de datos de PDW
BIT DT_BOOL
BIGINT DT_I1, DT_I2, DT_I4, DT_I8, DT_UI1, DT_UI2, DT_UI4
CHAR DT_STR
FECHA DT_DBDATE
DATETIME DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2
DATETIME2 DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2
DATETIMEOFFSET DT_WSTR
DECIMAL DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8
FLOAT DT_R4, DT_R8
INT DT_I1, DTI2, DT_I4, DT_UI1, DT_UI2
MONEY DT_CY
NCHAR DT_WSTR
NUMERIC DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8
NVARCHAR DT_WSTR, DT_STR
REAL DT_R4
SMALLDATETIME DT_DBTIMESTAMP2
SMALLINT DT_I1, DT_I2, DT_UI1
SMALLMONEY DT_R4
HORA DT_WSTR
TINYINT DT_I1
VARBINARY DT_BYTES
VARCHAR DT_STR

Compatibilidad limitada con la precisión del tipo de datos

PDW genera un error de validación si asigna una columna de entrada DT_NUMERIC o DT_DECIMAL que contiene un valor con una precisión superior a 28.

Tipos de datos no admitidos

PDW de SQL Server no admite los siguientes tipos de datos de Integration Services:

  • DT_DBTIMESTAMPOFFSET

  • DT_DBTIME2

  • DT_GUID

  • DT_IMAGE

  • DT_NTEXT

  • DT_TEXT

Para cargar columnas que contienen datos de estos tipos en PDW de SQL Server, debe agregar una transformación Conversión de datos ascendente en el flujo de datos para convertir los datos en un tipo de datos compatible.

Permisos

Para ejecutar un paquete de carga de Integration Services, necesita lo siguiente:

  • El permiso LOAD en la base de datos.

  • Los permisos INSERT, UPDATE, DELETE aplicables en la tabla de destino.

  • Si se usa una base de datos de almacenamiento provisional, el permiso CREATE en la base de datos de almacenamiento provisional. Esto es para crear una tabla temporal.

  • Si no se usa ninguna base de datos provisional, el permiso CREATE en la base de datos de destino. Esto es para crear una tabla temporal.

Observaciones generales

Cuando un paquete de Integration Services tiene varios destinos de PDW de SQL Server en ejecución y se finaliza una de las conexiones, Integration Services deja de insertar datos en todos los destinos de PDW de SQL Server.

Limitaciones y restricciones

En el caso de un paquete de Integration Services, el número de destinos de PDW de SQL Server para el mismo origen de datos está limitado por el número máximo de cargas activas. Se preconfigura el valor máximo y el usuario no lo puede configurar.

Cada destino de paquete de Integration Services para el mismo origen de datos cuenta como una carga cuando se ejecuta el paquete. Por ejemplo, suponga que el máximo de cargas activas es 10. El paquete no se ejecutará si se intenta abrir 11 o más destinos para el mismo origen de datos.

Varios paquetes pueden ejecutarse simultáneamente siempre y cuando cada paquete no utilice más del máximo de cargas activas. Por ejemplo, si el máximo de cargas activas es 10, puede ejecutar simultáneamente dos paquetes que usen 10 destinos cada uno. Se ejecutará un paquete mientras otro espera en la cola de carga.

Si el número de cargas en la cola de carga supera el máximo de cargas en cola, el paquete no se ejecutará. Por ejemplo, si el número máximo de cargas es de 10 por dispositivo y el número máximo de cargas en cola es de 40 por dispositivo, puede ejecutar simultáneamente 5 paquetes de Integration Services que cada uno abra 10 destinos. Si intenta ejecutar un sexto paquete, no se ejecutará.

Importante

El uso de un origen de datos OLE DB en SSIS con el adaptador de destino de PDW puede provocar daños en los datos si la tabla de origen contiene columnas char y varchar con intercalaciones SQL. Se recomienda usar un origen de ADO.NET si la tabla de origen contiene columnas char o varchar con intercalaciones SQL.

Comportamiento del bloqueo

Al cargar datos con Integration Services, Sistema de plataforma de análisis (PDW) de SQL Server usa bloqueos de nivel de fila para actualizar los datos en la tabla de destino. Esto significa que cada fila se bloquea para la lectura y escritura mientras se actualiza. Las filas de la tabla de destino no se bloquean mientras se cargan los datos en la tabla de ensayo.

Ejemplos

A. Carga simple desde un archivo plano

En el siguiente tutorial se muestra una carga de datos sencilla mediante Integration Services para cargar datos de archivos planos en un dispositivo PDW de SQL Server. En este ejemplo se supone que Integration Services ya se ha instalado en el equipo cliente y que se ha instalado el destino de PDW de SQL Server, como se ha descrito anteriormente.

En este ejemplo, la carga se realizará en la tabla Orders, que tiene el siguiente DDL. La tabla Orders forma parte de la base de datos LoadExampleDB.

CREATE TABLE LoadExampleDB.dbo.Orders (  
   id INT,  
   city varchar(25),  
   lastUpdateDate DATE,  
   orderDate DATE)  
;  

Estos son los datos de carga:

id        city           lastUpdateDate     orderdate  
--------- -------------- ------------------ ----------  
1         Seattle        2010-05-01         2010-01-01  
2         Denver         2002-06-25         1999-01-02  

A fin de preparar la carga, cree el archivo plano exampleLoad.txt, que contiene los datos de carga:

id,city,lastUpdateDate,orderDate  
1,Seattle,2010-05-01,2010-01-01  
2,Denver,2002-06-25,1999-01-02  

En primer lugar, cree un paquete de Integration Services mediante estos pasos:

  1. En SQL Server Data Tools (SSDT), seleccione Archivo, Nuevo y, después, Proyecto. Seleccione Proyecto de Integration Services en las opciones enumeradas. Proporcione un nombre al proyecto ExampleLoad y haga clic en Aceptar.

  2. Haga clic en la pestaña Flujo de control y arrastre la tarea Flujo de datos desde el Cuadro de herramientas hasta el panel Flujo de control.

  3. Haga clic en la pestaña Flujo de datos y, después, arrastre Origen de archivo plano desde el Cuadro de herramientas al panel Flujo de datos. Haga doble clic en el cuadro que acaba de crear para abrir el Editor de origen de archivos planos.

  4. Haga clic en Administrador de conexiones y después en Nuevo.

  5. En el cuadro Nombre del administrador de conexiones, escriba un nombre descriptivo para la conexión. En este ejemplo, Example Load Flat File CM.

  6. También puede hacer clic en Examinar e ir al archivo ExampleLoad.txt desde el equipo local.

  7. Como el archivo plano contiene una fila con nombres de columna, haga clic en el cuadro Nombres de columna en la primera fila de datos.

  8. Haga clic en Columnas en la columna de la izquierda y obtenga una vista previa de los datos que se cargarán para asegurarse de que los nombres de columna y los datos se han interpretado correctamente.

  9. En la columna de la izquierda, haga clic en Avanzado. Haga clic en cada nombre de columna para revisar el tipo de datos que se ha asociado a los datos. Escriba los cambios en el cuadro para que los tipos de datos de los datos cargados sean compatibles con los tipos de columna de destino.

  10. Haga clic en Aceptar para guardar el administrador de conexiones.

  11. Haga clic en Aceptar para salir del Editor de origen de archivos planos.

Especifique el destino del flujo de datos.

  1. Arrastre el Destino PDW de SQL Server desde el Cuadro de herramientas al panel Flujo de datos.

  2. Haga doble clic en el cuadro que acaba de crear para cargar el Editor del destino PDW de SQL Server.

  3. Haga clic en la flecha abajo situada junto a Administrador de conexiones.

  4. Seleccione Crear una nueva conexión.

  5. Rellene la información del servidor, el usuario, la contraseña y la base de datos de destino con información específica del dispositivo. (A continuación se muestran ejemplos). Después, haga clic en Aceptar.

    En Conexiones InfiniBand, Nombre del servidor: escriba <nombre-del-dispositivo>-SQLCTL01,17001.

    Para las conexiones Ethernet, Nombre del servidor: escriba la dirección IP del clúster del nodo de control, coma, puerto 17001. Por ejemplo, 10.192.63.134,17001.

    Usuario:user1

    Contraseñapassword1:

    Base de datos de destino:LoadExampleDB

  6. Seleccione la tabla de destino: Orders.

  7. Seleccione Anexar como modo de carga y haga clic en Aceptar.

Especifique el flujo de datos del origen al destino.

  1. En el panel Flujo de datos, arrastre la flecha verde desde el cuadro Origen de archivo plano al cuadro Destino de PDW de SQL Server.

  2. Haga doble clic en el cuadro Destino de PDW de SQL Server para que vea de nuevo el Editor de destino de PDW de SQL Server. Debería ver los nombres de columna del archivo plano a la izquierda, en Columnas de entrada no asignadas. Debería ver los nombres de columna de la tabla de destino a la derecha, en Columnas de destino no asignadas. Para asignar las columnas, haga doble clic en los nombres de columna coincidentes en las listas Columnas de entrada no asignadas y Columnas de destino no asignadas, o bien arrástrelas al cuadro Columnas asignadas. Haga clic en Aceptar para guardar la configuración.

  3. Para guardar el paquete, haga clic en Guardar en el menú Archivo.

Ejecute el paquete en el equipo de Integration Services.

  1. En el Explorador de soluciones de Integration Services (columna derecha), haga clic con el botón derecho en Package.dtsx y seleccione Ejecutar.

  2. El paquete se ejecutará y el progreso más los errores se mostrarán en el panel Progreso. Use un cliente SQL para confirmar la carga o supervisarla desde la consola de administración de PDW de SQL Server.

Consulte también

Creación de una tarea de script que utiliza el adaptador de destino PDW de SSIS
SQL Server Integration Services
Diseño e implementación de paquetes (Integration Services)
Tutorial: Creación de un paquete básico mediante un asistente
Introducción (Integration Services)
Ejemplo de generación de paquetes dinámicos
Diseño de paquetes SSIS para paralelismo (vídeo de SQL Server)
Mejora de las cargas incrementales con captura de datos modificados
Transformación Dimensión de variación lenta
Tarea Inserción masiva