O Looker mantém um cache como parte de cada instância. O cache padrão do Looker é uma solução personalizada de armazenamento em cache baseada em várias camadas: na memória, no disco local e no disco remoto. O banco de dados interno do Looker é usado como um índice que identifica onde os objetos em cache estão localizados no sistema.
Se você hospeda sua própria instância do Looker, pode configurar o Looker para usar um cache do Redis hospedado separadamente. Um cache do Redis pode oferecer os seguintes benefícios:
- Melhoria na recuperação do cache: a principal melhoria será em tempos consistentes de recuperação do cache. À medida que o número de nós em um cluster do Looker aumenta, a comunicação entre nós pode prejudicar a performance do cache. A nova arquitetura de cache do Redis consolida o cache, o que resulta em tempos consistentes de recuperação de cache, não importa o tamanho do cluster do Looker.
- Menos carga: além disso, o cache fica em um nível separado da instância do Looker, o que gera menos carga na instância.
- Scalabilidade: o uso de um cache do Redis também permite que ele seja escalonado independentemente da instância do Looker.
Requisitos
O Looker oferece suporte às versões 4.0.x e 5.0.x do Redis. Para usar um cache Redis com o Looker, sua instância do Redis precisa atender aos seguintes requisitos:
- A instância do Redis precisa ser acessível pela instância do Looker.
- A instância do Redis não pode ser um cluster. No entanto, você pode usar uma configuração principal/réplica para alta disponibilidade.
- O tamanho do cache do Redis é aproximadamente igual ao do cache do Looker. Por padrão, o cache do Looker tem 2 GB por nó. Portanto, se você tem um cluster do Looker com três nós, recomenda-se um cache Redis de 6 GB.
- A configuração
maxmemory-policy
do Redis precisa ser definida comovolatile-lru
. - Será necessário desativar todas as autenticações do Redis. Todos os dados armazenados no Redis são criptografados na instância do Looker antes de serem enviados ao servidor do Redis.
- É possível usar uma opção do Redis hospedada em um ElastiCache da AWS ou no Google MemoryStore, desde que não seja uma configuração de cluster do Redis.
Além disso, o sistema de criptografia GCM do Looker é necessário para usar o Redis no Looker. É necessário atualizar a criptografia das instâncias que usam a criptografia legada antes de ativar o Redis. Se você tentar ativar o Redis sem a criptografia do GCM, o Looker não vai ser iniciado com uma mensagem de erro semelhante a esta:
2020-01-23 10:28:44.253 -0800 [ERROR|007e4|cache] :: Must enable GCM encryption to use Redis caching
Para obter instruções sobre como fazer upgrade da criptografia legada para a criptografia do GCM, consulte a página de documentação Como migrar para a criptografia GCM AES-256.
Como definir uma variável de ambiente para ativar o cache do Redis
Para ativar o cache do Redis, defina a variável de ambiente LOOKER_REDIS_CACHE_DISCOVERY
para apontar para o URL de conexão do Redis e reinicie completamente a instância do Looker, incluindo todos os nós do cluster. Recomendamos que você desligue completamente seu servidor, modifique seu ambiente e os scripts de inicialização conforme necessário para incluir a variável de ambiente e, em seguida, inicie todos os nós.
Para encerrar o Looker, execute os seguintes comandos em cada nó:
cd looker
./looker stop
Então, por exemplo, se você tiver uma instância local do Redis no mesmo host na porta padrão, defina a variável de ambiente LOOKER_REDIS_CACHE_DISCOVERY
da seguinte maneira:
export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379
Em seguida, reinicie o Looker:
./looker start
Como verificar se o cache do Redis está ativado
Para determinar se o cache do Redis está ativado, procure entradas no seu registro do Looker. Deve haver entradas de registro semelhantes às seguintes:
2021-06-11 16:54:41.532 +0000 [INFO|007e4|RedissonClientPool] :: Creating client for redis://localhost:6379/
...
2021-06-11 16:54:42.802 +0000 [INFO|007e4|cache] :: Creating render_cache DataShelf: redis