Resolução de problemas comuns de sugestões de filtros

As sugestões de filtros são uma ferramenta poderosa no Looker. É fundamental compreender a origem e o funcionamento dos filtros para poder resolver problemas de forma eficaz quando as sugestões de filtros não se comportam como esperado. Esta página aborda o funcionamento das sugestões de filtros, o motivo pelo qual podem estar incorretas e o motivo pelo qual podem não ser preenchidas.

Como funcionam as sugestões de filtros?

As sugestões de filtros poupam tempo quando os utilizadores introduzem valores nos filtros e garantem que os utilizadores escolhem opções que existem nos dados. Quando os utilizadores selecionam uma caixa de filtro, é apresentada uma lista de sugestões abaixo do campo. Neste exemplo, selecionar a caixa de um filtro no campo Estado da exploração Encomendas revela uma lista pendente com os valores "cancelado", "concluído" e "pendente" como opções.

Qual é a origem desta lista de sugestões?

O Looker executa uma consulta SELECT distinct <field> na base de dados para obter todas as opções possíveis para esse campo. A consulta tem um aspeto 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 utilizadores introduzem carateres 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 1000 desses resultados nas sugestões de filtros.

Posso alterar as sugestões apresentadas?

Os programadores podem usar vários parâmetros do LookML para alterar e personalizar as sugestões apresentadas. Consulte a página de documentação Alterar sugestões de filtros para ver mais detalhes.

As sugestões são colocadas em cache?

Por predefinição, o Looker armazena em cache os resultados das consultas durante uma hora. Pode usar o parâmetro suggest_persist_for do LookML para personalizar a duração da cache para sugestões de filtros. O parâmetro suggest_persist_for tem um valor predefinido de "6 horas". As sugestões têm a sua própria cache, que não pode ser limpa manualmente a partir de uma página Explorar. Se precisar de limpar a cache das sugestões, seguem-se algumas opções:

  • Se a exploração estiver em cache com um datagroup com um sql_trigger, pode repor manualmente a cache para todo o datagroup na página Datagroups no painel Admin do Looker, mas isto vai atualizar a cache para todas as consultas persistidas através desse datagroup.
  • Pode usar o parâmetro suggest_persist_for ao nível do campo e defini-lo como "0 segundos" para limpar a cache de sugestões de filtros desse campo.
    A cache é global para todos os utilizadores. Um utilizador que atualize a cache de sugestões afeta os resultados que os outros utilizadores veem.

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

Agora que compreende como as sugestões de filtros são preenchidas, pode determinar por que motivo as sugestões de filtros podem estar incorretas. A explicação mais comum é que os dados foram alterados ou atualizados entre o momento em que as sugestões de filtros foram colocadas em cache e o momento em que os resultados incorretos foram detetados.

Por exemplo, suponhamos que o utilizador A executa uma análise detalhada logo de manhã. O utilizador A seleciona alguns valores de filtro na lista pendente de sugestões. O processo ETL da base de dados termina cerca de meia hora depois. Em seguida, o utilizador B vê a mesma exploração que o utilizador A executou anteriormente. O utilizador B pergunta-se por que motivo as sugestões de filtros estão incorretas. A razão para a disparidade é que a consulta de sugestão em cache não foi atualizada com o processo de ETL recentemente concluído da base de dados e, por isso, apresentou resultados inesperados.

Se for este o caso, pode atualizar a cache de sugestões através dos métodos descritos na secção As sugestões são colocadas em cache? anteriormente nesta página.

Por que motivo as sugestões de filtros não estão a ser preenchidas?

Pode haver vários motivos para as sugestões de filtros não serem preenchidas. Os seguintes passos de resolução de problemas realçam as potenciais causas:

  1. Verifique o tipo de filtro.
  2. Verifique se existe um access_filter ou um sql_always_where que restringe as sugestões.
  3. Verifique se existe um suggest_dimension parameter.
  4. Verifique se existe uma tentativa de carregar sugestões quando um utilizador seleciona ou introduz texto no filtro.
  5. Verifique a consola de rede do Chrome.
  6. Encontre provas da consulta de sugestões que o Looker está a tentar executar.

Verifique o tipo de filtro

Se for um filtro de painel de controlo do LookML, certifique-se de que o tipo de filtro é Campo. Outros tipos de filtros não preenchem sugestões.

  • Certifique-se de que o campo de filtro é do tipo type: string na respetiva definição do LookML. Os filtros em campos do tipo number não preenchem sugestões.
  • É um filtro corresponde a (avançado)? Os filtros de correspondências (avançados) requerem expressões do Looker, pelo que as sugestões não são preenchidas.

Verifique se existe um access_filter ou um sql_always_where que restringe as sugestões

Normalmente, quando se usa sql_always_where ou access_filter, as sugestões de filtros são restritas para essa análise detalhada. Isto impede que os utilizadores vejam uma sugestão de filtro à qual não têm acesso. Se tiver a certeza de que não existem valores possíveis num determinado campo de dimensão ou filtro que revelem informações confidenciais, pode usar bypass_suggest_restrictions para reativar as sugestões de filtros.

Verifique se existe um suggest_dimension parameter

Quando o parâmetro suggest_dimension é usado, as sugestões de filtros não são preenchidas, a menos que a dimensão sugerida esteja a ser referenciada numa análise detalhada com a vista dessa dimensão definida como a vista base da análise detalhada.

Para explorações em que a vista da dimensão sugerida não é a vista base, adicione o parâmetro suggest_explore, fazendo referência à exploração em que essa vista é a vista base.

Verifique se existe uma tentativa de carregar sugestões quando seleciona ou introduz texto no filtro

Verifique se o Looker tenta carregar sugestões quando seleciona ou introduz texto na caixa de filtro. O Looker deve apresentar um círculo de carregamento rotativo no lado direito da caixa de filtro.

Caso contrário, o Looker não está a tentar preencher sugestões. Verifique se as condições descritas no primeiro passo são cumpridas e se as sugestões não estão desativadas ao nível do field, view ou Explorar (com sql_always_where ou access_filter) no LookML. Tenha em atenção que os dialetos Hadoop adicionam suggestions: no a todos os ficheiros de visualização por predefinição.

Se houver uma tentativa de carregar sugestões, avance para as instruções para verificar a consola de rede do Chrome.

Verifique a consola de rede do Chrome

A consola de rede do Chrome pode realçar um erro com a própria consulta ou mostrar se existem resultados devolvidos da cache.

  1. Abra o separador Rede no navegador com o atalho Ctrl + Shift + J (no Windows) ou Command + Option + J (no Mac) ou selecionando Ver > Desenvolver > Ferramentas para programadores na barra de opções do Chrome na parte superior do navegador.
  2. Selecione na caixa de filtro no seu Look, Explore ou painel de controlo.
  3. O painel Ferramentas para programadores deve apresentar um pedido de sugestões de filtros, que pode selecionar para ver mais informações.
  4. Os cabeçalhos apresentam o pedido de API interno que o Looker está a fazer para obter os valores de sugestão. Neste exemplo, suponha que o Looker está a fazer o seguinte pedido 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. No pedido da API, verifique se o modelo indicado após /models/ existe. Neste exemplo, o modelo chama-se the_look.
  6. Embora o URL indique /views/, isto refere-se à página Explorar de onde o campo está a ser extraído. Verifique se a exploração apresentada após /views/ existe. Neste exemplo, a exploração chama-se order_items.
  7. Verifique se o campo indicado após /fields/ existe. Neste exemplo, o campo é users.state.

A resposta a este pedido de API apresenta a mensagem de erro exata. Por exemplo, o código de estado das sugestões é 404 Not Found:

Selecione a resposta a este pedido para ver mais detalhes.

Neste caso, pode ver que as sugestões estão a falhar porque não é possível encontrar o campo com base na resposta ao pedido:

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

Se não existirem erros, mas também não existirem sugestões quando esperado, verifique se a consulta de sugestões está a ser extraída da cache (cache: true na Network Console). Isto pode sugerir que a cache tem de ser limpa através de um parâmetro suggest_persist_for na dimensão que está a publicar sugestões.

Encontre provas da consulta de sugestões que o Looker está a tentar executar

Pode consultar a página Consultas no painel Administração do Looker para se certificar de que a consulta que está a gerar o filtro (o campo Origem na página Consultas indica Sugestão de filtro) não está a gerar um erro. Selecione o botão Detalhes da consulta e selecione a opção Abrir em execução de SQL. Verifique se o SQL está sintaticamente correto. Se notar anomalias, como nomes de campos em falta ou carateres especiais incorretos, verifique se não está a usar parâmetros Liquid ou filtros baseados em modelos.

  • Se a consulta exigir uma entrada de filtro baseado em modelos para ser executada, não são preenchidas sugestões de filtros.
  • Se a consulta usar um parâmetro com um default_value, esse valor é inserido na consulta de sugestão de filtro. Neste cenário, a consulta de sugestão de filtro não é atualizada dinamicamente com base na entrada do utilizador. Consoante o valor predefinido, isto pode não gerar sugestões de filtros ou gerar sugestões de filtros incorretas. Em alternativa, considere usar filtros associados num painel de controlo.