Componentes del flujo de ODBC

Se aplica a:SQL Server SSIS Integration Runtime en Azure Data Factory

En este tema se describen los conceptos necesarios para crear un flujo de datos ODBC mediante SQL Server 2019 Integration Services (SSIS).

El conector para conectividad abierta de base de datos (ODBC) para SQL Server 2019 Integration Services (SSIS) ayuda a los desarrolladores de SSIS a crear fácilmente paquetes que cargan y descargan los datos de las bases de datos que admiten ODBC.

El conector ODBC se ha diseñado para lograr un rendimiento óptimo al cargar o descargar datos en una base de datos que admite ODBC en el contexto de SQL Server 2019 Integration Services (SSIS).

Ventajas

El origen ODBC y el destino ODBC para SQL Server 2019 Integration Services (SSIS) aportan valor al uso de SSIS en los proyectos que se ocupan de cargar o descargar los datos en las bases de datos que admiten ODBC.

El origen y el destino ODBC permiten la integración de datos de alto rendimiento con las bases de datos habilitadas para ODBC. Ambos componentes pueden configurarse para trabajar con enlaces de matriz de parámetros de fila para los proveedores ODBC con una gran funcionalidad que admiten este modo de enlace y con enlaces de parámetros de una sola fila para los proveedores ODBC con pocas funciones.

Introducción al origen y el destino ODBC

Para configurar paquetes que usan SQL Server 2019 Integration Services (SSIS), debe asegurarse de que dispone de lo siguiente.

El origen ODBC y el destino ODBC proporcionan una forma sencilla de descargar, cargar y transferir los datos desde una base de datos de origen que admite ODBC a una base de datos de destino que admite ODBC.

Para usar el origen o el destino para cargar o descargar datos, abra un nuevo proyecto de SQL Server 2019 Integration Services (SSIS) en SQL Server Data Tools. Después, arrastre el origen o el destino a la superficie de diseño de SQL Server Data Tools.

  • El componente de origen ODBC lee los datos de la base de datos que admite ODBC de origen.

Puede conectar el origen ODBC a un destino o transformar el componente que admite SSIS.

Consulte también:

Origen ODBC

Editor de origen de ODBC (página Administrador de conexiones)

Editor de origen de ODBC (página Salida de error)

  • El destino ODBC carga los datos en una base de datos que admite ODBC. Puede conectar el destino a un origen o transformar el componente que admite SSIS.

Consulte también:

Destino ODBC

Editor de destino de ODBC (página Administrador de conexiones)

Editor de destinos de ODBC (página Salida de error)

Escenarios operativos

En esta sección se describen algunos de los usos principales de los componentes de origen y de destino ODBC.

Copia masiva de datos de tablas de SQL Server a alguna tabla de base de datos que admite ODBC

Puede usar los componentes para copiar los datos de forma masiva de una o más tablas de SQL Server en una única tabla de base de datos que admite ODBC.

El ejemplo siguiente muestra cómo crear una tarea Flujo de datos SSIS que extrae los datos de una tabla de SQL Server y los carga en una tabla DB2.

  • Cree un proyecto de SQL Server 2019 Integration Services (SSIS) en SQL Server Data Tools.

  • Cree un administrador de conexiones OLE DB que se conecta a la base de datos de SQL Server que contiene los datos que desea copiar.

  • Cree un administrador de conexiones ODBC que use un controlador DB2 ODBC instalado localmente con un DSN que señala a una base de datos DB2 local o remota. Esta base de datos es donde se cargan los datos de la base de datos de SQL Server.

  • Arrastre un origen OLE DB a la superficie de diseño, después de configurar el origen para obtener los datos de la base de datos de SQL Server y la tabla con los datos que se van a extraer. Use el administrador de conexiones OLE DB que creó anteriormente.

  • Arrastre un destino ODBC a la superficie de diseño, conecte la salida de origen con el destino ODBC y configure el destino para cargar los datos en la tabla DB2 con los datos que extraiga de la base de datos de SQL Server. Use el administrador de conexiones ODBC que creó anteriormente.

La copia masiva de datos de tablas de base de datos que admiten ODBC a alguna tabla de SQL Server

Puede usar los componentes para copiar los datos de forma masiva de una o varias tablas de base de datos que admiten ODBC a una sola tabla de base de datos de SQL Server.

En el ejemplo siguiente se muestra cómo crear una tarea Flujo de datos SSIS que extrae los datos de una tabla de base de datos de Sybase y los carga en una tabla de base de datos de SQL Server.

  • Cree un proyecto de SQL Server 2019 Integration Services (SSIS) en SQL Server Data Tools.

  • Cree un administrador de conexiones ODBC que use un controlador Sybase ODBC instalado localmente con un DSN que señala a una base de datos de Sybase. De esta base de datos se extraen los datos.

  • Cree un administrador de conexiones OLE DB que se conecte a la base de datos de SQL Server donde desee cargar los datos.

  • Arrastre un origen ODBC a la superficie de diseño, después configure el origen para obtener los datos de la tabla de Sybase con los datos que va a copiar. Use el administrador de conexiones ODBC que creó anteriormente.

  • Arrastre un destino OLE DB a la superficie de diseño, conecte la salida de origen con el destino OLE DB y configure el destino para cargar los datos en la tabla de SQL Server con los datos que extraiga de la base de datos de Sybase. Use el administrador de conexiones OLE DB que creó anteriormente.

Tipos de datos admitidos

Los componentes de SSIS masivo ODBC admiten todos los tipos de datos ODBC integrados, incluida la compatibilidad con objetos grandes (CLOB y BLOB).

No hay compatibilidad con los tipos de datos de C extensibles, como se describe en las especificaciones de ODBC 3.8. En la tabla siguiente se describe qué tipos de datos de SSIS se usan para cada tipo SQL de ODBC. Un desarrollador de SSIS puede invalidar la asignación predeterminada y especificar un tipo de datos de SSIS para las columnas de entrada/salida sin afectar al rendimiento de las conversiones de datos necesarias.

Tipo SQL ODBC Tipo de datos de SSIS Comentarios
SQL_BIT DT_BOOL
SQL_TINYINT DT_I1

DT_UI1
Los tipos de datos SQL se asignan a los tipos sin signo de SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) cuando el controlador ODBC establece el UNSIGNED_ATTRIBUTE en SQL_TRUE para ese tipo de datos SQL.
SQL_SMALLINT DT_I2

DT_UI2
Los tipos de datos SQL se asignan a los tipos sin signo de SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) cuando el controlador ODBC establece el UNSIGNED_ATTRIBUTE en SQL_TRUE para ese tipo de datos SQL.
SQL_INTEGER DT_I4

DTUI4
Los tipos de datos SQL se asignan a los tipos sin signo de SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) cuando el controlador ODBC establece el UNSIGNED_ATTRIBUTE en SQL_TRUE para ese tipo de datos SQL.
SQL_BIGINT DT_I8

DT_UI8
Los tipos de datos SQL se asignan a los tipos sin signo de SSIS (DT_UI1, DT_UI2, DT_UI4, DT_UI8) cuando el controlador ODBC establece el UNSIGNED_ATTRIBUTE en SQL_TRUE para ese tipo de datos SQL.
SQL_DOUBLE DT_R8
SQL_FLOAT DT_R8
SQL_REAL DT_R4
SQL_NUMERIC (p,s) DT_NUMERIC (p,s) El tipo de datos numérico se asigna a DT_NUMERIC cuando P es mayor o igual que 38 y S es mayor o igual que 0 y S menor o igual que P.
DT_R8 El tipo de datos numérico se asigna a DT_R8 cuando se cumple al menos una de las siguientes condiciones:

La precisión es mayor que 38.

La escala es menor que cero

La escala es mayor que 38

La escala es mayor que la precisión
DT_CY El tipo de datos numérico se asigna a DT_CY cuando se declara como un tipo de datos money.
SQL_DECIMAL (p,s) DT_NUMERIC (p,s) El tipo de datos decimal se asigna a DT_NUMERIC cuando P es mayor o igual que 38 y S es mayor o igual que 0 y S menor o igual que P.
DT_R8 El tipo de datos decimal se asigna a DT_R8 cuando se cumple al menos una de las siguientes condiciones:

La precisión es mayor que 38.

La escala es menor que cero

La escala es mayor que 38

La escala es mayor que la precisión
DT_CY El tipo de datos decimal se asigna a DT_CY cuando se declara como un tipo de datos money.
SQL_DATE

SQL_TYPE_DATE
DT_DBDATE
SQL_TIME

SQL_TYPE_TIME
DT_DBTIME
SQL_TIMESTAMP

SQL_TYPE_TIMESTAMP
DT_DBTIMESTAMP

DT_DBTIMESTAMP2
Los tipos de datos SQL_TIMESTAMP se asignan a DT_DBTIMESTAMP2 si la escala es mayor que 3. En los demás casos, se asignan a DT_DBTIMESTAMP.
SQL_CHAR

SQLVARCHAR
DT_STR

DT_WSTR

DT_TEXT

DT_NTEXT
Se usa DT_STR si la longitud de la columna es menor o igual que 8000 y la propiedad ExposeStringsAsUnicode es false.

Se usa DT_WSTR si la longitud de la columna es menor o igual que 8000 y la propiedad ExposeStringsAsUnicode es true.

DT_TEXT se usa si la longitud de la columna es mayor que 8000 y la propiedad ExposeStringsAsUnicode es false.

DT_NTEXT se usa si la longitud de la columna es mayor que 8000 y la propiedad ExposeStringsAsUnicode es true.
SQL_LONGVARCHAR DT_TEXT

DT_NTEXT
Se usa DT_NTEXT si la propiedad ExposeStringsAsUnicode es true.
SQL_WCHAR

SQL_WVARCHAR
DT_WSTR

DT_NTEXT
Se utiliza DT_WSTR si la longitud de la columna es menor o igual que 4000.

Se utiliza DT_NTEXT si la longitud de la columna es mayor que 4000.
SQL_WLONGVARCHAR DT_NTEXT
SQL_BINARY DT_BYTE

DT_IMAGE
Se utiliza DT_BYTES si la longitud de la columna es menor o igual que 8000.

DT_IMAGE si la longitud de la columna es mayor que 8000.
SQL_LONGVARBINARY DT_IMAGE
SQL_GUID DT_GUID
SQL_INTERVAL_YEAR

SQL_INTERVAL_MONTH

SQL_INTERVAL_DAY

SQL_INTERVAL_HOUR

SQL_INTERVAL_MINUTE

SQL_INTERVAL_SECOND

SQL_INTERVAL_YEAR_TO_MONTH

SQL_INTERVAL_DAY_TO_HOUR

SQL_INTERVAL_DAY_TO_MINUTE

SQL_INTERVAL_DAY_TO_SECOND

SQL_INTERVAL_HOUR_TO_MINUTE

SQL_INTERVAL_HOUR_TO_SECOND

SQL_INTERVAL_MINUTE_TO_SECOND
DT_WSTR
Tipos de datos específicos del proveedor DT_BYTES

DT_IMAGE
Se utiliza DT_BYTES si la longitud de la columna es menor o igual que 8000.

Se utiliza DT_IMAGE si la longitud de la columna es cero o mayor que 8000.

En esta sección