Convierta el caos en ganancias: comprensión del proceso ETL

Publicado: 2022-03-11

Uno de los errores más críticos que impiden que las empresas brinden información vital para la toma de decisiones a los usuarios comerciales es la ausencia de datos confiables de una o más fuentes de datos, recopilados en un solo lugar, organizados y preparados para ser utilizados.

Imagine este escenario: usted es el administrador de TI de una empresa de fundas para teléfonos móviles con puntos de venta en todo Estados Unidos. Su junta directiva está luchando para tomar decisiones basadas en las ventas porque la información está disponible pero en diferentes ubicaciones y formatos. Uno de los directores le pide que genere un tablero con información de ventas de todos los puntos de venta para presentar en la próxima reunión de directorio.

Ya sabes que es casi imposible consolidar la información debido a los diferentes formatos y estructuras. Algunos de los quioscos minoristas aún utilizan un sistema patentado en una base de datos Oracle. Las tiendas más grandes están utilizando un nuevo sistema de Salesforce. Los quioscos más nuevos que comenzaron a operar durante la transición del sistema tienen hojas de cálculo compartidas que se utilizan para calcular las ventas.

¿Cómo recopilará todos los datos de diferentes ubicaciones, formatos y estructuras en una base de datos única lista para acceder a ella para generar un panel?

Fundamentos de ETL

ETL significa Extraer, Transformar y Cargar . ETL es un grupo de procesos diseñados para convertir este complejo almacén de datos en un proceso organizado, confiable y replicable para ayudar a su empresa a generar más ventas con los datos que ya tiene.

En nuestro caso, recibiremos datos de una base de datos de Oracle (la mayoría de los quioscos), de Salesforce (tiendas) y de hojas de cálculo (quioscos más nuevos), extraeremos los datos, los transformaremos cuando sea necesario y los cargaremos en una sola base de datos de almacenamiento de datos para ser Se accede a través de herramientas de informes y se utiliza para generar tableros y cuadros de mando.

Profundicemos en los tres pasos de ETL para elaborar el proceso.

Extracción

La extracción es el proceso de recibir datos de fuentes únicas o múltiples. Las fuentes pueden tener diferentes formatos y estructuras, como documentos, hojas de cálculo, archivos CSV, archivos planos, bases de datos relacionales como Oracle, MySQL, SQL Server, bases de datos no relacionales, etc.

Hay dos tipos principales de extracción: total y parcial .

  • La extracción completa se utiliza para extracciones iniciales o cuando la cantidad de datos y, en consecuencia, el tiempo de extracción son aceptables.
  • Se recomienda la extracción parcial cuando no hay necesidad de extraer todos los datos nuevamente, o la cantidad de datos es lo suficientemente grande como para hacer imposible una extracción completa. En una extracción parcial, solo se extraerán datos actualizados o nuevos.

Además de estos aspectos, algunas otras consideraciones son necesarias al elegir entre la extracción total o parcial, y quiero describir una de ellas: la disponibilidad e integridad de los datos .

Significa que solo las transacciones completadas serán consideradas para la extracción, eliminando datos que podrían causar una falla de integridad. Por ejemplo, una prueba en línea para identificar los conocimientos de un ingeniero con 10 preguntas. Si un ingeniero está en medio de la prueba y ha respondido algunas preguntas pero aún no ha terminado, el proceso de extracción no puede leer las preguntas de las pruebas sin terminar. Podría causar una falla de integridad.

Transformación

Después de extraer los datos, podemos comenzar el proceso de transformación: limpiar, manipular y transformar los datos de acuerdo con las reglas comerciales y los criterios técnicos para mantener un nivel aceptable de calidad de los datos.

Dependiendo de una serie de factores, puede ser necesario el uso de un área de preparación. Un área de preparación es un espacio de almacenamiento intermedio que se utiliza para almacenar temporalmente datos extraídos de fuentes de datos para transformarlos.

En algunos proyectos, normalmente aquellos con una pequeña cantidad de datos, no hay necesidad de usar áreas de preparación, pero la mayoría de los proyectos las usan.

Hay una serie de tareas realizadas durante la fase de transformación:

  • Selección: criterios para seleccionar los datos extraídos. La selección puede realizarse durante la fase de extracción, durante la fase de transformación o en ambas fases.
  • Integración: la combinación de datos desde la fase de extracción hasta el área de ensayo. Esta combinación significa agregar, eliminar y actualizar datos en el área de ensayo en función de los datos extraídos.
  • Uniones: se utiliza para unir datos extraídos, similar a las uniones SQL (unión interna, unión izquierda, unión derecha, unión completa, etc.)
  • Limpieza o depuración: elimina datos incoherentes o no válidos, o datos con errores para mejorar la calidad de los datos. Trabajar con múltiples fuentes de datos aumenta las posibilidades de tener problemas de datos que necesitan limpieza, como:
    • Integridad referencial (cliente con categoría inexistente)
    • Valores faltantes (cliente sin ID)
    • Singularidad (más de una persona con el mismo SSN)
    • Errores ortográficos (Sun Diego, Canadá, L.Angeles)
    • Valores contradictorios (Alex dob 27.04.1974, Alex dob 14.04.2000)
    • y muchos otros
  • Resúmenes: resumen conjuntos de datos para uso posterior
  • Agregaciones: datos compilados y resumidos en grupos
  • Consolidaciones: datos de múltiples fuentes o estructuras consolidadas en un solo conjunto de datos

Estos son algunos tipos de transformación comunes:

  • Eliminar datos duplicados
  • Dividir y fusionar
  • Conversiones (fecha, hora, máscaras de números, medidas)
  • Codificación (Macho a M)
  • Cálculos (item_value = unit_Price * cantidad)
  • Generación de claves

Cargando

Por último, pero no menos importante, el proceso final en ETL es cargar los datos en el destino. La carga es el acto de insertar datos transformados (desde un área de preparación o no) en el repositorio, normalmente una base de datos de almacenamiento de datos.

Hay tres tipos principales de carga de datos: completa o inicial, incremental y de actualización.

  • Completo o inicial significa una carga completa de datos extraídos y transformados. Todos los datos en el área de preparación se cargarán en el destino final para estar listos para los usuarios comerciales.
  • La carga incremental es el proceso de comparar datos transformados con los datos en el destino final y cargar solo datos nuevos. La carga incremental se puede usar junto con la carga de actualización, como se explica a continuación.
  • La carga de actualización es el proceso de actualizar los datos en el destino final para reflejar los cambios realizados en la fuente original. Una actualización puede ser completa o incremental.

En resumen, cualquier empresa, independientemente de su tamaño, puede usar procesos ETL para integrar información que ya existe y generar una riqueza de información aún mayor para la toma de decisiones, convirtiendo datos que antes no podían ser utilizados en una nueva fuente de ingresos.

Pruebas

La prueba es una de las fases más importantes de ETL y, sin embargo, también una de las que más se pasa por alto.

Transformar datos de diferentes fuentes y estructuras y cargarlos en un almacén de datos es muy complejo y puede generar errores. Los errores más comunes se describieron en la fase de transformación anterior.

La precisión de los datos es la clave del éxito, mientras que la inexactitud es una receta para el desastre. Por lo tanto, los profesionales de ETL tienen la misión de garantizar la integridad de los datos durante todo el proceso. Después de cada fase, se debe realizar una prueba. Ya sea que se extraigan datos de una sola fuente o de múltiples fuentes, los datos deben verificarse para establecer que no haya errores.

Lo mismo debe hacerse después de cualquier transformación. Por ejemplo, al resumir datos durante la fase de transformación, los datos deben verificarse para garantizar que no se hayan perdido datos y que las sumas sean correctas.

Después de cargar los datos transformados en el almacén de datos, se debe volver a aplicar el proceso de prueba. Los datos cargados deben compararse con los datos transformados y luego con los datos extraídos.

En nuestro ejemplo de empresa de carcasas de teléfonos móviles, estamos trabajando con tres fuentes diferentes (base de datos Oracle patentada, Salesforce y hojas de cálculo) y diferentes formatos. La fase de prueba puede utilizar datos de muestra de las fuentes originales y compararlos con los datos que se encuentran en el área de preparación para garantizar que la extracción se haya producido sin errores.

Los datos de muestra, que en este caso pueden ser información de ventas de tres ubicaciones diferentes (tiendas, quioscos antiguos, quioscos nuevos), deben compararse con la fuente original. Las diferencias, si las hay, deben analizarse para ver si son aceptables o si son errores.

Si se encuentran errores, se deben corregir y hay algunas decisiones que se deben tomar si es necesario corregirlos: ¿Se deben modificar los datos originales? ¿Es posible hacerlo? Si los errores no se pueden corregir en la fuente original, ¿se pueden corregir mediante alguna transformación?

En algunos casos, se deben eliminar los datos con errores y activar una alerta para informar a los responsables.

Algunos ejemplos de prueba:

  • Los datos requieren validación
  • Calidad de los datos
  • Rendimiento
  • Reglas de datos
  • Modelado de datos

Inicio sesión

El registro de procesos ETL es la garantía clave de que tiene sistemas que se pueden mantener y son fáciles de reparar.

Un ETL con el proceso de registro correcto es importante para mantener toda la operación de ETL en un estado de mejora constante, ayudando al equipo a gestionar errores y problemas con fuentes de datos, formatos de datos, transformaciones, destinos, etc.

Un proceso de registro sólido ayuda a los equipos a ahorrar tiempo, lo que les permite identificar problemas de forma más rápida y sencilla, y los ingenieros líderes necesitan menos tiempo para identificar directamente el problema. A veces, los errores ocurren en medio de la extracción de toneladas de datos, y sin un registro, identificar el problema es difícil, a veces casi imposible. Sin registros, todo el proceso debe volver a ejecutarse. Mediante el uso de registros, el equipo puede identificar rápidamente el archivo y la fila que causaron el problema y puede corregir solo esos datos.

El único caso que puedo imaginar donde los registros no son tan importantes es con sistemas no automatizados muy pequeños, donde el proceso se ejecuta manualmente y hay una pequeña cantidad de datos que se pueden monitorear a mano.

Los registros mejoran la automatización. Los procesos ETL con una gran cantidad de datos que se ejecutan automáticamente necesitan sistemas de registro. Si están bien planificados y ejecutados, todo el esfuerzo puesto en construir un sistema de registro dará sus frutos en forma de una identificación de errores más rápida, datos más confiables y los puntos de mejora que se encuentran en los archivos de registro.

Hay tres pasos principales para crear un sistema de registro: generar, archivar y analizar .

  • Generar es el proceso de documentar lo que sucede durante la ejecución de canalizaciones de ETL: cuándo se inició el proceso, qué archivo o tabla se extrae, los datos que se guardan en el área de preparación, los mensajes de error y más. Se debe registrar toda la información importante que pueda ayudar a los ingenieros. Alerta : Preste atención a no generar tanta información que solo consumirá tiempo y espacio y no será de ayuda.
  • Archivar datos de registro significa mantener un registro de las ejecuciones pasadas para buscar escenarios pasados ​​a fin de identificar errores o compararlos con el escenario actual en busca de mejoras. Es importante verificar la relevancia de un punto específico en la historia para guardar: no vale la pena conservar los datos de hace mucho tiempo, donde la estructura cambió muchas veces.
  • analizar El análisis de registros es de crucial importancia. Almacenar toneladas de datos que no se analizan no tiene sentido. Solo cuesta tiempo y dinero generar y almacenar los datos. El análisis de registros es importante no solo para ayudar a buscar errores, sino también para identificar puntos de mejora y aumentar la calidad general de los datos.

Rendimiento

Los procesos ETL pueden funcionar con toneladas de datos y pueden costar mucho, tanto en términos de tiempo dedicado a configurarlos como de los recursos computacionales necesarios para procesar los datos. Al planificar una integración, los ingenieros deben tener en cuenta la necesidad de emplear todos los datos. Lo mejor que puede hacer es trabajar con la cantidad mínima de datos para lograr los objetivos, en lugar de gastar tiempo y dinero simplemente migrando datos inútiles. Además, tenga en cuenta que la cantidad de datos tiende a aumentar con el tiempo, así que trate de considerar sus necesidades futuras.

¿Cuánto esfuerzo debe dedicarse al diseño de un sistema de registro?

Depende de una serie de factores diferentes, como la cantidad y la frecuencia de los datos a procesar. Los sistemas pequeños con pocos datos se pueden administrar manualmente, sin necesidad de invertir en sistemas de registro avanzados.

Las empresas con una gran cantidad de datos, muchos procesos diferentes, diferentes fuentes y formatos de datos y canalizaciones complejas deben invertir en la creación de sistemas de registro. Como ya mencionamos, un buen sistema de registro puede ahorrar mucho tiempo y dinero.

Para un enfoque más obvio, independientemente del tamaño de la empresa, la cantidad de datos y la frecuencia de integración, un proceso ETL debe ser rentable . Una inversión en tiempo, dinero y recursos técnicos debe generar rendimientos, como dijo el economista Milton Friedman: “No hay comida gratis”.

En resumen, un proceso ETL puede ayudar a las empresas a aumentar las ganancias con los datos que ya tienen pero que no se utilizan de la manera correcta. Las canalizaciones de ETL pueden integrar diferentes sistemas, esas hojas de cálculo con información importante y otras porciones de datos que se distribuyen en diferentes departamentos y sucursales, lo que permite a las organizaciones aprovechar al máximo sus datos.