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 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 se aseguran de 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 de la exploración 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 función Explorar 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 conservan con ese grupo de datos.
  • Puedes usar el parámetro suggest_persist_for a nivel del campo y establecerlo en “0 segundos” para borrar la caché de sugerencias de filtro de ese campo.
    La caché es global para todos los usuarios. Si un usuario actualiza la caché para obtener sugerencias, se verán afectados los resultados que vean otros usuarios.

¿Por qué las sugerencias de filtros son incorrectas?

Ahora que comprendes cómo se propagan las sugerencias de filtros, puedes determinar por qué pueden ser 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 notaron los 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 discrepancia es que la búsqueda de sugerencias almacenada en caché no se actualizó con el proceso de ETL que se completó recientemente en 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 ¿Las sugerencias se almacenan en caché? que aparece más arriba 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. Revisa el tipo de filtro.
  2. Verifica si hay un access_filter o un sql_always_where que restrinja las sugerencias.
  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. Busca 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.

  • Asegúrate de que el campo de filtro sea type: string en su definición de LookML. Los filtros en los campos de tipo number no propagarán las sugerencias.
  • ¿Es un filtro de coincidencias (avanzado)? Los filtros de coincidencias (avanzados) requieren expresiones de Looker, por lo que las sugerencias no se propagarán.

Verifica 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, se restringen las sugerencias de filtros para esa función de Explorar. 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.

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.

Comprueba si se intenta cargar 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 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 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 sugerencias, sigue 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 devuelven resultados. desde la caché.

  1. Abre la pestaña Red en tu navegador con la combinación de teclas Ctrl + Mayúsculas + J (en Windows) o Comando + opción + J (en Mac). También puedes seleccionar Ver > Desarrollo > 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 vista, exploración o panel.
  3. El panel de herramientas para desarrolladores debería mostrar 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 realiza Looker 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/, se refiere a la función Explorar de la que proviene el campo. Comprueba que exista la función Explorar que aparece después de /views/. 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 de las sugerencias es 404 No encontrado:

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 consultar la página Consultas en el panel Administrador de Looker para asegurarte de que la consulta que genera el filtro (el campo Fuente en la página Consultas dirá Sugerencia de filtro) no genere un error. Selecciona el botón Detalles de la consulta y elige la opción Abrir en el Ejecutor de SQL. Verifica que la sintaxis de SQL sea correcta. 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án sugerencias de filtros.
  • Si la consulta usa un parámetro con un default_value, ese valor se insertará en la consulta de sugerencias de filtros. En este caso, la consulta de sugerencias de filtros 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.