Soluciona 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, de modo que puedas solucionar problemas de forma 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é podrían ser incorrectas y por qué no se propagan.

¿Cómo funcionan las sugerencias de filtros?

Las sugerencias de filtros ahorran tiempo cuando los usuarios ingresan valores en los filtros y garantizan que los usuarios 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, cuando seleccionas la casilla para un filtro en el campo Status de la exploración de Orders, se muestra una lista desplegable con los valores "cancelled", "complete" y "pending" 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 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 apropiadas en la cláusula WHERE para filtrar los resultados. Luego, Looker muestra los primeros 100 de esos resultados en sugerencias de filtros.

¿Puedo cambiar las sugerencias que se propagan?

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

¿Las sugerencias se almacenan en caché?

De forma predeterminada, Looker almacena en caché los resultados de las consultas durante una hora. Puedes usar el parámetro de LookML suggest_persist_for para personalizar la longitud 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 Explorar. Si necesitas borrar la caché para ver sugerencias, ten en cuenta las siguientes opciones:

  • Si la exploración se almacena en caché mediante 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 se actualizará la caché para todas las consultas que se conserven en ese grupo de datos.
  • Puedes usar el parámetro suggest_persist_for a nivel de campo y configurarlo en "0 segundos" para destruir la caché de sugerencias de filtro de ese campo.
    La caché es global para todos los usuarios. La actualización de la caché de un usuario para recibir sugerencias afectará los resultados que verán otros usuarios.

¿Por qué son incorrectas las sugerencias de filtro?

Ahora que comprendes cómo se propagan las sugerencias de filtros, puedes determinar por qué estas pueden ser incorrectas. La explicación más común es que los datos cambiaron o se actualizaron desde el momento en que las sugerencias de filtro se almacenaron en caché y el momento en que se detectaron los resultados incorrectos.

Como 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 de la lista desplegable de sugerencias. El proceso de ETL de la base de datos finaliza alrededor de media hora más tarde. Luego, el usuario B ve la misma exploración que ejecutó anteriormente el usuario A. El usuario B se pregunta por qué las sugerencias de filtros son incorrectas. El motivo de la disparidad es que la consulta de sugerencias almacenada en caché no se actualizó con el proceso ETL recién completado de la base de datos y, por lo tanto, mostró resultados inesperados.

Si este es el caso, puedes actualizar la caché de sugerencias con los métodos descritos en la sección ¿Las sugerencias se almacenan en caché? más arriba en esta página.

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

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

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

Verifica el tipo de filtro

Si esto es para un filtro del panel de LookML, asegúrate de que el tipo de filtro sea Campo. Otros tipos de filtros no propagarán las sugerencias.

Comprueba si hay una access_filter o una sql_always_where que restrinjan las sugerencias

Por lo general, cuando se usan sql_always_where o access_filter, las sugerencias de filtro se restringen para esa exploración. Esto evita que los usuarios vean una sugerencia de filtro a la 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 revele información sensible, puedes usar bypass_suggest_restrictions para volver a habilitar las sugerencias de filtros.

Comprobar si hay un suggest_dimension parameter

Cuando se usa el parámetro suggest_dimension, las sugerencias de filtros no se propagarán, 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.

Para las exploraciones en las que la vista de la dimensión sugerida no es la vista base, agrega el parámetro suggest_explore y haz referencia a la opción Explorar, en la que esa vista es la base.

Comprueba si hay un intento de cargar sugerencias cuando seleccionas o ingresas texto en el filtro

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

De lo contrario, Looker no está intentando propagar sugerencias. Verifica que se cumplan las condiciones descritas en el primer paso y que las sugerencias no se desactiven a 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 en todos los archivos de vista de forma predeterminada.

Si hay un intento de cargar sugerencias, continúa con las instrucciones para revisar la consola de red de Chrome.

Verifica 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 muestran resultados de la caché.

  1. Abre la pestaña Red en tu navegador con la combinación de teclas Ctrl + Mayúsculas + J (en Windows) o el comando + opción + J (en Mac), o selecciona Ver > Desarrollar > Herramientas para desarrolladores en la barra de opciones de Chrome ubicada en la parte superior del navegador.
  2. Selecciona el cuadro de filtro de tu vista, exploración o panel.
  3. En el panel Herramientas para desarrolladores, se debería mostrar una solicitud para obtener 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 aparece después de /models/. En este ejemplo, el modelo se llama the_look.
  6. Aunque la URL dice /views/, esto se refiere a la exploración de la que proviene el campo. Comprueba que la exploración que aparece después de /views/ exista. En este ejemplo, la función Explorar se llama order_items.
  7. Comprueba que el campo que aparece después de /fields/ exista. En este ejemplo, el campo es users.state.

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

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

En este caso, puedes ver que las sugerencias fallan porque no se puede encontrar el campo en función de la respuesta a la solicitud:

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

Si no hay errores, pero tampoco sugerencias cuando corresponda, comprueba si la consulta de sugerencias se está extrayendo de la caché (cache: true en la consola de red). Esto puede sugerir que la caché debe destruirse mediante un parámetro suggest_persist_for en la dimensión que entrega sugerencias.

Encontrar evidencia de la consulta de sugerencias que Looker intenta ejecutar

Puedes revisar la página Consultas en el panel Administrador de Looker para asegurarte de que la consulta que genera el filtro (el campo Fuente de la página Consultas indicará Sugerencia de filtro) no está generando un error. Selecciona el botón Detalles de la consulta y elige la opción Abrir en SQL Runner. Verifica que SQL sea sintácticamente correcto. Si observas anomalías, como nombres de campo faltantes o caracteres especiales erróneos, asegúrate de no estar usando parámetros Liquid ni filtros con plantillas.

  • Si la consulta requiere una entrada de filtro con plantilla para ejecutarse, no se propagará ninguna sugerencia de filtro.
  • Si la consulta usa un parámetro con un default_value, ese valor se insertará en la consulta de sugerencia de filtro. En este caso, la consulta de sugerencia de filtro no se actualizará de forma dinámica en función de la entrada del usuario. Según el valor predeterminado, esto puede causar que no haya sugerencias de filtros o sugerencias de filtro incorrectas. En su lugar, considera usar filtros vinculados en un panel.