Estas prácticas recomendadas reflejan las recomendaciones que comparte 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 escritas para funcionar en la mayoría de los casos 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 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. Unir vistas desde el nivel más detallado hasta el más alto (many_to_one
) suele proporcionar el mejor rendimiento de las consultas. -
Maximiza el almacenamiento en caché para sincronizarlo con tus políticas de ETL siempre que sea posible y 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 aplicando datagroups en Exploraciones con el parámetro
persist_with
. Esto permite que Looker se integre más estrechamente con la canalización de datos del backend, de modo que se pueda maximizar el uso de la caché sin correr el riesgo de analizar datos inactivos. Las políticas de almacenamiento en caché con nombre se pueden aplicar a un modelo completo o a Exploraciones y tablas derivadas persistentes (PDT) individuales. - Usa la función de conocimiento agregado de Looker para crear resúmenes o tablas de resumen que Looker pueda usar para las consultas siempre que sea posible, en especial para las consultas comunes de bases de datos grandes. También puedes aprovechar el conocimiento agregado para mejorar drásticamente el rendimiento de paneles completos. Consulta el instructivo de conocimiento agregado para obtener más información.
- Usa PDT para realizar consultas más rápidas. Convierte Exploraciones con muchas combinaciones complejas o de bajo rendimiento, o dimensiones con subconsultas o subselecciones, en PDT para que las vistas estén preunidas y listas antes del tiempo de ejecución.
- Si tu dialecto de 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 en Explorar en claves primarias concatenadas que se definen en Looker. En su lugar, únete a los campos base que conforman la clave primaria concatenada desde la vista. Como alternativa, vuelve a crear la vista como un PDT con la clave principal concatenada predefinida en la definición de SQL de la tabla, en lugar de en el código LookML de una vista.
- Aprovecha la herramienta Explain in SQL Runner para realizar comparativas.
EXPLAIN
produce una descripción general del plan de ejecución de consultas de tu base de datos para una consulta de SQL determinada, lo que te permite detectar los componentes de la consulta que se pueden optimizar. Obtén más información en la publicación de Comunidad Cómo optimizar SQL conEXPLAIN
. -
Declara índices. Puedes ver los índices de cada tabla directamente en Looker desde SQL Runner. Para ello, haz clic en el ícono de ajustes de 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 los PDT. Los parámetros de LookML, como
indexes
,sort keys
ydistribution
, se pueden aplicar de manera adecuada. - Aumenta la memoria, los núcleos y la E/S (entrada/salida) de las bases de datos con hardware insuficiente o recursos aprovisionados necesarios (como AWS) para procesar conjuntos de datos grandes y mejorar el rendimiento de las consultas.
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 la cantidad, ya que 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 tarjetas suelen ser problemáticos en términos de rendimiento.
- Usa la función de actualización automática del panel de forma 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 los ejes de manera estratégica y evita usarlos en exceso en las tarjetas de los paneles y los aspectos. Las consultas con dimensiones pivotadas consumirán más memoria. Cuanta más dimensiones se pivoten, más memoria se consumirá cuando se cargue el contenido (una exploración, una vista o un panel).
- Usa funciones, como combinar resultados, campos personalizados y cálculos basados en tablas, con moderación. El objetivo de estas funciones es que se usen como pruebas de concepto para ayudarte a diseñar tu modelo. Se recomienda codificar los cálculos y las funciones que se usan con frecuencia en LookML, lo que generará SQL para procesarse en tu base de datos. Los cálculos excesivos pueden competir por la memoria de Java en la instancia de Looker, lo que hace que esta responda más lentamente.
-
Limita la cantidad de vistas incluidas en un modelo cuando hay una gran cantidad de archivos de vista. Si incluyes todas las vistas en un solo modelo, el rendimiento puede disminuir. Cuando hay una gran cantidad de vistas en un proyecto, considera incluir solo los archivos de vista necesarios en cada modelo. Considera usar convenciones de nomenclatura estratégicas para los nombres de los archivos de vista, de modo que puedas incluir fácilmente grupos de vistas dentro de un modelo. En la documentación del parámetro
includes
, se describe un ejemplo. -
Evita mostrar una gran cantidad de datos de forma predeterminada en las tarjetas del panel y los aspectos. Las consultas que muestran miles de datos consumirán más memoria. Asegúrate de que los datos se limiten siempre que sea posible aplicando
filtros del frontend a los paneles, las miradas y las exploraciones, y a nivel de LookML con los parámetros
required filters
,conditionally_filter
ysql_always_where
. - Descarga o entrega consultas con la opción Todos los resultados con moderación, ya que algunas pueden ser muy grandes y abrumar al servidor de Looker cuando se procesan.
Para obtener más ayuda para identificar la fuente de los problemas de rendimiento, consulta la página de prácticas recomendadas Descripción general del rendimiento.