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 a la 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 adecuadas en la cláusula WHERE
para filtrar los resultados. Luego, Looker muestra los primeros 100 de esos resultados en las sugerencias de filtros.
¿Puedo cambiar qué sugerencias 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 Cómo cambiar las sugerencias de filtros para obtener más detalles.
¿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 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 de forma manual desde una página de 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 se almacenaron en caché las sugerencias de filtro 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 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 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?
Existen varios motivos por los que no se propagan las sugerencias de filtros. En los siguientes pasos para solucionar problemas, se destacan las posibles causas:
- Revisa el tipo de filtro.
- Verifica si hay un
access_filter
o unsql_always_where
que restrinja las sugerencias. - Verifica si hay un
suggest_dimension parameter
. - Verifica si se intenta cargar sugerencias cuando un usuario selecciona o ingresa texto en el filtro.
- Verifica la consola de red de Chrome.
- 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. Los demás tipos de filtros no propagarán sugerencias.
-
Asegúrate de que el campo de filtro sea de
type: string
en su definición de LookML. Los filtros en campos de tiponumber
no propagarán sugerencias. - ¿Es un filtro de coincidencias (avanzado)? Los filtros de coincidencias (avanzados) requieren expresiones de Looker, por lo que no se propagarán las sugerencias.
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 tienes la certeza de que no hay valores posibles en una dimensión o un campo de filtro en particular que revelen información sensible, puedes usar bypass_suggest_restrictions
para volver a habilitar las sugerencias de filtro.
Verifica si hay un suggest_dimension parameter
Cuando se usa el parámetro suggest_dimension
, las sugerencias de filtros no se propagan, 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.
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 las sugerencias no estén desactivadas en el nivel 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, sigue las instrucciones para verificar la consola de red de Chrome.
Cómo revisar la consola de red de Chrome
La consola de red de Chrome puede destacar un error con la consulta en sí o mostrar si hay resultados que se muestran desde la caché.
- 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), o selecciona Ver > Desarrollar > Herramientas para desarrolladores en la barra de opciones de Chrome, en la parte superior del navegador.
- Selecciona en el cuadro de filtro de tu vista, exploración o panel.
- El panel de herramientas para desarrolladores debería mostrar una solicitud de sugerencias de filtros, que puedes seleccionar para obtener más información.
- 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=
- En la solicitud a la API, verifica que exista el modelo que aparece después de
/models/
. En este ejemplo, el modelo se llamathe_look
. - Aunque la URL diga
/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 llamaorder_items
. - Comprueba que el campo que aparece después de
/fields/
exista. En este ejemplo, el campo esusers.state
.
La respuesta de 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 de 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 hay sugerencias cuando se espera, verifica si la consulta de sugerencias extrae datos de la caché (cache: true
en la consola de red). Esto puede sugerir que se debe borrar la caché con un parámetro suggest_persist_for
en la dimensión que publica las sugerencias.
Busca 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 campos faltantes o caracteres especiales erróneos, asegúrate de no estar usando parámetros de Liquid ni filtros de 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, esto puede provocar que no se muestren sugerencias de filtros o que se muestren sugerencias incorrectas. En su lugar, considera usar filtros vinculados en un panel.