La organización actual tiene como objetivo ser data-driven, es decir, tomar decisiones basadas en datos. Para conseguirlo, las empresas suelen implantar un programa de Gobierno de Datos (GD) para integrar todos los datos internos y externos en una única base de datos, asegurando su precisión, puntualidad, integridad y consistencia. Un programa de GD suele estructurarse con 5 elementos: 1) compromiso, 2) estrategia, 3) arquitectura y diseño, 4) implementación, y 5) operaciones y cambios.

El compromiso se refiere a establecer claramente para qué servirá la GD y el compromiso que tendrán las partes interesadas en el programa de GD. La estrategia crea un plan y unos requisitos para lograr los objetivos de la organización, alineados con la GD. La arquitectura y el diseño se refieren a la descripción y el diseño de las nuevas capacidades de la organización para apoyar la iniciativa de datos. La implementación es el despliegue y la sostenibilidad del programa. Y la operación-y-cambio es la ejecución y refinamiento de la GD [1]. La ingeniería de datos es un concepto transversal a la arquitectura, al diseño y a la implementación, dentro de un proceso denominado Extracción, Transformación y Carga (ETL), cuya finalidad es la integración de datos procedentes de diversas fuentes [2]. En la arquitectura de la nube, el proceso ETL implica un almacenamiento llamado datalake, donde se guarda una copia de los datos de origen (extracción).

A continuación, la transformación explora, limpia y convierte estos datos para garantizar su calidad en un formato adecuado. Y la carga lleva los datos transformados a un almacén de datos único y estructurado (no es un datalake). El proceso ETL es posible a través de un servicio en la nube (por ejemplo, Azure Synapse), o de código Python con un sistema de base de datos ejecutado en una máquina virtual. Cuando los datos integrados provienen de cientos de fuentes federadas, cada una con un gran volumen de datos, el recurso de almacenamiento y procesamiento es seguramente grande. En concreto, la empresa IMEXHS tiene cientos de clientes en sus servidores en la nube. Si tiene 200 clientes y cada uno de ellos almacena 500 MB de datos, el datalake debería poder almacenar 100 TB como mínimo. En estas condiciones, el coste de un servicio ETL podría ser importante. Para un ETL rentable, una estrategia podría ser automatizar las consultas aplicadas a la base de datos de cada cliente. De este modo, el datalake se completa sólo con datos prefiltrados (datos utilizables), que tras la transformación, se cargarán en la base de datos final. Esto ayudaría significativamente a minimizar el coste de almacenamiento. Para optimizar el tiempo de procesamiento, se pueden dividir las tablas grandes y ejecutar la transformación en cada una de ellas. De este modo, la carga se ejecuta secuencialmente, concatenada con las particiones. La creación de un ETL rentable implica diferentes optimizaciones, que implican nuevas formas de extraer y organizar el gran conjunto de datos.

Referencias:

[1] Ladley Jhon, Data Governance: how to design, deploy, and sustain and effective data governance program. Elsevier Inc, 2a edición, 2020, pp. 64-80.

[2] Crickard Paul, Data Engineering with Python. Packt Publishing, 1ª edición, 2022, pp. 4-13.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Leonardo-Perez-776x1024.png

Leonardo Pérez
Head of BI/BA and big data at IMEXHS
leonardo.perez@imexhs.com

0 comentarios