Data Manipulation. Parte 2

Introducción

En el primer artículo, resaltamos la importancia de la gestión de datos y cómo esta constituye la base para obtener soluciones basadas en datos, ya sean modelos de Business Intelligence (BI), modelos de Machine Learning, entre otros.

Sin embargo, también se hizo hincapié en que la gestión de datos no es una tarea sencilla, ya que los datos deben ser organizados, clasificados y limpiados para obtener conclusiones o resultados de alta calidad. Para facilitar este proceso, existen diversos marcos de trabajo, como:

  • Data Wrangling o Data Munging, que abarca la etapa inicial del ciclo de vida de los datos.
  • Data Processing, que se enfoca en el consumo, análisis y utilización de los datos.
  • Data Quality, que se centra en la limpieza y mejora de la calidad de los datos.

Es importante destacar que estos marcos de trabajo buscan mejorar la calidad, estructura, seguridad y disponibilidad de los datos, acelerar el proceso de acceso y análisis de los datos y facilitar la toma de decisiones. Sin embargo, entre ellos existe cierto grado de solapamiento y, en mi opinión, ninguno cubre todas las necesidades en la gestión de datos de principio a fin. Por esta razón, en esta segunda parte del artículo, me centraré en los aspectos más importantes a considerar cuando se manipulan los datos basándome en mi experiencia profesional y en el Cloud de Azure, que es mi entorno profesional.

Data Manipulation

En el ámbito del procesamiento de datos, existen varias etapas clave que debemos considerar para preparar y adecuar los datos para su uso. Primero y más importante, es crucial tener un conocimiento profundo de nuestros datos, ya que, sin este, no podremos procesarlos de manera efectiva.

Una vez que comprendemos a fondo nuestros datos, podemos proceder a procesarlos y transformarlos de manera que se ajusten a los criterios establecidos por nuestra empresa. Este proceso nos permitirá lograr una homogeneidad en los datos, asegurando que sean coherentes y precisos.

Después de identificar cómo debemos procesar y transformar nuestros datos, debemos ejecutar las diferentes manipulaciones y transformaciones necesarias. En algunos casos, puede ser necesario estructurar o limpiar los datos para asegurar su preparación para su uso.

Finalmente, es importante examinar los datos resultantes desde una perspectiva global, garantizando que abordamos todas las dimensiones de la calidad de los datos. Esta etapa nos permitirá obtener una visión general de cómo quedan los datos al final de todo el proceso.

Estas son las partes que abordaremos en el presente artículo.

Descubriendo nuestros datos

Este proceso implica entender a fondo nuestros datos y familiarizarnos con ellos, de manera que sepamos en qué aspectos debemos trabajar. En este caso, definimos dos pasos consecutivos:

  • Entendimiento funcional (La Teoría): implica varias reuniones con los propietarios de los datos para entender qué significa cada uno de los datos con los que vamos a trabajar.
  • Entendimiento Técnico (La Práctica): Aquí debemos conocer la realidad de nuestros datos, si falta información, las tipologías de datos, etc. Para ello, es mejor hacer uso de técnicas de Análisis Exploratorio de Datos (EDA, por sus siglas en inglés).

Este proceso es vital, pero puede consumir mucho tiempo si se realiza manualmente, por lo que es mejor usar librerías específicas para estos procesos:

  • Python: Sweetviz, Autoviz, Pandas-profiling, Data-Prep, D-Tale, Dabl QuickDA, DataTile, Lux, ExploryPy
  • R: SmartEda, DataExplorer, DlookR
  • Databricks: Bamboolib

Donde hacemos la manipulación de los datos

Una vez que entendemos y conocemos nuestros datos, debemos determinar dónde realizar el procesamiento de los datos. Normalmente, en el procesamiento de datos se plantea una arquitectura por capas. Una de las arquitecturas más conocidas es la del medallón, donde en cada una de las capas la información tiene una calidad diferente, similar a lo que ocurre con los metales preciosos.

  • Bronze: Se refiere a la información cruda, extraída de los sistemas de origen con nula o poca transformación, que se conserva como origen histórico de datos.
  • Silver: O Data Lake. Información que ya ha sido procesada, a la cual se le ha dado una estructura adecuada, se ha limpiado, enriquecido y pasado por ciertas validaciones o filtros de calidad, y que ya está lista para su uso.
  • Golden: Extracciones de información dirigida y agregada para su publicación según las necesidades de cada negocio, ya sea para tableros de control, uso en modelos de IA, análisis, etc.

Además de estas tres capas, a veces se añade una etapa cero o de Landing Zone, donde se desdobla la capa de Bronze. En esta Zona de desembarque o capa Cero se descargan los datos, y al trasladarlos a Bronze se realiza una transformación mínima, como por ejemplo para eliminar datos de carácter personal o PII, de manera que los datos anonimizados se conservan en Bronze, y los datos originales con información personal se eliminan.

Las diferentes transformaciones suelen realizarse en el paso de Bronze a Silver, aunque no siempre tiene que ser así. Debemos analizar y entender las excepciones a nuestra regla, como por ejemplo el caso de la eliminación de datos temporales que mencionábamos antes, o transformaciones al disponibilizar los datos en Gold, que por requerimientos de negocio debamos cambiar o modificar alguna tipología, cambios de unidades o de horas, etc.

Qué manipulaciones existen

Estructurando y dando forma a nuestros datos

Una vez que conocemos la realidad de nuestros datos de origen, debemos decidir cuál será la estructura y formato de nuestros datos, este formato o estructura tiene dos enfoques.

  • Estructura o formato externo: Es el formato en el que vamos a almacenar nuestros datos, puede ser:
    • Estructurado: BBDD/DWH, Parquet, Delta, Avro, etc.
    • Semi-estructurado: No-SQL (cosmosDB, Cassandra, Mongo, etc.), Ficheros (JSON, XML, etc.)
    • No-estructurado: Imágenes, videos, Audios, etc.
  • Estructura o formato interno: En este caso debemos saber cuál es el formato y/o unidades en los que queremos o necesitamos tener nuestros datos:
    • Fechas y horas: de forma que todo nuestro sistema tenga un formato común, y si es diferente por alguna razón, esto este justificado.
    • Sistema de numeración: Definir si se usa “.” o “,” como separador decimal, si los porcentajes van en tanto por cierto o tanto por uno, etc.
    • Unidades: En que unidades de trabaja, SI, anglosajón, especifico de la empresa, etc.
    • Etc.

Transformación de datos

Una vez que los datos han sido descargados y almacenados en la zona de Bronce, es necesario realizar una limpieza y aplicar diversas reglas de transformación y calidad sobre los mismos. Esto garantiza que los datos estén preparados para satisfacer las diversas necesidades que puedan surgir. A continuación, presentamos una lista no exhaustiva de las transformaciones más típicas, aunque esta puede ampliarse en función de la naturaleza de los datos procesados:

Renombrado de campos: Este proceso implica cambiar los nombres de las entidades para hacerlos más comprensibles para el negocio o para facilitar el posterior procesamiento de datos.

Proceso de Data Transformation: Este procesamiento genera nueva información, ya sea dentro del propio registro o como nuevas entidades. Este paso puede realizarse al insertar en la zona de Plata o al disponibilizar a la zona de Oro, pero por coherencia, generalmente se realiza en Plata.

  • Data Aggregation: Implica añadir nuevos campos, como por ejemplo una nueva columna con el consumo de un teléfono móvil, o una media móvil de los últimos n consumos del cliente, etc.
  • Data Creation: también se conoce como enriquecimiento de datos, esto normalmente implica crear nuevas tablas o entidades o añadir nuevas columnas sobre las ya existentes, utilizando nueva información, como por ejemplo, datos de una fuente externa (ej: datos climatológicos), o añadiendo valores nuevos (ej: una media móvil de los últimos valores), etc.
  • Atribute Construction or Splitting: Aquí se trata de dividir o unificar cierta información que pueda ser más útil, como fusionar un campo de fecha y hora y convertirlo en un valor único, o a la inversa, según las necesidades detectadas durante el análisis.
  • Timeliness: Cuando hablamos de un marco temporal, se trata de tener datos que solo sean válidos para un cierto periodo de tiempo. Por ello, debemos aplicar procesos que nos indiquen el inicio del marco temporal, el final o ambos.
  • Data Homogenization: todos los datos que se inserten deberán tener el mismo formato, por ejemplo, en decimales, formatos de fechas, unidades (metros o kilómetros, segundos u horas, etc…)

Data Cleaning

Este proceso se utiliza para solucionar problemas con los datos en bruto y suele incluir los siguientes pasos:

  • Missing values: Se refiere a la inclusión de valores que falten y que sea necesario estimar. Aquí podemos trabajar con valores por defecto, medias o medianas, interpolaciones o imputaciones, etc.
  • Data Deduplication: Implica el borrado de registros duplicados, para ello es importante tener algún tipo de PK sobre los datos que nos permita verificar este punto. Pero por desgracia la vida no siempre es tan sencilla, así que, si tus datos no llevan PK o nada que te sirva como discriminador, no te quedará más remedio que generarte una PK agregada a partir de varios campos de la tabla, en algunos casos te podría llegar a interesar el hashear todo o casi todo el registro, para comparar únicamente por un campo, pero ojo con el rendimiento.
  • Noisy Data: Se trata de la detección de aquellos datos que sean valores atípicos o anómalos, ya sea para sustituir su valor, eliminar el registro, o lo que se considere necesario.
  • Data Deleting: Implica la eliminación de ciertas columnas que no sean necesarias para almacenar en el Data Lake.
  • Data Offuscation: Se refiere a la ocultación de datos para ocultar información, tales como encriptación, sustitución por hashes o *, etc.
  • Data Tokenization: En lugar de una ofuscación, los datos sensibles pueden tokenizarse para obtener reversibilidad.

Precision Data Framework

Como resumen de todo lo visto hasta hora, vemos que, en el entorno empresarial actual, donde la información es un activo invaluable, la adopción de un marco robusto para la calidad de los datos se vuelve indispensable. En este contexto, el Precision Data Framework se erige como una estructura integral diseñada para salvaguardar la integridad y confiabilidad de los datos en todas las fases de su ciclo de vida.

Exploraremos a continuación las dimensiones clave que conforman este framework, y que hemos ido viendo a lo largo de este post.

  • Exactitud (Accuracy): En el corazón del Precision Data Framework se encuentra el principio de exactitud. Los datos deben ser libres de errores tanto en su origen como en los procesamientos subsiguientes. Esto implica la implementación de rigurosas prácticas de validación y verificación en cada etapa del flujo de datos, garantizando la coherencia y fidelidad de la información.
  • Completitud (Completeness): La completitud se refiere a la garantía de que ningún dato se pierda en el proceso, desde su origen hasta las fases de filtrado y procesamiento posterior. El Precision Data Framework aborda este aspecto mediante la implementación de mecanismos eficaces para asegurar que todos los datos relevantes sean capturados y persistan a lo largo de su ciclo de vida, evitando omisiones que podrían afectar la toma de decisiones.
  • Validez (Validity): La validez en el contexto de datos implica que la información sea coherente, libre de anomalías y conforme a las normas establecidas. Esto se traduce en la exclusión de datos atípicos, fechas fuera de rango u otras irregularidades que puedan comprometer la integridad de la base de datos. El Precision Data Framework implementa rigurosos controles de validación para salvaguardar la coherencia y fiabilidad de los datos.
  • Marco Temporal (Timeliness): El marco temporal es esencial para contextualizar la información y garantizar su relevancia. El Precision Data Framework incorpora mecanismos para asignar y mantener marcos temporales apropiados, asegurando que los datos estén actualizados y sean pertinentes en un entorno empresarial dinámico. La frescura de los datos es prioritaria para respaldar una toma de decisiones informada.
  • Unicidad (Uniqueness): La unicidad de los datos se refiere a la ausencia de duplicados, un factor crítico para evitar inconsistencias y garantizar la integridad de las relaciones en la base de datos. El Precision Data Framework incorpora estrategias de identificación y eliminación de duplicados, basándose en claves primarias y únicas, para mantener la coherencia y singularidad de la información.
  • Consistencia (Consistency): La consistencia a lo largo de la organización y los diferentes orígenes de datos es esencial para evitar discrepancias y asegurar la cohesión de la información. El Precision Data Framework establece normas y procesos estandarizados para mantener la consistencia en la captura, almacenamiento y utilización de datos en todos los aspectos de la empresa.

Conclusión

En esta segunda parte hemos visto cuales son los elementos a tener en cuenta en la transformación de los datos, y como su implementación, no solo mejora la toma de decisiones, sino que también sienta las bases para la innovación continua en un entorno empresarial impulsado por datos.

Pero la pregunta que nos tenemos que hacer es “¿Es suficiente con esto?”, “¿Cómo hago para que todas estas transformaciones una vez implementadas sirvan para generar valor en la empresa?” pues lo que veremos en la tercera parte de este artículo, en donde veremos que se debe tener en cuenta a la hora de poner todo este proceso abstracto en producción en un sistema empresarial…

He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA