Parte 07 — Grafos, columnas, tiempo y búsqueda
Modelos especializados y el criterio para saber cuando la carga de trabajo justifica salir del relacional.
5 clases · 15 horas ·
20 conceptos · 16 fuentes
Antes de esta parte
Esta parte se apoya en lo trabajado antes. Si vienes de fuera del programa, revisa al menos el vocabulario de:
De qué trata esta parte
Cinco familias especializadas y un mismo criterio para todas: qué carga de trabajo justifica salir del relacional, y qué se paga por hacerlo. La estructura de la parte es deliberadamente comparativa, porque el error habitual no es elegir mal el motor especializado, sino adoptarlo sin haber comprobado que el relacional ya no daba más.
Grafos, para los recorridos de profundidad variable que SQL resuelve mal —con la aclaración honesta de cuándo una CTE recursiva sobre PostgreSQL es suficiente—. Columnas anchas, con su método de diseño invertido: primero la lista de consultas, después una tabla por consulta. Series temporales, con sus tres restricciones propias: cardinalidad de etiquetas, retención y submuestreo. Búsqueda de texto, con el índice invertido y la relevancia de TF-IDF a BM25. Y analítica columnar, donde se miden las cuatro contribuciones que producen los dos órdenes de magnitud, en lugar de atribuirlos al producto.
Las clases 041 y 042 son además preparación directa de la parte 13: BM25 vuelve como componente léxico de la búsqueda híbrida, y precisión y exhaustividad vuelven como métricas de un sistema RAG.
Al terminar esta parte podrás
- Decidir si un recorrido justifica un motor de grafos o si una CTE recursiva es suficiente.
- Diseñar tablas de columnas anchas partiendo de la lista de consultas y no del modelo conceptual.
- Controlar la cardinalidad, la retención y el submuestreo de una serie temporal.
- Explicar cómo se construye un índice invertido y cómo BM25 ordena los resultados.
- Medir de dónde sale la ventaja de un motor columnar en lugar de atribuirla al producto.
Las clases, una por una
Intermedio · 3 h ·
3 fuentes · requiere 026, 028
Los recorridos que SQL hace mal: profundidad variable, caminos y vecindarios. Explica la ventaja estructural del motor de grafos —la reunión sin índice, porque cada nodo guarda las direcciones de sus vecinos— y también cuándo una CTE recursiva sobre PostgreSQL es suficiente y no hace falta otro sistema.
nodo arista recorrido de profundidad variable reunión sin índice
Avanzado · 3 h ·
3 fuentes · requiere 019, 034
El método de diseño invertido de las columnas anchas: primero se escribe la lista de consultas y después una tabla por consulta, aunque los mismos datos queden repetidos cinco veces. La clave de partición decide en qué nodo vive la fila y la de agrupamiento el orden dentro de ella; equivocarse en la primera es el error de diseño más caro de esta familia.
clave de partición clave de agrupamiento desnormalización por consulta
Intermedio · 3 h ·
3 fuentes · requiere 006, 019
Las series temporales y sus tres restricciones propias: la cardinalidad de etiquetas, que explota si se usa un identificador como etiqueta; la retención, que hay que decidir antes de acumular; y el submuestreo con agregados continuos, que es cómo se sostiene un histórico largo sin crecimiento lineal.
cardinalidad de etiquetas submuestreo retención agregado continuo
Intermedio · 3 h ·
3 fuentes · requiere 004, 025
Por qué `LIKE '%algo%'` no es buscar. Presenta el índice invertido, el analizador que decide qué es un término, y la relevancia de TF-IDF a BM25. Cierra con precisión y exhaustividad, el par de métricas que hace que una búsqueda se pueda evaluar en lugar de opinar sobre ella; ambas reaparecen en la parte 13.
índice invertido analizador TF-IDF BM25 precisión y exhaustividad
Avanzado · 3 h ·
4 fuentes · requiere 033
De dónde salen realmente los dos órdenes de magnitud de la analítica: leer solo las columnas necesarias, comprimirlas mejor porque los valores contiguos se parecen, procesarlas en lotes vectorizados y podar bloques enteros por sus estadísticas. La clase mide las cuatro contribuciones en lugar de atribuirlas al producto.
almacenamiento columnar compresión ejecución vectorizada poda de particiones
Errores frecuentes en esta parte
Cada uno de estos es una creencia habitual y su corrección.
- «Mis datos son un grafo, necesito un motor de grafos.» Casi todo es un grafo. Lo que justifica el motor es el recorrido de profundidad variable, no la forma de los datos.
- «En Cassandra modelo como en SQL y ya.» Una consulta que no fija la clave de partición obliga a preguntar a todo el anillo; es el error de diseño número uno de esa familia.
- «Pongo el identificador de usuario como etiqueta para poder filtrar.» Eso multiplica la cardinalidad de series y tumba el motor de series temporales.
- «Con `LIKE '%texto%'` ya busco.» Eso recorre la tabla y no ordena por relevancia. Buscar es índice invertido más una función de puntuación.
Vocabulario de la parte
Los 20 términos que esta parte introduce. Todos están también
en el glosario del programa con sus términos
relacionados.
Fuentes usadas en esta parte
16 obras distintas sostienen lo que se afirma en estas
5 clases.
Otras partes