Abilitazione di una cache Redis su un'istanza ospitata dal cliente

Looker gestisce una cache all'interno di ogni istanza. La cache predefinita di Looker è una soluzione di memorizzazione nella cache personalizzata basata su più livelli: in memoria, su disco locale e disco remoto. Il database interno di Looker viene utilizzato come indice che identifica la posizione degli oggetti memorizzati nella cache nel sistema.

Se ospiti la tua istanza di Looker, puoi facoltativamente configurare Looker in modo da utilizzare una cache Redis ospitata separatamente. Una cache Redis può offrire i seguenti vantaggi:

  • Recupero della cache migliorato: il miglioramento principale riguarda tempi costanti di recupero della cache. Con l'aumento del numero di nodi in un cluster di Looker, la comunicazione tra i nodi può peggiorare le prestazioni della cache. La nuova architettura della cache Redis consolida la cache, il che si traduce in tempi di recupero della cache coerenti indipendentemente dalle dimensioni del cluster di Looker.
  • Meno carico: inoltre, la cache si trova in un livello separato dall'istanza Looker, il che riduce il carico sull'istanza.
  • Scalabilità: l'utilizzo di una cache Redis consente inoltre di scalare la cache indipendentemente dall'istanza di Looker.

Requisiti

Looker supporta le versioni Redis 4.0.x e 5.0.x. Per utilizzare una cache Redis con Looker, l'istanza Redis deve soddisfare i seguenti requisiti:

  • L'istanza Redis deve essere accessibile dall'istanza di Looker.
  • L'istanza Redis non deve essere un cluster; tuttavia, puoi utilizzare una configurazione principale/replica per l'alta disponibilità.
  • Le dimensioni della cache Redis dovrebbero corrispondere approssimativamente a quelle della cache di Looker. Per impostazione predefinita, la cache di Looker è di 2 GB per nodo. Pertanto, se hai un cluster di Looker di tre nodi, ti consigliamo una cache Redis di 6 GB.
  • La configurazione maxmemory-policy di Redis deve essere impostata su volatile-lru.
  • Dovrai disattivare qualsiasi autenticazione Redis. Tutti i dati archiviati in Redis vengono criptati nell'istanza di Looker prima di essere inviati al server Redis.
  • Puoi utilizzare un'opzione Redis ospitata su AWS ElastiCache o Google MemoryStore, a condizione che non si tratti di una configurazione di cluster Redis.

Inoltre, per utilizzare Redis in Looker è necessario il sistema di crittografia GCM di Looker. Devi aggiornare la crittografia per le istanze che utilizzano la crittografia precedente prima di attivare Redis. Se provi ad attivare Redis senza crittografia GCM, Looker non riuscirà ad avviarsi e verrà visualizzato un messaggio di errore simile al seguente:

2020-01-23 10:28:44.253 -0800 [ERROR|007e4|cache] :: Must enable GCM encryption to use Redis caching

Per istruzioni sull'upgrade dalla crittografia precedente alla crittografia GCM, consulta la pagina della documentazione Eseguire la migrazione alla crittografia AES-256 GCM.

Impostazione di una variabile di ambiente per abilitare la cache Redis

Per abilitare la cache Redis, devi impostare la variabile di ambiente LOOKER_REDIS_CACHE_DISCOVERY in modo che punti all'URL di connessione Redis ed eseguire un riavvio completo dell'istanza di Looker, inclusi tutti i nodi nel cluster. Ti consigliamo di arrestare completamente il server, modificare gli script di ambiente e di avvio in base alle esigenze per includere la variabile di ambiente e poi avviare tutti i nodi.

Per arrestare Looker, esegui questi comandi su ciascun nodo:

cd looker
./looker stop

Ad esempio, se hai un'istanza Redis locale sullo stesso host alla porta predefinita, imposta la variabile di ambiente LOOKER_REDIS_CACHE_DISCOVERY come segue:

export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379

Quindi riavvia Looker:

./looker start

Verifica dell'attivazione della cache Redis

Per determinare se la cache Redis è abilitata, cerca le voci nel log di Looker. Dovresti trovare voci di log simili alle seguenti:

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