Solução de problemas comuns de sugestões de filtro

As sugestões de filtro são uma ferramenta poderosa no Looker. É fundamental entender de onde elas vêm e como funcionam para resolver problemas de maneira eficaz quando as sugestões de filtro não se comportam como esperado. Esta página explica como as sugestões de filtros funcionam, por que elas podem estar erradas e por que podem não aparecer.

Como funcionam as sugestões de filtro?

As sugestões de filtro economizam tempo quando os usuários inserem valores nos filtros e garantem que eles escolham opções que existem nos dados. Quando os usuários selecionam uma caixa de filtro, uma lista de sugestões aparece abaixo do campo. Neste exemplo, ao selecionar a caixa de um filtro no campo Status da análise detalhada Pedidos, uma lista suspensa com os valores "cancelado", "concluído" e "pendente" aparece como opções.

De onde vem essa lista de sugestões?

O Looker executa uma consulta SELECT distinct <field> no banco de dados para recuperar todas as opções possíveis para esse campo. A consulta é semelhante ao seguinte SQL:

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

Quando os usuários inserem caracteres na caixa de filtro, o Looker substitui as condições adequadas na cláusula WHERE para filtrar os resultados. Em seguida, o Looker mostra os primeiros mil resultados nas sugestões de filtro.

Posso mudar as sugestões que aparecem?

Os desenvolvedores podem usar vários parâmetros da LookML para mudar e personalizar as sugestões que aparecem. Consulte a página de documentação Mudar sugestões de filtro para mais detalhes.

As sugestões são armazenadas em cache?

Por padrão, o Looker armazena em cache os resultados da consulta por uma hora. É possível usar o parâmetro suggest_persist_for da LookML para personalizar a duração do cache das sugestões de filtro. O parâmetro suggest_persist_for tem um valor padrão de "6 horas". As sugestões têm um cache próprio, que não pode ser limpo manualmente em uma página "Explorar". Se você precisar limpar o cache das sugestões, confira algumas opções:

  • Se a análise detalhada for armazenada em cache usando um grupo de dados com um sql_trigger, você poderá redefinir manualmente o cache de todo o grupo de dados na página Grupos de dados no painel Administrador do Looker. No entanto, isso vai atualizar o cache de todas as consultas persistentes usando esse grupo de dados.
  • É possível usar o parâmetro suggest_persist_for no nível do campo e defini-lo como "0 segundos" para limpar o cache de sugestões de filtro desse campo.
    O cache é global para todos os usuários. Um usuário que atualiza o cache de sugestões afeta os resultados que outros usuários veem.

Por que as sugestões de filtro estão erradas?

Agora que você entende como as sugestões de filtro são preenchidas, pode determinar por que elas podem estar erradas. A explicação mais comum é que os dados mudaram ou foram atualizados entre o momento em que as sugestões de filtro foram armazenadas em cache e o momento em que os resultados errados foram notados.

Por exemplo, suponha que o usuário A execute uma análise detalhada logo pela manhã. O usuário A seleciona alguns valores de filtro na lista suspensa de sugestões. O processo de ETL do banco de dados termina cerca de meia hora depois. Em seguida, o usuário B visualiza a mesma análise detalhada que o usuário A executou anteriormente. O usuário B quer saber por que as sugestões de filtro estão incorretas. O motivo da disparidade é que a consulta de sugestão em cache não foi atualizada com o processo de ETL recém-concluído do banco de dados e, portanto, mostrou resultados inesperados.

Se for esse o caso, atualize o cache de sugestões usando os métodos descritos na seção As sugestões são armazenadas em cache?, mais acima nesta página.

Por que as sugestões de filtro não estão sendo preenchidas?

Há vários motivos para as sugestões de filtro não serem preenchidas. As etapas de solução de problemas a seguir destacam possíveis causas:

  1. Verifique o tipo de filtro.
  2. Verifique se há um access_filter ou um sql_always_where restringindo as sugestões.
  3. Verifique se há um suggest_dimension parameter.
  4. Verifique se há uma tentativa de carregar sugestões quando um usuário seleciona ou insere texto no filtro.
  5. Verifique o console de rede do Chrome.
  6. Encontre evidências da consulta de sugestões que o Looker está tentando executar.

Verificar o tipo de filtro

Se for um filtro de painel do LookML, verifique se o tipo de filtro é Campo. Outros tipos de filtro não vão preencher sugestões.

Verificar se há um access_filter ou um sql_always_where restringindo as sugestões

Normalmente, quando sql_always_where ou access_filter é usado, as sugestões de filtro são restritas para essa análise detalhada. Isso impede que os usuários vejam uma sugestão de filtro a que não têm acesso. Se você tiver certeza de que não há valores possíveis em um determinado campo de dimensão ou filtro que revelem informações sensíveis, use bypass_suggest_restrictions para reativar as sugestões de filtro.

Verificar se há um suggest_dimension parameter

Quando o parâmetro suggest_dimension é usado, as sugestões de filtro não são preenchidas, a menos que a dimensão sugerida esteja sendo referenciada em uma análise detalhada com a visualização dessa dimensão definida como a visualização básica da análise.

Para análises detalhadas em que a visualização da dimensão sugerida não é a visualização de base, adicione o parâmetro suggest_explore, fazendo referência à análise detalhada em que essa visualização é a de base.

Verifique se há uma tentativa de carregar sugestões quando você seleciona ou insere texto no filtro.

Verifique se o Looker tenta carregar sugestões quando você seleciona ou digita texto na caixa de filtro. O Looker vai mostrar um círculo de carregamento girando no lado direito da caixa de filtro.

Caso contrário, o Looker não está tentando preencher sugestões. Verifique se as condições descritas na primeira etapa foram atendidas e se as sugestões não estão desativadas no nível field, view ou de análise detalhada (com sql_always_where ou access_filter) no LookML. As variações do Hadoop adicionam suggestions: no a todos os arquivos de visualização por padrão.

Se houver uma tentativa de carregar sugestões, siga as instruções para verificar o console de rede do Chrome.

Verificar o console de rede do Chrome

O console de rede do Chrome pode destacar um erro na própria consulta ou mostrar se há resultados retornados do cache.

  1. Abra a guia "Rede" no navegador com o atalho Ctrl + Shift + J (no Windows) ou Command + Option + J (no Mac) ou selecionando Visualizar > Desenvolver > Ferramentas para desenvolvedores na barra de opções do Chrome na parte de cima do navegador.
  2. Selecione na caixa de filtro do seu Look, Análise ou painel.
  3. O painel "Ferramentas para desenvolvedores" vai mostrar uma solicitação de sugestões de filtro, que você pode selecionar para mais informações.
  4. Os cabeçalhos vão mostrar a solicitação de API interna que o Looker está fazendo para recuperar os valores de sugestão. Neste exemplo, suponha que o Looker esteja fazendo a seguinte solicitação de API, em que <yourinstance> representa o URL da sua instância:

    <yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
  5. Na solicitação de API, verifique se o modelo listado após /models/ existe. Neste exemplo, o modelo é chamado de the_look.
  6. Embora o URL diga /views/, isso se refere à análise detalhada de onde o campo está vindo. Verifique se a análise detalhada listada após /views/ existe. Neste exemplo, a análise detalhada é chamada de order_items.
  7. Verifique se o campo listado após /fields/ existe. Neste exemplo, o campo é users.state.

A resposta para essa solicitação de API vai mostrar a mensagem de erro exata. Por exemplo, o código de status das sugestões é 404 Não encontrado:

Selecione a resposta para esse pedido e confira mais detalhes.

Nesse caso, as sugestões estão falhando porque o campo não pode ser encontrado com base na resposta à solicitação:

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

Se não houver erros, mas também não houver sugestões quando esperado, verifique se a consulta de sugestão está extraindo do cache (cache: true no console de rede). Isso pode indicar que o cache precisa ser invalidado usando um parâmetro suggest_persist_for na dimensão que está veiculando sugestões.

Encontre evidências da consulta de sugestões que o Looker está tentando executar

Confira a página Consultas no painel Administrador do Looker para garantir que a consulta que está gerando o filtro (o campo Origem na página Consultas vai mostrar Sugestão de filtro) não esteja gerando um erro. Selecione o botão Detalhes da consulta e escolha a opção Abrir no SQL Runner. Verifique se o SQL está sintaticamente correto. Se você notar anomalias, como nomes de campo ausentes ou caracteres especiais incorretos, verifique se não está usando parâmetros do Liquid ou filtros com modelo.

  • Se a consulta exigir uma entrada de filtro com modelo para ser executada, nenhuma sugestão de filtro será preenchida.
  • Se a consulta usar um parâmetro com um default_value, esse valor será inserido na consulta de sugestão de filtro. Nesse cenário, a consulta de sugestão de filtro não será atualizada dinamicamente com base na entrada do usuário. Dependendo do valor padrão, isso pode fazer com que não haja sugestões de filtro ou que elas estejam erradas. Em vez disso, use filtros vinculados em um painel.