El objetivo es cargar datos en un SQL Server 2008 utilizando SSIS siendo nuestro origen de datos una BBDD Teradata.
Data Sources
Crearemos dos Data Sources en SSIS, uno que leerá de Teradata y otro que escribirá en SQL Server 2008. Para poder utilizar un origen OLE DB de Teradata, deberemos instalarnos previamente un conector OLE DB para Teradata, se puede descargar desde el centro de descargas de la página Web de Teradata:
http://www.teradata.com/DownloadCenter/
Data Source Teradata:
Data Source SQL Server 2008:
Data Flow
Este objeto de SSIS nos permitrá crear un flujo de datos para realizar la inserción de datos desde Teradata a SQL Server. Con un Data Flow muy sencillo seremos capaces de trasladar los datos.
Como se puede ver en el siguiente Data Flow, tenemos dos orígenes de datos OLE DB (BBDD Teradata y SQL Server 2008) y también tenemos un “Data Conversion” para realizar conversiones de tipos de datos de una plataforma a otra.
Comprobamos su ejecución y vemos que lo leído de Teradata y lo escrito en SQL Server 2008 es lo mismo, esto lo podemos comprobar mismamente en la ejecución del Data Flow que nos va indicando (como se muestra en la figura) cuantas filas son afectadas en cada uno de los pasos, y también con un visor podemos ver como son los datos obtenidos desde origen, es una gran ayuda a la hora de utilizar SSIS.
Comprobamos la integridad de los datos en SQL Server:
Equivalencia Tipos de Datos
A continuación se muestran tres tablas con la correspondencia de los tipos de datos más utilizados:
Tipo Fecha:
TERADATA | SSIS | SQL SERVER |
Date | Database date [DT_DBDATE] | Date |
Time(0) | Database time [DT_DBTIME] | Time(0) |
Timestamp(0) | Database timestamp [DT_DBTIMESTAMP] | Datetime |
Tipo Carácter:
TERADATA | SSIS | SQL SERVER |
Char(n) – Latin | String [DT_STR] | Char(n) |
Char(n) – Unicode | Unicode String [DT_WSTR] | Nchar(n) |
Varchar(n) – Latin | String [DT_STR] | Varchar(n) |
Varchar(n) – Unicode | Unicode String [DT_WSRT] | Nvarchar(n) |
En este tipo de datos vemos por ejemplo que en Teradata a cada uno de los tres tipos de datos se le puede aplicar como un atributo (Latin,Unicode), este atributo es la causa de que luego se transforme en un tipo de datos u otro tanto en SSIS como en SQL Server.
Tipo Numérico:
TERADATA | SSIS | SQL SERVER |
Integer | Four-Byte signed integer [DT_I4] | Int |
Smallint | Two-Byte signed integer [DT_I2] | Smallint |
Byteint | Single-Byte signed integer [DT_I1] | Smallint |
Real | Float [DT_R4] | Real |
Doubleprecision | Double-precision float [DT_R8] | Float |
Float | Double-precision float [DT_R8] | float |
Decimal(n,m) | Decimal [DT_DECIMAL] | Decimal(n,m) |
Numeric(n,m) | Numeric [DT_NUMERIC] | Numeric(n,m) |
Problemas encontrados
Hay que tener cuidado con la correspondencia de los tipos de datos en una y otra plataforma, y asegurarse de no perder datos.
1 comment
Buenos dias, en SSIS 2016 no me reconoce como valida la conversion de BYTEINT a SMALLINT, hay algo adicional que se pueda hacer? Gracias