Cómo solucionar problemas comunes de sugerencias de filtros

Las sugerencias de filtros son una herramienta potente en Looker. Es fundamental comprender de dónde provienen y cómo funcionan para que puedas solucionar problemas de manera eficaz cuando las sugerencias de filtros no se comportan según lo esperado. En esta página, se explica cómo funcionan las sugerencias de filtros, por qué pueden ser incorrectas y por qué es posible que no se completen.

¿Cómo funcionan las sugerencias de filtros?

Las sugerencias de filtros ahorran tiempo cuando los usuarios ingresan valores en los filtros y garantizan que elijan opciones que existen en los datos. Cuando los usuarios seleccionan un cuadro de filtro, aparece una lista de sugerencias debajo del campo. En este ejemplo, si seleccionas la casilla de un filtro en el campo Estado del Explorar Pedidos, se muestra una lista desplegable con los valores “cancelado”, “completado” y “pendiente” como opciones.

¿De dónde proviene esta lista de sugerencias?

Looker ejecuta una consulta SELECT distinct <field> en la base de datos para recuperar todas las opciones posibles para ese campo. La consulta es similar al siguiente código SQL:

SELECT DISTINCT <field_name>
FROM <table>
WHERE (<field_name> LIKE '%' OR <field_name> LIKE '% %')
GROUP BY 1
ORDER BY 1
LIMIT 1000

Cuando los usuarios ingresan caracteres en el cuadro de filtro, Looker sustituye las condiciones adecuadas en la cláusula WHERE para filtrar los resultados. Luego, Looker muestra los primeros 1,000 de esos resultados en las sugerencias de filtros.

¿Puedo cambiar las sugerencias que se muestran?

Los desarrolladores pueden usar varios parámetros de LookML para cambiar y personalizar las sugerencias que aparecen. Consulta la página de documentación Cómo cambiar las sugerencias de filtros para obtener más detalles.

¿Se almacenan en caché las sugerencias?

De forma predeterminada, Looker almacena en caché los resultados de las consultas durante una hora. Puedes usar el parámetro suggest_persist_for de LookML para personalizar la duración de la caché de las sugerencias de filtros. El parámetro suggest_persist_for tiene un valor predeterminado de "6 horas". Las sugerencias tienen su propia caché, que no se puede borrar manualmente desde una página de Explorar. Si necesitas borrar la caché para las sugerencias, estas son algunas opciones:

  • Si el Explore se almacena en caché con un grupo de datos con un sql_trigger, puedes restablecer manualmente la caché de todo el grupo de datos en la página Grupos de datos del panel Administrador de Looker, pero esto actualizará la caché de todas las consultas que se conserven con ese grupo de datos.
  • Puedes usar el parámetro suggest_persist_for a nivel del campo y establecerlo en "0 segundos" para invalidar la caché de sugerencias de filtros para ese campo.
    La caché es global para todos los usuarios. Cuando un usuario actualiza la caché de las sugerencias, esto afecta los resultados que ven los demás usuarios.

¿Por qué las sugerencias de filtros son incorrectas?

Ahora que comprendes cómo se generan las sugerencias de filtros, puedes determinar por qué podrían ser incorrectas. La explicación más común es que los datos cambiaron o se actualizaron entre el momento en que se almacenaron en caché las sugerencias de filtros y el momento en que se notaron los resultados incorrectos.

Por ejemplo, supongamos que el usuario A ejecuta una exploración a primera hora de la mañana. El usuario A selecciona algunos valores de filtro en la lista desplegable de sugerencias. El proceso de ETL de la base de datos finaliza aproximadamente media hora después. Luego, el usuario B ve la misma Exploración que ejecutó el usuario A anteriormente. El usuario B se pregunta por qué las sugerencias de filtros son incorrectas. El motivo de la disparidad es que la consulta de sugerencia almacenada en caché no se actualizó con el proceso de ETL recién completado de la base de datos y, por lo tanto, mostró resultados inesperados.

Si es así, puedes actualizar la caché de sugerencias con los métodos que se describen en la sección ¿Se almacenan las sugerencias en caché? que se encuentra más arriba en esta página.

¿Por qué no se propagan las sugerencias de filtros?

Puede haber varios motivos por los que no se propagan las sugerencias de filtros. En los siguientes pasos para solucionar problemas, se destacan las posibles causas:

  1. Verifica el tipo de filtro.
  2. Comprueba si hay un access_filter o un sql_always_where que restrinjan las sugerencias.
  3. Comprueba si hay un suggest_dimension parameter.
  4. Comprueba si se intenta cargar sugerencias cuando un usuario selecciona o ingresa texto en el filtro.
  5. Verifica la consola de red de Chrome.
  6. Busca evidencia de la consulta de sugerencias que Looker intenta ejecutar.

Verifica el tipo de filtro

Si se trata de un filtro de panel de LookML, asegúrate de que el tipo de filtro sea Campo. Otros tipos de filtros no mostrarán sugerencias.

Comprueba si hay un access_filter o un sql_always_where que restrinja las sugerencias.

Por lo general, cuando se usa sql_always_where o access_filter, las sugerencias de filtros se restringen para esa Exploración. Esto evita que los usuarios vean sugerencias de filtros a los que no pueden acceder. Si tienes la certeza de que no hay valores posibles en un campo de dimensión o filtro en particular que revelen información sensible, puedes usar bypass_suggest_restrictions para volver a habilitar las sugerencias de filtros.

Comprueba si hay un suggest_dimension parameter

Cuando se usa el parámetro suggest_dimension, no se propagarán las sugerencias de filtros, a menos que se haga referencia a la dimensión sugerida en una Exploración con la vista de esa dimensión definida como la vista base de la Exploración.

En el caso de las Exploraciones en las que la vista de la dimensión sugerida no es la vista base, agrega el parámetro suggest_explore, que hace referencia a la Exploración en la que esa vista es la vista base.

Verifica si se intenta cargar sugerencias cuando seleccionas o ingresas texto en el filtro.

Comprueba si Looker parece intentar cargar sugerencias cuando seleccionas o ingresas texto en el cuadro de filtro. Looker debería mostrar un círculo de carga giratorio en el lado derecho del cuadro de filtro.

Si no es así, Looker no está intentando completar las sugerencias. Verifica que se cumplan las condiciones descritas en el primer paso y que las sugerencias no estén desactivadas en el nivel de field, view o Explorar (con sql_always_where o access_filter) en LookML. Ten en cuenta que los dialectos de Hadoop agregarán suggestions: no a todos los archivos de vista de forma predeterminada.

Si se intenta cargar sugerencias, continúa con las instrucciones para verificar la consola de red de Chrome.

Cómo verificar la consola de red de Chrome

La consola de red de Chrome puede destacar un error con la consulta en sí o mostrar si se devolvieron resultados de la caché.

  1. Abre la pestaña Network en tu navegador con el acceso directo Ctrl + Mayúsculas + J (en Windows) o Cmd + Option + J (en Mac), o bien selecciona Ver > Desarrollar > Herramientas para desarrolladores en la barra de opciones de Chrome en la parte superior del navegador.
  2. Selecciona en el cuadro de filtro de tu Look, Exploración o panel.
  3. En el panel de Herramientas para desarrolladores, debería mostrarse una solicitud de sugerencias de filtros, que puedes seleccionar para obtener más información.
  4. Los encabezados mostrarán la solicitud interna a la API que Looker realiza para recuperar los valores de sugerencia. En este ejemplo, supongamos que Looker realiza la siguiente solicitud a la API, en la que <yourinstance> representa la URL de tu instancia:

    <yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
  5. En la solicitud a la API, verifica que exista el modelo que se indica después de /models/. En este ejemplo, el modelo se llama the_look.
  6. Aunque la URL dice /views/, se refiere al Explorar del que proviene el campo. Comprueba que exista la función Explorar que aparece después de /views/. En este ejemplo, el Explorar se llama order_items.
  7. Comprueba que exista el campo que aparece después de /fields/. En este ejemplo, el campo es users.state.

La respuesta a esta solicitud de API mostrará el mensaje de error exacto. Por ejemplo, el código de estado de las sugerencias es 404 Not Found:

Selecciona la respuesta a esta solicitud para obtener más detalles.

En este caso, puedes ver que las sugerencias fallan porque no se puede encontrar el campo según la respuesta a la solicitud:

{"class":"FieldNotFound","text":"Field not found."}

Si no hay errores, pero tampoco sugerencias cuando se espera, verifica si la consulta de sugerencias se extrae de la caché (cache: true en la consola de red). Esto puede indicar que es necesario invalidar la caché con un parámetro suggest_persist_for en la dimensión que muestra las sugerencias.

Cómo encontrar evidencia de la consulta de sugerencias que Looker intenta ejecutar

Puedes consultar la página Queries en el panel Admin de Looker para asegurarte de que la consulta que genera el filtro (el campo Source en la página Queries dirá Filter Suggestion) no genere un error. Selecciona el botón Detalles de la consulta y, luego, la opción Abrir en el Ejecutor de SQL. Verifica que el código SQL sea sintácticamente correcto. Si observas anomalías, como nombres de campos faltantes o caracteres especiales erróneos, asegúrate de no estar usando parámetros de Liquid ni filtros basados en plantillas.

  • Si la consulta requiere una entrada de filtro basado en plantillas para ejecutarse, no se mostrarán sugerencias de filtros.
  • Si la búsqueda usa un parámetro con un default_value, ese valor se insertará en la búsqueda de sugerencias de filtros. En este caso, la consulta de sugerencia de filtro no se actualizará de forma dinámica según la entrada del usuario. Según el valor predeterminado, esto puede generar que no se sugieran filtros o que se sugieran filtros incorrectos. En su lugar, considera usar filtros vinculados en un panel.