Sesión 7: Más Allá de lo Relacional

La Evolución del Lakehouse: Modelos Documental, Grafo y Vectorial

Desbloqueando el Poder de la IA y los Datos No Estructurados en Databricks

Agenda de la Sesión

  1. La Realidad de los Datos: ¿Por qué lo relacional no siempre es suficiente?
  2. El "Lakehouse Multi-Modelo": Introducción a Documentos, Grafos y Vectores.
  3. Del Texto al Conocimiento: Construyendo nuestro grafo de entidades con IA.
  4. El Cerebro de la Búsqueda: Implementando un motor de búsqueda semántica con vectores.
  5. Conclusiones: La Arquitectura Unificada del Lakehouse Moderno.

El Desafío: Datos del Mundo Real

Nuestro dataset de noticias: un torrente de texto, metadatos y relaciones implícitas. ¿Cómo lo convertimos en conocimiento accionable?

-- Vista simplificada de 'noticias_silver'
+--------------------+--------------------------------+--------------------------+
| id_noticia         | titulo                         | contenido                |
+--------------------+--------------------------------+--------------------------+
| abc1234            | Operador de grúa...            | Tras una agresión de...  |
| def5678            | La Policía de Cúcuta...        | Un operativo en Los...   |
+--------------------+--------------------------------+--------------------------+
La Limitación Relacional:
Las bases de datos relacionales son geniales para datos estructurados, pero...

🚨 ¿Cómo busco por *significado*?
🚨 ¿Cómo encuentro *conexiones* entre personas y eventos?
🚨 ¿Cómo adapto mi esquema a *nuevos tipos de datos*?

¡Conflicto! El modelo relacional es rígido para la complejidad del lenguaje natural.

La Filosofía "Multi-Modelo"

Imagina una caja de herramientas: ¿usarías un martillo para atornillar? ¡Claro que no!

De la misma forma, no todos los problemas de datos se resuelven mejor con el modelo relacional. Necesitamos la herramienta adecuada para cada trabajo.


El Lakehouse: Una Caja de Herramientas Completa


Databricks nos permite combinar los mundos de datos relacionales, documentales, de grafos y vectoriales, todo en una única plataforma.

Modelo 1: El Documento (La Noticia como Entidad Completa)

Una noticia es, por naturaleza, un documento. En lugar de romperla en tablas pequeñas, la tratamos como una unidad cohesiva. Delta Lake soporta tipos de datos `STRUCT` y `ARRAY` perfectamente.

¿Por qué Documental?

  • ✅ Lecturas Rápidas: Obtener una noticia completa es una sola lectura.
  • ✅ Flexibilidad: Fácilmente añade nuevos campos sin alterar el esquema.
  • ✅ Coherencia: Mantener la información relacionada junta.
-- NOTICIAS_SILVER (ejemplo de estructura documental)
CREATE OR REPLACE TABLE noticias_silver (
  id_noticia STRING,
  titulo STRING,
  contenido STRING,
  fecha TIMESTAMP,
  enlace STRING,
  metadatos STRUCT<
    fuente STRING,
    categoria ARRAY,
    autor STRING,
    fecha_ingesta TIMESTAMP
  >
);

-- Consulta para acceder a los metadatos como en un documento JSON
SELECT
  titulo,
  metadatos.fuente AS fuente_noticia,
  metadatos.categoria[0] AS categoria_principal
FROM noticias_silver
WHERE metadatos.categoria[0] = 'Actualidad'
LIMIT 2;

Metáfora: Piensa en la noticia como un expediente único con toda su información organizada internamente.

Modelo 2: El Grafo (El Mapa de Conexiones)

Más allá de la noticia individual, ¿cómo se conectan las cosas? Las personas, organizaciones, eventos y ubicaciones están interconectados. Un modelo de grafo representa estas relaciones explícitamente.

¿Por qué Grafos?

  • ✅ Descubrimiento de Relaciones: Identifica quién está conectado a quién y cómo.
  • ✅ Análisis de Redes: Influencia, comunidades, patrones de fraude.
  • ✅ Preguntas Complejas: "¿Quiénes son los asociados de X, que también estuvieron en el evento Y?"

Metáfora: Un grafo es el "GPS" de tu información, mostrándote no solo dónde están las cosas, sino cómo llegar de una a otra.

La Magia: De Texto a Grafo con IA (NER y Relaciones)

Construir un grafo manualmente sería imposible. Aquí es donde la Inteligencia Artificial entra en juego.

Usamos un Modelo de Lenguaje Grande (LLM) para que lea cada noticia y automáticamente extraiga:

  • Nodos: Entidades (Personas, Organizaciones, Lugares).
  • Aristas: Las relaciones entre esas entidades (trabaja_en, asistió_a, reportó_sobre).

-- Ejemplo de extracción de entidades con ai_extract()
SELECT
  titulo,
  ai_extract(contenido, ARRAY('person', 'organization', 'location', 'event')) AS entidades_extraidas
FROM noticias_silver
LIMIT 1;

¡Transformamos datos no estructurados en una red estructurada de conocimiento!

Modelo 3: El Vector (El Cerebro de la Búsqueda Semántica)

Si los documentos son el expediente y los grafos son el GPS, los vectores son el "ADN del significado". Convierten texto en listas de números (embeddings) que capturan su esencia contextual.

¿Por qué Vectores?

  • ✅ Búsqueda por Significado: Encuentra contenido relevante aunque no contenga las palabras exactas.
  • ✅ Recomendaciones Inteligentes: "Si te gustó esto, te gustará aquello".
  • ✅ Fundamento para RAG (Retrieval Augmented Generation): Potencia chatbots y IA generativa.

Metáfora: Cada noticia se convierte en un punto en un "espacio de significado" gigante. Las noticias con significados similares están cerca unas de otras.

El Pipeline de Búsqueda Semántica en Databricks

Un enfoque de extremo a extremo para transformar texto en conocimiento buscable.

  1. Fuente de Datos: Noticias en formato Delta Lake (`noticias_silver`).
  2. Generación de Embeddings: `ai_query()` en SQL convierte cada noticia en un `contenido_vector` en `noticias_gold`.
  3. Indexación: Un índice de Vector Search (gestionado con `VectorSearchClient`) organiza eficientemente estos vectores.
  4. Pregunta del Usuario: También se convierte en un vector.
  5. Búsqueda de Similitud: El índice encuentra los vectores (noticias) más cercanos al vector de la pregunta.
  6. Resultados: La información relevante se devuelve al usuario.

¡El Gran Aprendizaje! SQL vs. Python UDFs

Encontramos el camino fácil (y el difícil) para generar embeddings a escala.

CaracterísticaUDF de Python (`@pandas_udf`)SQL (`ai_query()`)
ComplejidadAlta: Serialización, autenticación distribuida, dependencias.Baja: Una simple función SQL.
RendimientoBueno, pero puede tener sobrecarga de serialización.Óptimo: Integración nativa y optimizada por Databricks.
MantenimientoMás código Python, más puntos de fallo.Sencillo: Declarativo en SQL.
CompatibilidadDesafíos con "Serverless Compute" sin `sparkContext`.Excelente: Funciona en todos los tipos de cómputo.
Recomendado para...Lógica Python compleja no disponible en SQL.Generación de Embeddings y Llamadas a LLMs.

Lección: ¡Si puedes hacerlo en SQL con `ai_query`, HAZLO! Es más simple, rápido y robusto.

La Arquitectura Lakehouse Multi-Modelo

Hemos evolucionado de un simple almacén de datos a un Lakehouse inteligente capaz de manejar cualquier tipo de dato y caso de uso.


Datos Relacionales (Tablas Delta)
Modelo Documental (STRUCT/ARRAY)
Modelo de Grafo (Entidades y Relaciones)
Modelo Vectorial (Búsqueda Semántica)
Inteligencia Artificial (LLMs, Embeddings)

Conclusiones de la Sesión y del Curso

  • El modelo relacional es poderoso, pero los datos modernos requieren un enfoque multi-modelo.
  • La plataforma Lakehouse en Databricks es fundamentalmente flexible para implementar todos estos patrones (Documento, Grafo, Vector) de forma nativa.
  • La Inteligencia Artificial ya no es un paso final. Es una parte integral del pipeline de ingeniería de datos para transformar datos brutos en conocimiento accionable.
  • Dominar el Lakehouse significa dominar la convergenica de datos e IA.

¡Están listos para construir el futuro de los datos y la IA!

¡Gracias por su Atención!

¿Preguntas? | ¡Fue un placer acompañarlos en este viaje!