Principios de diseño para procesos de ETL
-
Upload
spanishpassvc -
Category
Technology
-
view
743 -
download
0
Transcript of Principios de diseño para procesos de ETL
![Page 1: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/1.jpg)
Principios de diseño para
procesos de ETL
Rafael Salas, SQL Server MVP
![Page 2: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/2.jpg)
Rafael Salas
Data Warehouse & Inteligencia de Negocio+18 años – 3 Paises– multiple industrias
Microsoft Data Platform
MVPDesde 2007
Arquitecto de InformaciónAlly, Charlotte, NC
Charlotte BI GroupCo-Fundador
rafael-salas.com@[email protected]
![Page 3: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/3.jpg)
Agenda
1. ¿Qué tan sencillos son los procesos ETL?
2. Para empezar: Requerimientos y arquitectura
3. Errores comunes y soluciones
![Page 4: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/4.jpg)
Advertencia
No demos, No Código, No formulas mágicas
Traducir PPT no fue tan fácil. Perdonen cualquier spanglish
![Page 5: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/5.jpg)
¿Qué tan sencillos son los
procesos ETL?
![Page 6: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/6.jpg)
ETL? Si, Eso es Fácil!
![Page 7: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/7.jpg)
A Veces la Realidad es Otra
![Page 8: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/8.jpg)
ETL Nunca Ha Sido Fácil
Cual son los mayores impedimentos para el éxito del manejo de información en su empresa?
59% Acceso a información confiable
46% Integración de datos (ETL)
41% Saneamiento y de-duplicación de datos
InformationWeek Reports, 2012 BI and Information Management Trends
The ETL Data Warehouse toolkit, 2004. Joe Caserta / Ralph Kimball
![Page 9: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/9.jpg)
Por donde empezar:
Requerimientos y arquitectura
![Page 10: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/10.jpg)
Requerimientos
FuncionalContenido, información
RegulatoriosRegulaciones legales
Calidad de información“Aptitud para su uso”
SeguridadBackups, datos en transito, staging, código, etc.
Archivado, retención y linajeTransparencia, auditoría, monitoreo
Interfaces de consumo “Aptitud para su uso”
Habilidades técnicas disponibles
A veces la mejor herramienta es aquella que sabemos
como usar
![Page 11: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/11.jpg)
¿De que Depende un Buen Proceso ETL?
Extraer Cargar
Operatividad, Instrumentación
Transformar
RequerimientosFuncionales
Regulatorios
Calidad de Información
Seguridad
Etc.
ArquitecturaPatrones
Diseño
Buenas Practicas
![Page 12: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/12.jpg)
Extraer
Detectar Cambios
Staging
Extraer
¿Que ha cambiado desde la ultima ejecución?Procese solo registros nuevos o cambiados es mas eficiente
Extraer Vs. RecibirMecanismos consistentes come publicar-subscribir tiende a reducir complejidad y aumenta estabilidad del sistema ETL
¿Almacenar o no almacenar? Archivos planos son simples y fácil de implementar
![Page 13: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/13.jpg)
¿Cómo se van a ensamblar los registros?Ej. Vienen de diferentes sistemas? A diferentes intervalos?
¿Tenemos claras la reglas de de-duplicación?Mecanismos consistentes tipo publicar-subscribir tiende a reducir complejidad y aumenta estabilidad del sistema ETL
¿Cómo se evalúan y procesan registros defectuosos? Detección, manejo y auditoria son siempre necesarios
Otras transformacionesGeneración de PKs, Conversiones , etc, etc, etc
Transformar
Limpiar
Otras transformaciones
De-duplicar
Manejo de Excepciones
![Page 14: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/14.jpg)
Entender estructuras de datos en el destino y sus dependenciasEs importante que el ETL entregue los datos en un formato y manera fácil y amigable
Rutinas post-procesoe.g. reconstruir indeces, procesar cubos, calentar memoria, etc
Cargar
Agregar
Cargar
Post-Procesos
![Page 15: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/15.jpg)
Operatividad, InstrumentaciónHorario Ejecución Re-EjecucionesMonitor de Actividad
Auditoria
Backup
Notificaciones Seguridad Regulatorio
¿Proceso termino correctamente?
¿Podemos monitorear el proceso?
¿Tengo suficientes detalles en caso de un error de ejecución?
¿Tengo suficiente infromaciónpara auditoria o resolver problemas?
¿En caso de un error, puede el proceso re-iniciarse sin mayor intervención?
¿Podemos garantizar la seguridad del código fuente, y los datos en transito y en disco?
¿Puedo dormir tranquilo por las noches?
![Page 16: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/16.jpg)
Beneficios De Una Buena Arquitectura
Consistencia y estabilidad
Reducción de costos: Mantenimiento, capacitación
Re-usabilidad
Infraestructura & Infromación
ETL App
ETL App
ETL AppETL App
Infraestructura & Infromación
ETL App
ETL Architecture
ETL App ETL App
![Page 17: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/17.jpg)
Errores comunes y soluciones
![Page 18: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/18.jpg)
Problema: Ignorar Realidad de los Datos
Diseño del ETL basado en opiniones y
conocimiento cotidianoacerca de los
datos
Ensayo y error!
![Page 19: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/19.jpg)
Profiling Mapeo
Planeamiento & Diseño
Extraer Limpiar Transformar Cargar
Implementación
Entender el nivel de Calidad de la informacion
Correcta
A tiempo
Completa…
Validación de las reglas de ETL
Podemos estimar mejor tiempo y
esfuerzo
°Data Quality: The Accuracy Dimension, Jack E. Olson
![Page 20: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/20.jpg)
Problema: Mal Manejo de Excepciones
Sistemas Inestables
Malos requirementos, información questionable , mala programación
Sistemas inestables
Infrastructura inestable
![Page 21: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/21.jpg)
Ejemplo de Manejo de Excepciones
Excepción detectada
Capture detalles del error
Envíe notificación
Aborte ejecución, reporte error
ETL Ejecutando
Procesandoregistros
Registro invalidodetectado
Límite de errores
alcanzado?0
Se puedecorrejir?
CorríjaloExcluyaregistro
Procesesiguienteregistro
Si
No
NoSi
![Page 22: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/22.jpg)
Problema: Insuficiente información de Ejecución de
Procesos
Resolver errores de ejecución en
producción
Monitoreo de los procesos
Optimizar tiempo de ejecución
Auditoria
![Page 23: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/23.jpg)
23
Evalue opciones disponiblesProvistas por la herramienta, desarrollada a la medida, ambas
Considere crear reportes
Logging
![Page 24: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/24.jpg)
24
Problema: Procesos No Re-Iniciables
Despues de un error tenemos queIntervencion manual para re-iniciar proceso
Correr el riesgo de omitir registros
Correr el riego de duplicar registros
Re-iniciar desde el principio
![Page 25: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/25.jpg)
Ejemplo: Lógica de Re-Inicio
1. Definir unidad de re-inicioProceso Principal: ej. Paquete maestro
Sub-Proceso: ej. Paquete subordinado
2. Definir estados del programaProceso Principal:
Ejecutando, Exito, Error
Sub-Proceso:
Ejecutando, Exito, Error, No ejecutado
Obejetivo: Re-inicia donde falló la última vez
No se omite registros
No duplica registros
No require intervención manual
![Page 26: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/26.jpg)
Proceso Principal
Obtener estado de ejecución anterior
Ejecuciónanterior exitosa?
Emita nuevo identificadorde ejecución para proceso
principal
Re-use identificador de ejecución de proceso
principal
Ejecute sub-procesos
Registre inicio de procesoprincipal
Si
Registre re-inicio de procesoprincipal (+1) & Actualize
variables the ejecución
No
A
Registre final de Proceso
Inicio ProcesoPrincipal
B
![Page 27: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/27.jpg)
Obtener estado de ejecucionanterior para esta
combinacion de Procesoprincipal y sub-proceso
Sub-proceso
antes ejecutado
?
Retorne control a procesoprincipal
Prepare re-ejecución de sub-proceso (cleanup)
Ejecute sub-proceso
Sub-procesoexitoso?
registre ejecucion de sub-proceso
no
si
no
si
Sub-ProcesoA
Inicio Sub-Proceso
registre re-inicio de sub-proceso (+1) & Actualize variables the ejecución
Registre final de sub-proceso
B
![Page 28: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/28.jpg)
En Conclusión…
![Page 29: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/29.jpg)
ETL Requiere Arquitectura
Extraer
Detectar Deltas
Staging
Transform
Limpiar
Deduplicar
Manejo de Exceptiones
Load
Agregar
Cargar
Procesar
Operatividad, InstrumentaciónHorario Ejecución Re-EjecucionesMonitor de Actividad
Auditoria
Backup
Notificaciones Seguridad Regulatorio
Extraer
![Page 30: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/30.jpg)
30
ETL sigue siendo complicado y costosoInvierta tiempo en su architectura.
ETL no es solo mover datos: mantenimiento, capacitacion, estabilidad, seguridad,
auditoria, etc
No olvide que calidad de la información es un asunto del
negocio mas que de tecnología
![Page 31: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/31.jpg)
31
Referencias
The Data Warehouse Toolkit, 3rd edition - ETL Subsystems & Techniques.
http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-
techniques/etl-architecture-34-subsystems/
SSISDB + Custom Logging – Rafael Salas
rafael-salas.com/2012/08/ssis-2012-and-my-old-etl-framework.html
SSIS Reporting Pack + Restart – Jamie Thomson
http://ssisreportingpack.codeplex.com/
![Page 32: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/32.jpg)
Preguntas?
![Page 33: Principios de diseño para procesos de ETL](https://reader036.fdocuments.ec/reader036/viewer/2022062523/5878871f1a28ab466c8b75f9/html5/thumbnails/33.jpg)
Gracias por participarFollow @pass24hop
Share your thoughts with hashtags
#pass24hop & #sqlpass