Otimize o desempenho do Looker

Estas práticas recomendadas refletem as recomendações partilhadas por uma equipa multifuncional de utilizadores experientes do Looker. Estas estatísticas resultam de anos de experiência a trabalhar com clientes do Looker, desde a implementação ao sucesso a longo prazo. As práticas são escritas para funcionar para a maioria dos utilizadores e situações, mas deve usar o seu melhor julgamento ao implementá-las.

Otimize o desempenho das consultas

Pode garantir que as consultas são criadas e executadas de forma ideal na sua base de dados com as seguintes sugestões de front-end e back-end:

  • Crie explorações com junções many_to_one sempre que possível. A união de visualizações do nível mais detalhado ao nível de detalhe mais elevado (many_to_one) oferece normalmente o melhor desempenho das consultas.
  • Maximize o armazenamento em cache para sincronizar com as suas políticas de ETL sempre que possível, de modo a reduzir o tráfego de consultas da base de dados. Por predefinição, o Looker armazena em cache as consultas durante uma hora. Pode controlar a política de colocação em cache e sincronizar as atualizações de dados do Looker com o seu processo de ETL aplicando grupos de dados nas explorações, através do parâmetro persist_with. Isto permite que o Looker se integre mais estreitamente com o pipeline de dados de back-end, para que a utilização da cache possa ser maximizada sem o risco de analisar dados desatualizados. As políticas de colocação em cache com nome podem ser aplicadas a um modelo completo e/ou a explorações individuais e tabelas derivadas persistentes (PDTs).
  • Use a funcionalidade de reconhecimento de agregação do Looker para criar tabelas de resumo ou roll-ups que o Looker possa usar para consultas sempre que possível, especialmente para consultas comuns de grandes bases de dados. Também pode tirar partido da agregação de dados de notoriedade para melhorar drasticamente o desempenho de painéis de controlo inteiros. Consulte o tutorial de agregação de dados de reconhecimento para ver informações adicionais.
  • Use PDTs para consultas mais rápidas. Converta as análises detalhadas com muitas junções complexas ou com baixo desempenho, ou dimensões com subconsultas ou subseleções, em PDTs para que as visualizações de propriedade sejam pré-unidas e estejam prontas antes do tempo de execução.
  • Se o seu dialeto da base de dados suportar PDTs incrementais, configure PDTs incrementais para reduzir o tempo que o Looker dedica à recompilação de tabelas de PDTs.
  • Evite juntar vistas em opções Explorar com chaves principais concatenadas definidas no Looker. Em alternativa, junte-se aos campos base que compõem a chave principal concatenada da vista. Em alternativa, recrie a vista como um PDT com a chave principal concatenada predefinida na definição SQL da tabela, em vez de no LookML de uma vista.
  • Tire partido da ferramenta Explicar em execução de SQL para testes de referência. EXPLAIN produz uma vista geral do plano de execução de consultas da sua base de dados para uma determinada consulta SQL, o que lhe permite detetar componentes de consultas que podem ser otimizados. Saiba mais no artigo da comunidade Como otimizar o SQL com o EXPLAIN.
  • Declare os índices. Pode consultar os índices de cada tabela diretamente no Looker a partir do SQL Runner clicando no ícone de roda dentada numa tabela e, em seguida, selecionando Mostrar índices.

    As colunas mais comuns que podem beneficiar de índices são datas importantes e chaves externas. A adição de índices a estas colunas aumenta o desempenho de quase todas as consultas. Isto também se aplica a PDTs. Os parâmetros do LookML, como indexes, sort keys e distribution, podem ser aplicados adequadamente.
  • Aumente a memória, os núcleos e a E/S (entrada/saída) das bases de dados com hardware insuficiente ou recursos aprovisionados necessários (como a AWS) para o processamento de grandes conjuntos de dados, de modo a aumentar o desempenho das consultas.

Otimize o desempenho do servidor do Looker

Também pode tomar medidas para garantir que o servidor e a aplicação do Looker estão a ter um desempenho ideal:

  • Limite o número de elementos num painel de controlo individual. Não existe uma regra precisa para definir o número, porque o design de cada elemento afeta o consumo de memória com base em vários fatores. No entanto, os painéis de controlo com 25 ou mais mosaicos tendem a ser problemáticos em termos de desempenho.
  • Use a funcionalidade de atualização automática do painel de controlo de forma estratégica. Se um painel de controlo usar a atualização automática, certifique-se de que a atualização não é mais rápida do que os processos de ETL executados em segundo plano.
  • Use as tabelas dinâmicas de forma estratégica e evite usá-las em excesso nos mosaicos do painel de controlo e nas análises detalhadas. As consultas com dimensões invertidas consomem mais memória. Quanto mais dimensões forem invertidas, mais memória é consumida quando o conteúdo (uma análise detalhada, um visual ou um painel de controlo) é carregado.
  • Use funcionalidades como mesclar resultados, campos personalizados e cálculos de tabelas com moderação. Estas funcionalidades destinam-se a ser usadas como provas de conceito para ajudar a conceber o seu modelo. É uma prática recomendada codificar permanentemente todos os cálculos e funções usados com frequência no LookML, o que gera SQL a ser processado na sua base de dados. Os cálculos excessivos podem competir pela memória Java na instância do Looker, o que faz com que a instância do Looker responda mais lentamente.
  • Limite o número de vistas incluídas num modelo quando estiver presente um grande número de ficheiros de vistas. A inclusão de todas as visualizações num único modelo pode diminuir o desempenho. Quando um projeto tiver um grande número de vistas, considere incluir apenas os ficheiros de vistas necessários em cada modelo. Considere usar convenções de nomenclatura estratégicas para os nomes dos ficheiros de visualização, de modo a permitir a inclusão fácil de grupos de visualizações num modelo. Pode encontrar um exemplo na documentação do parâmetro includes.
  • Evite devolver um grande número de pontos de dados por predefinição nos mosaicos do painel de controlo e nos Looks. As consultas que devolvem milhares de pontos de dados consomem mais memória. Certifique-se de que os dados são limitados sempre que possível aplicando filtros de front-end a painéis de controlo, Looks e explorações, e ao nível do LookML com os parâmetros required filters, conditionally_filter e sql_always_where.
  • Transfira ou envie consultas usando a opção Todos os resultados com moderação, uma vez que algumas consultas podem ser muito grandes e sobrecarregar o servidor do Looker quando processadas.

Para obter mais ajuda na identificação da origem dos problemas de desempenho, consulte a página de práticas recomendadas Vista geral do desempenho.