etl: nuestras experiencias con excel en procesos etl. solidq 1 – excel 0
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
![Page 1: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/1.jpg)
![Page 2: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/2.jpg)
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
![Page 3: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/3.jpg)
Arquitectura de BI ETL Area
![Page 4: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/4.jpg)
Integration Services Data Flow
![Page 5: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/5.jpg)
Excel El formato por excelencia para el usuario
![Page 6: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/6.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/7.jpg)
α ¿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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/8.jpg)
Problemática 32/64 bits En BIDS
![Page 9: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/9.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/10.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/11.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/12.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/13.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/14.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/15.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/16.jpg)
Configuración orígenes Excel
![Page 17: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/17.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/18.jpg)
Importar informe diseñado por usuario
![Page 19: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/19.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/20.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/21.jpg)
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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/22.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/23.jpg)
α 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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/24.jpg)
![Page 25: ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/25.jpg)
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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/26.jpg)
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](https://reader038.vdocuments.net/reader038/viewer/2022102521/5580ff4ed8b42a9d198b4fb9/html5/thumbnails/27.jpg)