Estas prácticas recomendadas reflejan las recomendaciones que compartió 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 con 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 ejecuten de forma óptima en tu base de datos con las siguientes sugerencias para el frontend y el backend:
-
Crea Explorar con combinaciones
many_to_onesiempre que sea posible. Unir vistas desde el nivel más detallado hasta el más general (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 las consultas de bases 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 grupos de datos en las exploraciones con el parámetro
persist_with. Esto permite que Looker se integre más estrechamente con la canalización de datos de backend, de modo que el uso de la caché se pueda maximizar sin el riesgo de analizar datos obsoletos. Las políticas de almacenamiento en caché con nombre se pueden aplicar a un modelo completo o a exploraciones individuales y tablas derivadas persistentes (PDT). - Usa la función de reconocimiento de agregaciones de Looker para crear tablas de resumen o de integración 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 los paneles completos. Consulta el instructivo sobre la conciencia agregada para obtener más información.
- Usa PDT para realizar consultas más rápidas. Convierte los Explorar con muchas uniones complejas o de bajo rendimiento, o dimensiones con subconsultas o subselecciones, en PDT para que las vistas se unan previamente y estén 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 las PDT.
- Evita unir vistas en Exploraciones con claves primarias concatenadas que se definen en Looker. En su lugar, une los campos base que componen la clave primaria concatenada de la vista. Como alternativa, puedes volver a crear la vista como un 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.
- Usa la herramienta Explicar en el Ejecutor de SQL para la comparativa.
EXPLAINproduce un resumen del plan de ejecución de consultas de tu base de datos para una consulta en 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. -
Declarar índices Puedes consultar 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 keysydistribution, se pueden aplicar de forma 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 grandes conjuntos de datos y, así, aumentar el rendimiento de las consultas.
Optimiza el rendimiento del servidor de Looker
También puedes tomar medidas para garantizar que el servidor y la aplicación de Looker funcionen de manera óptima:
- 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 según diversos factores. Sin embargo, los paneles con 25 o más tarjetas suelen generar problemas 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 pivotes de forma estratégica y evita usarlos en exceso en los mosaicos del panel y en los Looks. Las consultas con dimensiones segmentadas consumirán más memoria. Cuantas más dimensiones se segmenten, más memoria se consumirá cuando se cargue el contenido (una Exploración, un Look 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 servir como pruebas de concepto para ayudarte a diseñar tu modelo. La práctica recomendada es codificar de forma rígida cualquier cálculo y función que se usen con frecuencia en LookML, lo que generará SQL para que se procese 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 la instancia de Looker responda más lentamente.
-
Limita la cantidad de vistas incluidas en un modelo cuando hay una gran cantidad de archivos de vista. Incluir todas las vistas en un solo modelo puede ralentizar el rendimiento. Cuando haya una gran cantidad de vistas en un proyecto, considera incluir solo los archivos de vista que se necesiten en cada modelo. Considera usar convenciones de nomenclatura estratégicas para los nombres de los archivos de vistas, de modo que se puedan incluir 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 puntos de datos de forma predeterminada en los paneles y las Looks. Las consultas que devuelven 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 Looks y las Exploraciones, y a nivel de LookML con los parámetros
required filters,conditionally_filterysql_always_where. - Descarga o entrega 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 procesan.
- Comprende el impacto del rendimiento de la conexión en toda la instancia de Looker. Looker usa recursos compartidos para procesar consultas de todas las conexiones de bases de datos. Estos recursos incluyen pods de Kubernetes, colas de consultas y grupos de subprocesos. Debido a esta infraestructura compartida, una sola conexión de base de datos lenta o sobrecargada puede afectar negativamente el rendimiento de las consultas en todas las demás conexiones. Si observas una degradación generalizada del rendimiento, investiga el estado de todas las conexiones de la base de datos, no solo las que están directamente relacionadas con los paneles o Explorar lentos.
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.