Estas prácticas recomendadas reflejan las recomendaciones compartidas por un equipo multifuncional de Lookers experimentados. Estas estadísticas provienen de años de experiencia trabajando con clientes de Looker desde la implementación hasta el éxito a largo plazo. Las prácticas están redactadas para que funcionen para la mayoría de los usuarios y situaciones, pero debes usar tu mejor criterio cuando las implementes.
Optimiza el rendimiento de las consultas
Puedes asegurarte de que las consultas se compilen y se ejecuten de forma óptima en tu base de datos con las siguientes sugerencias de frontend y backend:
-
Crea exploraciones con uniones
many_to_one
siempre que sea posible. Por lo general, unir vistas desde el nivel más detallado hasta el más alto (many_to_one
) proporciona el mejor rendimiento de las consultas. -
Maximiza el almacenamiento en caché para sincronizar con tus políticas de ETL siempre que sea posible y así reducir el tráfico de consultas de la base de datos. De forma predeterminada, Looker almacena en caché las consultas durante una hora. Puedes controlar la política de almacenamiento en caché y sincronizar las actualizaciones de datos de Looker con tu proceso de ETL si aplicas grupos de datos en las exploraciones con el parámetro
persist_with
. Esto permite que Looker se integre más estrechamente a la canalización de datos de backend para que el uso de la caché se pueda maximizar sin correr el riesgo de analizar datos inactivos. Las políticas de almacenamiento en caché con nombre se pueden aplicar a todo un modelo o a exploraciones individuales y tablas derivadas persistentes (PDT). - Usa la función de reconocimiento agregado de Looker para crear tablas de resumen o datos integrados que Looker pueda usar para realizar consultas siempre que sea posible, en especial para consultas comunes de bases de datos grandes. También puedes aprovechar el reconocimiento agregado para mejorar drásticamente el rendimiento de todos los paneles. Consulta el Instructivo de reconocimiento agregado para obtener información adicional.
- Usa PDT para realizar consultas más rápidas. Convierte las exploraciones con muchas uniones complejas o poco eficaces, o dimensiones con subconsultas o subseleccionadas, en PDT para que las vistas se unan previamente y estén listas antes del tiempo de ejecución.
- Si el dialecto de la base de datos admite PDT incrementales, configura PDT incrementales para reducir el tiempo que Looker dedica a volver a compilar tablas de PDT.
- Evita unir vistas a las exploraciones en las claves primarias concatenadas que se definen en Looker. En su lugar, realiza una unión en los campos base que conforman la clave primaria concatenada desde la vista. Como alternativa, vuelve a crear la vista como una PDT con la clave primaria concatenada predefinida en la definición de SQL de la tabla, en lugar de en el LookML de una vista.
- Aprovecha la herramienta Explain in SQL Runner para obtener comparativas.
EXPLAIN
produce una descripción general del plan de ejecución de consultas de tu base de datos para una consulta en SQL determinada, lo que te permite detectar componentes de consulta que se pueden optimizar. Obtén más información en la publicación de Comunidad Cómo optimizar SQL conEXPLAIN
. -
Declara índices. Para ver los índices de cada tabla directamente en Looker desde el Ejecutor de SQL, haz clic en el ícono de ajustes en una tabla y, luego, selecciona Mostrar índices.
Las columnas más comunes que pueden beneficiarse de los índices son las fechas importantes y las claves externas. Agregar índices a estas columnas aumentará el rendimiento de casi todas las consultas. Esto también se aplica a las PDT. Los parámetros de LookML, como
indexes
,sort keys
ydistribution
, se pueden aplicar de forma adecuada. - Para aumentar el rendimiento de las consultas, aumenta la memoria, los núcleos y las E/S (entrada y salida) de bases de datos con hardware insuficiente o los recursos aprovisionados necesarios (como AWS) para procesar conjuntos de datos grandes.
Optimiza el rendimiento del servidor de Looker
También puedes tomar medidas para asegurarte de que el servidor y la aplicación de Looker tengan un rendimiento óptimo:
- Limita la cantidad de elementos en un panel individual. No hay una regla precisa para definir el número, porque el diseño de cada elemento afecta el consumo de memoria en función de una variedad de factores; sin embargo, los paneles con 25 o más mosaicos suelen ser problemáticos cuando se trata de rendimiento.
- Utiliza la función de actualización automática del panel de manera estratégica. Si un panel usa la actualización automática, asegúrate de que no se actualice más rápido que los procesos de ETL que se ejecutan en segundo plano.
- Usa las tablas dinámicas de forma estratégica y evita usarlas en exceso en los mosaicos del panel y las vistas. Las consultas con dimensiones dinámicas consumirán más memoria. Cuantas más dimensiones se dinamizan, más memoria se consume cuando se carga contenido (una exploración, una vista o un panel).
- Usa las funciones de procesamiento posteriores a las consultas, como los resultados de combinación, los campos personalizados y los cálculos en tablas, con moderación. Estas características están diseñadas para usarse como pruebas de concepto para ayudar a diseñar tu modelo. La práctica recomendada es codificar en LookML cualquier cálculo y función de uso frecuente, lo que generará SQL para procesarlo en tu base de datos. Los cálculos excesivos pueden competir por la memoria Java en la instancia de Looker, lo que hace que la instancia de Looker responda con más lentitud.
-
Limita la cantidad de vistas incluidas en un modelo cuando hay una gran cantidad de archivos de vistas. Incluir todas las vistas en un solo modelo puede ralentizar el rendimiento. Cuando hay una gran cantidad de vistas en un proyecto, considera incluir solo los archivos de vista necesarios para cada modelo. Considera usar convenciones de nomenclatura estratégicas para los nombres de los archivos de las vistas a fin de facilitar la inclusión de grupos de vistas en un modelo. Se describe un ejemplo en la documentación del parámetro
includes
. -
Evita mostrar una gran cantidad de datos de forma predeterminada en los mosaicos del panel y las vistas. Las consultas que muestran miles de datos consumirán más memoria. Asegúrate de que los datos estén limitados siempre que sea posible. Para ello, aplica
filtros de frontend a los paneles, las vistas y las exploraciones y a nivel de LookML con los parámetros
required filters
,conditionally_filter
ysql_always_where
. - Descarga o publica consultas con la opción Todos los resultados con moderación, ya que algunas consultas pueden ser muy grandes y sobrecargar el servidor de Looker cuando se las procesan.
Para obtener más ayuda para identificar la fuente de los problemas de rendimiento, consulta la página de prácticas recomendadas de la descripción general del rendimiento.