En las bases de datos relacionales modernas, la estimación de cardinalidad (CE) juega un papel crucial. En pocas palabras, la estimación de cardinalidad predice cuántos resultados intermedios devolverá una consulta de base de datos. Esta predicción tiene un gran impacto en la selección del plan de ejecución del optimizador de consultas, por ejemplo, al decidir el orden de las uniones, si se utilizan índices y el mejor método de unión. Si la estimación de cardinalidad no es precisa, el plan de ejecución puede verse seriamente afectado, lo que provoca que las consultas sean extremadamente lentas y afecta gravemente al rendimiento general de la base de datos.

Sin embargo, los métodos de estimación de cardinalidad existentes presentan muchas limitaciones. Las técnicas tradicionales de CE se basan en supuestos simplificados y, a menudo, no predicen con precisión la cardinalidad de consultas complejas, especialmente aquellas que involucran varias tablas y condiciones. Si bien los modelos de CE basados en aprendizaje automático pueden ofrecer una mayor precisión, su aplicación se ve limitada por los largos tiempos de entrenamiento, la necesidad de grandes conjuntos de datos y la falta de evaluaciones comparativas sistemáticas.

Para llenar este vacío, el equipo de investigación de Google ha presentado CardBench, un nuevo marco de evaluación comparativa. CardBench incluye más de 20 bases de datos del mundo real y miles de consultas, superando con creces los benchmarks anteriores. Esto permite a los investigadores evaluar y comparar sistemáticamente diferentes modelos de CE basados en aprendizaje automático en diversas condiciones. Este benchmark admite tres configuraciones principales: modelos basados en instancias, modelos de cero disparos y modelos de ajuste fino, adecuados para diferentes necesidades de entrenamiento.

El diseño de CardBench también incluye una serie de herramientas que pueden calcular las estadísticas de datos necesarias, generar consultas SQL reales y crear gráficos de consultas anotados para entrenar modelos de CE.

Este benchmark proporciona dos conjuntos de datos de entrenamiento: uno para consultas de tablas individuales con múltiples predicados de condiciones de filtro, y otro para consultas de unión binaria que involucran dos tablas. El benchmark incluye 9125 consultas de tabla única y 8454 consultas de unión binaria, aplicables a uno de los conjuntos de datos más pequeños, asegurando así un entorno robusto y desafiante para la evaluación del modelo. Las etiquetas de los datos de entrenamiento, originarios de Google BigQuery, requirieron 7 años de CPU de tiempo de ejecución de consultas, lo que destaca la importante inversión computacional para crear este benchmark. Al proporcionar estos conjuntos de datos y herramientas, CardBench reduce la barrera de entrada para los investigadores que desarrollan y prueban nuevos modelos de CE.

image.png

En la evaluación del rendimiento realizada con CardBench, los modelos de ajuste fino destacaron especialmente. Si bien los modelos de cero disparos tienen dificultades para mejorar la precisión cuando se aplican a conjuntos de datos invisibles, especialmente en consultas complejas que involucran uniones, los modelos de ajuste fino pueden alcanzar una precisión comparable a la de los métodos basados en instancias, con muchos menos datos de entrenamiento. Por ejemplo, el modelo de red neuronal gráfica (GNN) ajustado finamente logró un error q mediano de 1.32 y un error q del percentil 95 de 120 en las consultas de unión binaria, superando significativamente a los modelos de cero disparos. Los resultados muestran que incluso con 500 consultas, el ajuste fino de los modelos preentrenados puede mejorar significativamente su rendimiento. Esto los hace adecuados para aplicaciones prácticas donde los datos de entrenamiento pueden ser limitados.

image.png

El lanzamiento de CardBench ofrece una nueva esperanza para el campo de la estimación de cardinalidad basada en aprendizaje automático, permitiendo a los investigadores evaluar y mejorar los modelos de manera más eficiente, impulsando así el desarrollo futuro de este importante campo.

Enlace al artículo: https://arxiv.org/abs/2408.16170

Puntos clave:

- 📊 CardBench es un nuevo marco de evaluación comparativa que incluye 20 bases de datos reales y miles de consultas, lo que permite una evaluación sistemática de los modelos de estimación de cardinalidad basados en aprendizaje automático.

- 🛠️ Este benchmark proporciona herramientas para calcular estadísticas de datos, generar consultas SQL y crear gráficos de consultas, reduciendo la barrera de entrada para los investigadores.

- 🚀 Los modelos de ajuste fino destacaron en la evaluación del rendimiento, alcanzando una precisión similar a la de los modelos tradicionales con una cantidad reducida de datos de entrenamiento, mostrando un gran potencial para aplicaciones prácticas.