Documentación

La compartición de datos o data sharing  se ha convertido en un pilar imprescindible para el avance de la analítica y el intercambio de conocimiento, tanto en el ámbito privado como en el público. Las organizaciones de cualquier tamaño y sector –empresas, administraciones públicas, instituciones de investigación, comunidades de desarrolladores o individuos– encuentran un fuerte valor en la capacidad de compartir información de forma segura, fiable y eficiente. Este intercambio no se limita a datos en crudo o datasets estructurados; también se extiende a productos de datos más avanzados, tales como modelos de machine learning entrenados, dashboards analíticos, resultados de experimentos científicos y otros artefactos complejos que generan un gran impacto a través de su reutilización.

En este contexto, la importancia de la gobernanza de estos recursos cobra un papel crítico. No es suficiente con disponer de un método para mover ficheros de un sitio a otro; es necesario garantizar aspectos clave como el control de acceso (quién puede leer o modificar cierto recurso), la trazabilidad y la auditoría (saber quién ha accedido, cuándo y con qué finalidad) o el cumplimiento de regulaciones o estándares, especialmente en entornos empresariales y gubernamentales.

Con el fin de unificar estos requisitos, Unity Catalog surge como un almacén de metadatos (metastore) de próxima generación, pensado para centralizar y simplificar la gobernanza de datos y recursos de datos. Originalmente, Unity Catalog formaba parte de los servicios ofrecidos por la plataforma Databricks, pero el proyecto ha dado un salto a la comunidad de código abierto para convertirse en un estándar de referencia. Esto implica que ahora es posible utilizarlo, modificarlo y, en definitiva, contribuir a su evolución desde un entorno libre y colaborativo. Con ello, se espera que más organizaciones adopten sus modelos de catálogo y compartición, impulsando la reutilización de datos y la creación de flujos analíticos e innovaciones tecnológicas.

Unity Catalog Overview

Fuente: https://docs.unitycatalog.io/

Accede al repositorio del laboratorio de datos en Github.

Ejecuta el código de pre-procesamiento de datos sobre Google Colab.

Objetivos

En este ejercicio, aprenderemos a configurar Unity Catalog, una herramienta que nos ayuda a organizar y compartir datos en la nube de manera segura. Aunque utilizaremos algo de código, explicaremos cada paso para que incluso personas con poca experiencia en programación puedan seguirlo a través de un laboratorio práctico.

Trabajaremos con un escenario realista donde gestionaremos datos sobre transporte público en diferentes ciudades. Crearemos catálogos de datos, configuraremos una base de datos y aprenderemos a interactuar con la información usando herramientas como Docker, Apache Spark y MLflow.

Nivel de dificultad: Intermedio.

Figura 1. Esquema Unity Catalog

Recursos Necesarios

En esta sección explicaremos los requisitos previos y recursos necesarios para poder desarrollar este laboratorio. El laboratorio está pensado para desarrollarse en un ordenador personal estándar (Windows, MacOS, Linux).

Adicionalmente utilizaremos las siguientes herramientas y entornos de trabajo:

  • Docker Desktop: Docker es una herramienta que nos permite ejecutar aplicaciones en un entorno aislado llamado contenedor. Un contenedor es como una "caja" que contiene todo lo necesario para que una aplicación funcione correctamente, sin importar el sistema operativo que estés usando.
  • Visual Studio Code: Nuestro entorno de trabajo será un Notebook Python que ejecutaremos y manipularemos a través del editor de código ampliamente utilizado Visual Studio Code (VS Code).
  • Unity Catalog: Es una herramienta de gobernanza de datos que permite organizar y controlar el acceso a recursos como tablas, volúmenes de datos, funciones o modelos de machine learning. A lo largo del laboratorio, utilizaremos su versión open source, que puede desplegarse localmente, para aprender a gestionar catálogos de datos con control de permisos, trazabilidad y estructura jerárquica. Unity Catalog actúa como un metastore centralizado, facilitando la colaboración y la reutilización de datos de forma segura.
  • Amazon Web Services: AWS será el proveedor cloud que utilizaremos para alojar ciertos datos del laboratorio, en concreto los datos en crudo (como archivos JSON) que gestionaremos mediante volúmenes de datos. Aprovecharemos su servicio Amazon S3 para almacenar estos archivos y configuraremos las credenciales y permisos necesarios para que Unity Catalog pueda interactuar con ellos de forma controlada.

Desarrollo del ejercicio

A lo largo del ejercicio, los participantes desplegarán la aplicación, comprenderán su arquitectura e irán construyendo un catálogo de datos paso a paso, aplicando buenas prácticas de organización, control de acceso y trazabilidad.

Despliegue y primeros pasos

  • Clonamos el repositorio de Unity Catalog y lo levantamos con Docker.
  • Exploramos su arquitectura: un backend accesible por API y CLI, y una interfaz gráfica intuitiva.
  • Navegamos por los recursos que gestiona Unity Catalog: catálogos, esquemas, tablas, volúmenes, funciones y modelos.

Figura 2. Captura de pantalla

¿Qué aprenderemos aquí?

Cómo levantar la aplicación, sus componentes principales, y cómo empezar a interactuar con ella desde distintos puntos: web, API y CLI.

Organización de recursos

  • Configuramos una base de datos MySQL externa como repositorio de metadatos.
  • Creamos catálogos para representar distintas ciudades y esquemas para distintos servicios públicos.


Figura 3. Captura de pantalla

¿Qué aprenderemos aquí?

Cómo estructurar el gobierno de datos a distintos niveles (ciudad, servicio, dataset) y cómo gestionar los metadatos de forma centralizada y persistente.

Construcción de datos y uso real

  • Creamos tablas estructuradas para representar rutas, autobuses o paradas.
  • Cargamos datos reales en estas tablas usando PySpark.Habilitamos un bucket en AWS S3 como almacenamiento de datos en crudo (volúmenes).
  • Subimos ficheros JSON con eventos de telemetría y los gobernamos desde Unity Catalog.


Figura 4. Esquema

¿Qué aprenderemos aquí?


Cómo convivir con distintos tipos de datos (estructurados y no estructurados), y cómo integrarlos con fuentes externas (como AWS S3).

Funciones reutilizables y modelos de IA

  • Registramos funciones personalizadas (como el cálculo de distancias) reutilizables desde el catálogo.
  • Creamos y registramos modelos de machine learning con MLflow.
  • Ejecutamos predicciones desde Unity Catalog como si fueran cualquier otro recurso del ecosistema.


Figura 5. Captura de pantalla

 

¿Qué aprenderemos aquí?

Cómo ampliar el gobierno de datos a funciones y modelos, y cómo facilitar su reutilización y trazabilidad en entornos colaborativos.

 

Resultados y conclusiones

Como resultado de este laboratorio práctico, vamos a poner conocer la herramienta Unity Catalog como plataforma abierta para la gobernanza de datos y recursos de datos como modelos de machine learning. Exploraremos, además, el contexto de un caso de uso concreto y con un ecosistema de herramientas similar al que podemos encontrar en una organización real, sus capacidades, su modo de despliegue y su uso.

Mediante este ejercicio configuraremos y utilizaremos Unity Catalog para organizar datos de transporte público. En concreto, podrás:

  • Aprender a instalar herramientas como Docker o Spark.
  • Crear catálogos, esquemas y tablas en Unity Catalog.
  • Cargar datos y almacenarlos en un bucket de Amazon S3.
  • Implementar un modelo de machine learning con MLflow.

Veremos, en los próximos años, si este tipo de herramientas alcanzan el nivel de estandarización necesario para transformar la forma en que se administran y comparten los recursos de datos en múltiples sectores.

¡Te animamos a realizar más ejercicios de ciencia de datos! Accede al repositorio aquí


Contenido elaborado por Juan Benavente, ingeniero superior industrial y experto en tecnologías ligadas a la economía del dato. Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.

 

calendar icon
Documentación

En el panorama actual del análisis de datos y la inteligencia artificial, la generación automática de informes completos y coherentes representa un desafío significativo. Mientras que las herramientas tradicionales permiten visualizar datos o generar estadísticas aisladas, existe la necesidad de sistemas que puedan investigar un tema a fondo, recopilar información de diversas fuentes, y sintetizar hallazgos en un informe estructurado y coherente.

En este ejercicio práctico, exploraremos el desarrollo de un agente de generación de reportes basado en LangGraph e inteligencia artificial. A diferencia de los enfoques tradicionales basados en plantillas o análisis estadísticos predefinidos, nuestra solución aprovecha los últimos avances en modelos de lenguaje para:

  1. Crear equipos virtuales de analistas especializados en diferentes aspectos de un tema.
  2. Realizar entrevistas simuladas para recopilar información detallada.
  3. Sintetizar los hallazgos en un informe coherente y bien estructurado.

Accede al repositorio del laboratorio de datos en Github.

Ejecuta el código de pre-procesamiento de datos sobre Google Colab.

Como se muestra en la Figura 1, el flujo completo del agente sigue una secuencia lógica que va desde la generación inicial de preguntas hasta la redacción final del informe.

Diagrama de flujo del funcionamiento del agente

Figura 1. Diagrama de flujo del agente.

Arquitectura de la aplicación

El núcleo de la aplicación se basa en un diseño modular implementado como un grafo de estados interconectados, donde cada módulo representa una funcionalidad específica en el proceso de generación de reportes. Esta estructura permite un flujo de trabajo flexible, recursivo cuando es necesario, y con capacidad de intervención humana en puntos estratégicos.

Componentes principales

El sistema se compone de tres módulos fundamentales que trabajan en conjunto:

1. Generador de Analistas Virtuales

Este componente crea un equipo diverso de analistas virtuales especializados en diferentes aspectos del tema a investigar. El flujo incluye:

  • Creación inicial de perfiles basados en el tema de investigación.
  • Punto de retroalimentación humana que permite revisar y refinar los perfiles generados.
  • Regeneración opcional de analistas incorporando sugerencias.

Este enfoque garantiza que el informe final incluya perspectivas diversas y complementarias, enriqueciendo el análisis.

2. Sistema de Entrevistas

Una vez generados los analistas, cada uno participa en un proceso de entrevista simulada que incluye:

  • Generación de preguntas relevantes basadas en el perfil del analista.
  • Búsqueda de información en fuentes vía Tavily Search y Wikipedia.
  • Generación de respuestas informativas combinando la información obtenida.
  • Decisión automática sobre continuar o finalizar la entrevista en función de la información recopilada.
  • Almacenamiento de la transcripción para su procesamiento posterior.

El sistema de entrevistas representa el corazón del agente, donde se obtiene la información que nutrirá el informe final. Tal y como se muestra en la Figura 2, este proceso puede monitorizarse en tiempo real mediante LangSmith, una herramienta abierta de observabilidad que permite seguir cada paso del flujo.

Logs de Langsmith, plataforma de monitorizaci'on

Figura 2. Monitorización del sistema vía LangGraph. Ejemplo concreto de una interacción analista-entrevistador.

3. Generador de Informes

Finalmente, el sistema procesa las entrevistas para crear un informe coherente mediante:

  • Redacción de secciones individuales basadas en cada entrevista.
  • Creación de una introducción que presente el tema y la estructura del informe.
  • Organización del contenido principal que integra todas las secciones.
  • Generación de una conclusión que sintetiza los hallazgos principales.
  • Consolidación de todas las fuentes utilizadas.

La Figura 3 muestra un ejemplo del informe resultante del proceso completo, demostrando la calidad y estructura del documento final generado automáticamente.

Informe generado por el agente

Figura 3. Vista del informe resultante del proceso de generación automática al prompt de “Datos abiertos en España”.

 

¿Qué puedes aprender?

Este ejercicio práctico te permite aprender:

Integración de IA avanzada en sistemas de procesamiento de información:

  • Cómo comunicarse efectivamente con modelos de lenguaje.
  • Técnicas para estructurar prompts que generen respuestas coherentes y útiles.
  • Estrategias para simular equipos virtuales de expertos.

Desarrollo con LangGraph:

  • Creación de grafos de estados para modelar flujos complejos.
  • Implementación de puntos de decisión condicionales.
  • Diseño de sistemas con intervención humana en puntos estratégicos.

Procesamiento paralelo con LLMs:

  • Técnicas de paralelización de tareas con modelos de lenguaje.
  • Coordinación de múltiples subprocesos independientes.
  • Métodos de consolidación de información dispersa.

Buenas prácticas de diseño:

  • Estructuración modular de sistemas complejos.
  • Manejo de errores y reintentos.
  • Seguimiento y depuración de flujos de trabajo mediante LangSmith.

Conclusiones y futuro

Este ejercicio demuestra el extraordinario potencial de la inteligencia artificial como puente entre los datos y los usuarios finales. A través del caso práctico desarrollado, podemos observar cómo la combinación de modelos de lenguaje avanzados con arquitecturas flexibles basadas en grafos abre nuevas posibilidades para la generación automática de informes.

La capacidad de simular equipos de expertos virtuales, realizar investigaciones paralelas y sintetizar hallazgos en documentos coherentes, representa un paso significativo hacia la democratización del análisis de información compleja.

Para aquellas personas interesadas en expandir las capacidades del sistema, existen múltiples direcciones prometedoras para su evolución:

  • Incorporación de mecanismos de verificación automática de datos para garantizar la precisión.
  • Implementación de capacidades multimodales que permitan incorporar imágenes y visualizaciones.
  • Integración con más fuentes de información y bases de conocimiento.
  • Desarrollo de interfaces de usuario más intuitivas para la intervención humana.
  • Expansión a dominios especializados como medicina, derecho o ciencias.

En resumen, este ejercicio no solo demuestra la viabilidad de automatizar la generación de informes complejos mediante inteligencia artificial, sino que también señala un camino prometedor hacia un futuro donde el análisis profundo de cualquier tema esté al alcance de todos, independientemente de su nivel de experiencia técnica. La combinación de modelos de lenguaje avanzados, arquitecturas de grafos y técnicas de paralelización abre un abanico de posibilidades para transformar la forma en que generamos y consumimos información.

calendar icon
Aplicación

AirSPI es es un visualizador de marcas comerciales publicadas en el Boletín Oficial de la Propiedad Industrial (www.oepm.es):

  • Visualización de los últimos 5 boletines.
  • Búsqueda de parecidos fonéticos entre las Marcas Publicadas y denominaciones introducidas por el usuario.
  • Búsqueda de Denominaciones en Boletín.
  • Búsqueda de Agentes de Propiedad Industrial por situación geográfica.
calendar icon