ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

28

description

Excel es un formato ampliamente utilizado por los usuarios, y que nos encontramos habitualmente cuando realizamos procesos ETL. Comentaremos sus peculiaridades, así como problemas habituales con los que nos hemos encontrado al tratar con este formato y las soluciones que hemos ido aportando. ¿Has tenido problemas con los drivers?, ¿con truncamientos de cadenas?, ¿con tipos de datos?, ¿con cambios en los nombres de libros y hojas? Expondremos soluciones para estos y otros problemas.

Transcript of ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Page 1: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0
Page 2: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Salvador Ramos Jorge Sánchez

BIN-311

Mentor – BI DPA – BI SQL Server MVP, MCTS, MCITP MCTS

[email protected] [email protected]

Page 3: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Arquitectura de BI ETL Area

Page 4: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Integration Services Data Flow

Page 5: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Excel El formato por excelencia para el usuario

Page 6: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Limitaciones en SSIS

α 32/64 bits β BIDS

β Ejecución

α Tipos de datos y longitudes

α Separadores (problemas con el punto y la coma)

α Lo que quiere ver el usuario vs lo ideal para ETL

α Excel creados por el usuario

α Número variable de hojas y nombres diferentes

Problemática habitual

Page 7: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α ¿No se puede utilizar en Lookup ni en Fuzzy Lookup? β Sólo si la columna por la que enlazo no es numérica (float)

α Las hojas ocultas no están accesibles β Las columnas ocultas sí están accesibles

Limitaciones de uso en SSIS

Page 8: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Problemática 32/64 bits En BIDS

Page 9: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Ejecución en modo 32 bits

α El formato .CSV puede ser una alternativa

Problemática 32/64 bits Ejecución SSIS

Page 10: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Excel lee las 8 primeras filas y de ahí asigna tipos de datos y longitudes

α Filas escaneadas para obtener el tipo de datos β [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Exce

l] located registry REG_DWORD "TypeGuessRows".

β Valor por defecto 8 (8 filas)

β Si indicamos 0 escanea todas (afecta al rendimiento)

Tipos de datos y longitudes Asignación automática

Page 11: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Texto β DT_WSTR (hasta 255 caracteres)

β DT_NTEXT

α Números β DT_R8 (floats)

α Fechas y horas β DT_DATE

Tipos de datos y longitudes Asignación automática

Page 12: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Cuando tenemos datos de explotación, vemos que los datos no se ajustan a las longitudes establecidas

β Genera truncamientos

α Necesitamos una muestra lo más completa posible

Tipos de datos y longitudes Casuísticas habituales

Page 13: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Separadores de miles y de decimales β Uso de punto o coma en función de la configuración

Tipos de datos y longitudes Casuísticas habituales

Page 14: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Crear una muestra personalizada de pocas filas que implique la generación de tipos de datos y longitudes apropiados

Tipos de datos y longitudes Personalizando

Page 15: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Entrar en propiedades avanzadas del origen Excel y definir los tipos de datos y longitudes apropiadas γ Evitar cambios posteriores, que afecten otras partes del DataFlow

γ DT_WSTR (hasta 4000)

γ Cambios de DT_WSTR a DT_NTEXT

δ Permite cambiar en Excel Source Output, pero da error en Excel Source Error Output

γ Cambios de DT_R8 a DT_I1, DT_I2, …

α En el origen no podemos hacer cualquier conversión de datos

β Para estos casos utilizaremos Data Conversion o Derived Column

Tipos de datos y longitudes Personalizando

Page 16: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Configuración orígenes Excel

Page 17: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Excel con diferentes formatos de líneas β Líneas en blanco

β Títulos

β Encabezados

β Totales

β Otros

Informes Lo que quiere ver el usuario vs lo ideal para el ETL

Page 18: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Importar informe diseñado por usuario

Page 19: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α No siempre los Excel se generan de forma automatizada β Multitud de aplicaciones exportan a Excel

β El usuario crea sus propios Excel

α Cuando es el usuario quien los genera β No siempre son iguales

γ Cambios en los nombres de los ficheros

γ Cambios en los nombres de las hojas del libro

γ Cambios en el orden de las columnas

γ Cambios en los encabezados

γ Inclusión de líneas en blanco

Excel creados por el usuario

Page 20: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Podemos leer los archivos de una carpeta cuyo nombre cumpla un patrón

β Ventas_??_*.xls

α Podemos recorrer todas hojas de un libro β Evitamos errores por cambios de nombre

β La inclusión o eliminación de hojas no afecta a la ejecución

α Necesitamos escribir código .Net para ello

Automatizando lecturas

Page 21: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Leyendo «todas» las hojas de «todos» los libros que cumplen el patrón Ventas_??_*.xls

Page 22: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Analizar los problemas con los tipos de datos β Modificar los tipos de datos asignados por defecto

γ (Show advanced editor)

β Usar Data Conversion / Derived Column

β Tener una muestra completa

γ Eliminar la restricción por defecto de escaneo de 8 filas

γ Evitar que los datos de explotación sean diferentes a los que nos mostraron para el desarrollo

β Crear nuestra propia muestra resumida

α Automatizar tareas que nos eviten errores de ejecución y posteriores modificaciones sobre el paquete

Buenas prácticas

Page 23: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

α Compromiso de no cambiar la estructura del fichero

α Pongamos en común la estructura a utilizar β Que perjudique lo menos posible a la visualización y al ETL

γ Ambas partes han de ceder

Buenas prácticas

Page 24: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0
Page 25: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

No olvideis rellenar las evaluaciones en el Portal

del Summit!

Nos encontrareis en la zona de exposición en los

siguientes horarios

Salvador Ramos Jorge Sánchez

SQL Server MVP, MCTS, MCITP MCTS

α Esta tarde a la hora del café

α En cualquier descanso

[email protected] [email protected]

Mentor – BI DPA – BI

Page 26: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0

Salvador Ramos Jorge Sánchez

SQL Server MVP, MCTS, MCITP MCTS

[email protected] [email protected]

Mentor – BI DPA – BI

Page 27: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0