Essas práticas recomendadas refletem as recomendações compartilhadas por uma equipe multidisciplinar de profissionais experientes. Esses insights vêm de anos de experiência trabalhando com clientes do Looker, desde a implementação até o sucesso a longo prazo. As práticas foram criadas para funcionar para a maioria dos usuários e situações, mas você precisa usar seu melhor julgamento ao implementar.
Otimizar a performance da consulta
Você pode garantir que as consultas sejam criadas e executadas de maneira otimizada no seu banco de dados com as seguintes dicas de front-end e back-end:
-
Crie análises usando mesclagens
many_to_one
sempre que possível. A mesclagem de visualizações do nível mais granular ao mais detalhado (many_to_one
) geralmente oferece a melhor performance de consulta. -
Maximize o cache para sincronizar com suas políticas de ETL sempre que possível para reduzir o tráfego de consulta do banco de dados. Por padrão, o Looker armazena em cache as consultas por uma hora. É possível controlar a política de armazenamento em cache e sincronizar as atualizações de dados do Looker com seu processo de ETL aplicando datagroups
nas análises usando o parâmetro
persist_with
. Isso permite que o Looker se integre mais ao pipeline de dados do back-end, para que o uso do cache possa ser maximizado sem o risco de analisar dados desatualizados. As políticas de armazenamento em cache nomeadas podem ser aplicadas a um modelo inteiro e/ou a análises detalhadas e tabelas derivadas persistentes (PDTs, na sigla em inglês) individuais. - Use a funcionalidade de conhecimento agregado do Looker para criar tabelas de resumo ou de acúmulo que o Looker pode usar para consultas sempre que possível, especialmente para consultas comuns de bancos de dados grandes. Você também pode aproveitar a consciência agregada para melhorar drasticamente a performance de painéis inteiros. Consulte o tutorial de consciência agregada para mais informações.
- Use PDTs para consultas mais rápidas. Converta análises detalhadas com muitas mesclagens complexas ou sem desempenho ou dimensões com subconsultas ou subseleções em PDTs para que as visualizações sejam mescladas com antecedência e estejam prontas antes do tempo de execução.
- Se o dialeto do banco de dados oferecer suporte a PDTs incrementais, configure PDTs incrementais para reduzir o tempo que o Looker leva para recriar tabelas de PDT.
- Evite mesclar visualizações em análises em chaves primárias concatenadas definidas no Looker. Em vez disso, faça a mesclagem nos campos básicos que compõem a chave primária concatenada da visualização. Como alternativa, recrie a visualização como um PDT com a chave primária concatenada predefinida na definição SQL da tabela, em vez de uma visualização do LookML.
- Use a ferramenta Explain in SQL Runner para comparar. O
EXPLAIN
gera uma visão geral do plano de execução de consulta do banco de dados para uma determinada consulta SQL, permitindo que você detecte componentes de consulta que podem ser otimizados. Saiba mais na postagem da Comunidade Como otimizar o SQL comEXPLAIN
. -
Declare índices. Para conferir os índices de cada tabela diretamente no Looker do SQL Runner, clique no ícone de engrenagem em uma tabela e selecione Mostrar índices.
As colunas mais comuns que podem se beneficiar de índices são datas importantes e chaves estrangeiras. Adicionar índices a essas colunas aumenta a performance de quase todas as consultas. Isso também se aplica a PDTs. Os parâmetros do LookML, como
indexes
,sort keys
edistribution
, podem ser aplicados de maneira adequada. - Aumente a memória, os núcleos e a E/S (entrada/saída) de bancos de dados com hardware insuficiente ou recursos provisionados necessários (como a AWS) para processar grandes conjuntos de dados e aumentar a performance da consulta.
Otimizar a performance do servidor do Looker
Também é possível tomar medidas para garantir que o servidor e o aplicativo do Looker tenham o melhor desempenho possível:
- Limite o número de elementos em um painel individual. Não há 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, painéis com 25 ou mais blocos tendem a ser problemáticos em relação à performance.
- Use o recurso de atualização automática do painel de forma estratégica. Se um painel usa a atualização automática, verifique se ele não é mais rápido do que os processos de ETL em execução em segundo plano.
- Use as mudanças de perspectiva de maneira estratégica e evite usá-las demais nos blocos do painel e nos Looks. Consultas com dimensões pivotadas consomem mais memória. Quanto mais dimensões forem pivotadas, mais memória será consumida quando o conteúdo (um recurso "Explorar", "Look" ou um painel) for carregado.
- Use recursos como mesclar resultados, campos personalizados e cálculos de tabela com moderação. Esses recursos são destinados a serem usados como provas de conceito para ajudar a projetar seu modelo. É recomendável codificar em modo fixo todos os cálculos e funções usados com frequência no LookML, que vai gerar SQL para ser processado no seu banco de dados. Cálculos excessivos podem competir pela memória Java na instância do Looker, fazendo com que ela responda mais lentamente.
-
Limite o número de visualizações incluídas em um modelo quando houver um grande número de arquivos de visualização. Incluir todas as visualizações em um único modelo pode diminuir a performance. Quando um grande número de visualizações estiver presente em um projeto, considere incluir apenas os arquivos de visualização necessários em cada modelo. Considere usar convenções de nomenclatura estratégicas para os nomes dos arquivos de visualização, para facilitar a inclusão de grupos de visualizações em um modelo. Um exemplo está descrito na documentação do parâmetro
includes
. -
Evite retornar um grande número de pontos de dados por padrão nos blocos do painel e nos Looks. Consultas que retornam milhares de pontos de dados vão consumir mais memória. Limite os dados sempre que possível aplicando
filtros no front-end a dashboards, Looks e Análises, e no nível da LookML com os parâmetros
required filters
,conditionally_filter
esql_always_where
. - Faça o download ou envie consultas usando a opção Todos os resultados com moderação, porque algumas consultas podem ser muito grandes e sobrecarregar o servidor do Looker quando processadas.
Para mais ajuda na identificação da origem dos problemas de performance, consulte a página de práticas recomendadas Visão geral de desempenho.