Esta publicación es la segunda parte de una serie de dos partes sobre cómo optimizar el rendimiento de los dashboards de IA/BI de Databricks a escala.
En la publicación anterior, nos centramos en cómo el diseño, los filtros, los parámetros y el almacenamiento en caché determinan la cantidad de trabajo que realiza el sistema por cada clic. Esas optimizaciones suelen ser suficientes para que los dashboards se sientan rápidos.
En esta publicación, nos enfocamos en los cimientos de la plataforma que garantizan su rapidez a medida que crece el uso. Analizaremos la selección y el dimensionamiento del warehouse, el modelado de datos y las elecciones de esquemas, el diseño de archivos y el clustering, y cuándo depender de la materialización en lugar del recálculo para lograr un rendimiento estable y predecible.
Ajuste la forma de su dashboard (páginas, mezcla de consultas, picos de actividad de los usuarios) al tipo y tamaño del DBSQL warehouse para que el sistema acepte el trabajo rápidamente sin ponerlo en cola.
Debido a que los widgets visibles se envían juntos, los dashboards generan naturalmente picos de concurrencia de corta duración. Si el warehouse no puede absorber la ráfaga, verá encolamiento (Peak Queued Queries > 0) y tiempos de carga de paneles inconsistentes, especialmente en las horas pico.
Para obtener más detalles, consulte: https://docs.databricks.com/aws/en/compute/sql-warehouse/warehouse-behavior
Los modelos de datos bien diseñados son una característica de rendimiento fundamental para los paneles de IA/BI. El esquema de estrella sigue siendo el patrón de modelado más eficaz y predecible para el análisis interactivo porque se alinea directamente con la forma en que se escriben y optimizan las consultas de BI.
En un esquema de estrella, una tabla de hechos central contiene eventos medibles (ventas, transacciones, clics) y se une a las tablas de dimensiones circundantes (fecha, cliente, producto, región). Esta estructura minimiza la complejidad de las uniones, reduce la duplicación de datos y permite agregaciones eficientes con patrones de consulta simples y estables. Como resultado, los dashboards ejecutan menos joins, escanean menos datos y se benefician de forma más consistente del almacenamiento en caché y la optimización de consultas.
Un detalle crítico, pero que a menudo se pasa por alto, son los tipos de datos de las claves de join. Los joins de las tablas de dimensiones y de hechos deben usar claves subrogadas basadas en enteros, no cadenas de texto. Los joins de enteros son significativamente más rápidos, requieren menos memoria, mejoran la eficiencia de la memoria caché y permiten que Photon ejecute los joins mediante rutas vectorizadas altamente optimizadas. Los joins basados en cadenas de texto aumentan el costo de la CPU y pueden convertirse en un cuello de botella oculto a medida que aumentan los datos y la simultaneidad.
En Databricks, este patrón encaja de forma natural con la arquitectura Lakehouse. La capa gold debe modelarse como hechos y dimensiones almacenados como tablas de Unity Catalog, lo que proporciona una base semántica gobernada y reutilizable para dashboards de IA/BI, vistas de métricas y vistas materializadas.
La conclusión es simple: modele según cómo se ejecutan realmente las consultas de BI. Un esquema de estrella con claves de unión de tipo entero en la capa gold ofrece un SQL más simple, uniones más rápidas y un rendimiento más predecible a escala.
Diseñe la disposición de sus datos para que los dashboards lean muchos menos datos por consulta; luego, deje que el motor aproveche las estadísticas de Parquet y las lecturas selectivas.
Databricks SQL es más rápido cuando puede:
Por lo tanto, las dos mayores ventajas son: compactar archivos a tamaños óptimos y
agrupar los datos en clústeres para que los predicados descarten archivos.
Hay más detalles disponibles aquí: https://www.databricks.com/discover/pages/optimize-data-workloads-guide
Un antipatrón clásico: un filtro de dashboard como WHERE customer_id = ? parece selectivo, pero si los datos no están agrupados, el motor sigue accediendo a una gran parte de los archivos porque las filas que coinciden están dispersas por todas partes.
Resultado: menos archivos accedidos, más bloques omitidos y menor tiempo de reloj de pared para la misma información, sin índices frágiles ni ajustes manuales.
Para más detalles, consulte:
En Optimización n.º 7: Aplicar las mejores prácticas de modelado de datos, nos centramos en la importancia del esquema de estrella con hechos, dimensiones y KPI claramente definidos. Las Metric Views son una continuación directa de estos principios en Databricks AI/BI.
Las vistas de métricas están diseñadas en torno a la semántica de BI: se componen de medidas y dimensiones, lo que las convierte en una abstracción natural para modelar KPI. Permiten que los equipos definan las métricas de negocio una vez y reutilicen los mismos KPI de forma coherente en múltiples dashboards, agentes y otras herramientas de cliente. Esto reduce la duplicación, evita la desviación de los KPI y mantiene la lógica analítica alineada a medida que crece la adopción.
Con la materialización para las Metric Views, Databricks precalcula y mantiene automáticamente los agregados de uso frecuente. Estos agregados se actualizan de forma incremental y, en el momento de la consulta, el optimizador reescribe de forma transparente las consultas del panel al resultado precalculado que mejor coincida. Como resultado, las consultas de los paneles analizan muchos menos datos por interacción, sin que los equipos deban administrar tablas de agregación separadas o canalizaciones personalizadas.
Si no se usan las Vistas de métricas, se puede aplicar el mismo enfoque con Vistas materializadas. Por ejemplo, se puede precalcular y almacenar una versión agregada de una tabla de hechos grande, lo que permite a los dashboards consultar un conjunto de datos mucho más pequeño y optimizado. Esto mejora significativamente el rendimiento al reducir la cantidad de datos escaneados y evita volver a calcular repetidamente agregaciones costosas para cada interacción del usuario.
Todas estas técnicas optimizan lo mismo: escanear menos datos. Al definir los KPI una sola vez y precalcular los agregados de uso frecuente con Vistas de métricas (Metric Views) o Vistas materializadas (Materialized Views), los dashboards evitan la agregación repetida de grandes tablas de hechos. Menos bytes escaneados se traducen directamente en consultas más rápidas, una latencia más predecible y un mejor rendimiento a escala.
Para más detalles, consulte:
Los tipos de datos influyen directamente en la cantidad de datos que Databricks SQL debe leer, mover y procesar para cada consulta del dashboard. Incluso con un SQL y un almacenamiento en caché perfectos, los tipos de datos ineficientes aumentan silenciosamente la E/S (IO), la presión sobre la memoria y el costo de la CPU, lo que se traduce en mosaicos más lentos y una menor simultaneidad.
Internamente, Databricks SQL opera en archivos Parquet columnares. Tipos de datos más pequeños y bien elegidos significan lo siguiente:
Algunos mecanismos son los más importantes:
En las cargas de trabajo de BI, estas elecciones se acumulan rápidamente: una página del dashboard puede ejecutar docenas de consultas, y cada una de ellas escanea millones de filas. Las columnas estrechas y bien tipadas reducen el tiempo de escaneo, mejoran las tasas de aciertos de caché y permiten que Photon funcione con la máxima eficiencia.
Regla de oro: trata el diseño del esquema como una característica de rendimiento. Optimice los tipos de datos una vez en el Lakehouse y todos los dashboards, actuales y futuros, se beneficiarán automáticamente.
El tema central de las diez prácticas recomendadas es simple: deje de pagar el precio completo de una interacción con el dashboard cada vez. Haga que el sistema trabaje menos por cada vista (menos fan-out, menos datos escaneados), y haga que el trabajo que realiza sea reutilizable (datasets compartidos, consultas deterministas, cachés y agregados precalculados). Cuando todos estos elementos encajan, el rendimiento se vuelve estable bajo simultaneidad y el costo se vuelve predecible.
En la práctica, debería poder responder “sí” a estas preguntas para sus dashboards más utilizados:
Elija un dashboard con adopción real, ejecute una línea de base rápida (primer renderizado, latencia de interacción, consultas en cola máximas, desbordamiento, tasa de aciertos de caché), aplique un par de los cambios de mayor impacto y vuelva a medir. Haga eso de manera consistente y pasará de un AI/BI “a veces rápido” a uno confiablemente rápido a medida que crecen los datos y los usuarios.
(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original
Produto
June 12, 2024/11 min de leitura

