Soluciona problemas comunes de sugerencias de filtros

Las sugerencias de filtros son una herramienta potente de Looker. Es fundamental comprender de dónde provienen y cómo funcionan para que puedas solucionar problemas de forma eficaz cuando las sugerencias de filtros no se comporten como se espera. 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 propaguen.

¿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, si seleccionas la casilla de un filtro en el campo Estado de la página Explorar Pedidos, se muestra una lista desplegable con los valores "cancelado", "completo" 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 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é y obtener 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 de forma manual de una página Explorar. Si necesitas borrar la caché para obtener sugerencias, estas son algunas opciones:

  • Si la exploración se almacena en caché a través de un grupo de datos con un sql_trigger, puedes restablecer la caché de todo el grupo de datos de forma manual en la página Grupos de datos del panel Administrador de Looker, pero esta acción actualizará la caché para todas las consultas que persistan con ese grupo de datos.
  • Puedes usar el parámetro suggest_persist_for a nivel de campo y establecerlo en "0 segundos" para eliminar la caché de sugerencias de filtro para ese campo.
    La caché es global para todos los usuarios. Si un usuario actualiza la caché para recibir sugerencias, se verán afectados los resultados que ven otros usuarios.

¿Por qué son incorrectas las sugerencias de filtros?

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

A modo de 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 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 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 que se describen en la sección anterior ¿Las sugerencias se almacenan en caché? en esta página.

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

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

  1. Verifica el tipo de filtro.
  2. Verifica si hay sugerencias de restricción de access_filter o sql_always_where.
  3. Comprueba si hay un suggest_dimension parameter.
  4. Verifica si hay un intento de 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 Field. Otros tipos de filtros no propagarán sugerencias.

Verifica si hay sugerencias de restricción de access_filter o sql_always_where

Por lo general, cuando se usan sql_always_where o access_filter, las sugerencias de filtros están restringidas para esa exploración. Esto evita que los usuarios vean una sugerencia de filtro a la que no pueden acceder. Si está seguro de que no hay valores posibles en un campo de dimensión o filtro en particular que puedan revelar información sensible, puede usar bypass_suggest_restrictions para volver a habilitar las sugerencias de filtros.

Verifica si hay un elemento suggest_dimension parameter.

Cuando se use el parámetro suggest_dimension, las sugerencias de filtro 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 exploración en la que esa vista es la vista base.

Verifica si hay un intento de cargar las sugerencias cuando seleccionas o ingresas texto en el filtro.

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

De lo contrario, Looker no está intentando propagar sugerencias. Verifica que se cumplan las condiciones descritas en el primer paso y que no se desactiven las sugerencias a nivel field, view ni 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 las sugerencias, continúa con las instrucciones para verificar la consola de red de Chrome.

Verifica la consola de red de Chrome

Es posible que la consola de red de Chrome destaque un error con la consulta en sí o muestre 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 + la opción + J (en Mac). También puedes seleccionar Ver > Desarrollar > Herramientas para desarrolladores en la barra de opciones de Chrome en la parte superior del navegador.
  2. Selecciona el cuadro de filtro de tu vista, exploración o panel.
  3. El panel Herramientas para desarrolladores debería mostrar una solicitud para las sugerencias de filtros, que puedes seleccionar para obtener más información.
  4. Los encabezados mostrarán la solicitud interna a la API que realiza Looker para recuperar los valores de las sugerencias. 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/, esta indica 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 para 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 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 lo esperas, verifica si la consulta de sugerencias se extrae de la caché (cache: true en la consola de red). Esto puede sugerir que se debe interrumpir la caché 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 del 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 selecciona 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 errantes, asegúrate de no estar usando parámetros Liquid o 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 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 según la entrada del usuario. Según el valor predeterminado, es posible que no se muestren sugerencias de filtros o que se sugieran filtros incorrectos. En su lugar, considera usar filtros vinculados en un panel.