Looker gestisce una cache come parte di ogni istanza. La cache predefinita di Looker è una soluzione di cache personalizzata basata su diversi strati: in memoria, 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 Looker, puoi configurare facoltativamente Looker in modo che utilizzi una cache Redis ospitata separatamente. Una cache Redis può fornire i seguenti vantaggi:
- Recupero della cache migliorato : il miglioramento principale sarà nei tempi di recupero della cache coerenti. Man mano che aumenta il numero di nodi in un cluster Looker, la comunicazione tra i nodi può peggiorare le prestazioni della cache. La nuova architettura della cache Redis consolida la cache, il che comporta tempi di recupero della cache coerenti, indipendentemente dalle dimensioni del cluster Looker.
- Carico inferiore : inoltre, la cache si trova in un livello separato dall'istanza Looker, il che comporta un carico inferiore sull'istanza Looker.
- Scalabilità : l'utilizzo di una cache Redis consente anche di scalare la cache indipendentemente dall'istanza Looker.
Requisiti
Looker supporta le versioni Redis 4.0.x, 5.0.x e 7.2.x. Per utilizzare una cache Redis con Looker, l'istanza Redis deve soddisfare i seguenti requisiti:
- L'istanza Redis deve essere accessibile dall'istanza Looker.
- L'istanza Redis non deve essere un cluster. Tuttavia, puoi utilizzare un'istanza di replica per l'alta affidabilità.
- Le dimensioni della cache Redis devono essere approssimativamente uguali alle dimensioni della cache Looker. Per impostazione predefinita, la cache Looker è di 2 GB per nodo. Pertanto, se hai un cluster Looker a tre nodi, è consigliata una cache Redis da 6 GB.
- La configurazione
maxmemory-policydi Redis deve essere impostata suvolatile-lru. - Dovrai disattivare l'autenticazione Redis. Tutti i dati archiviati in Redis vengono criptati nell'istanza 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 del cluster Redis.
Inoltre, per utilizzare Redis in Looker è necessario il sistema di crittografia GCM di Looker. Prima di attivare Redis, devi aggiornare la crittografia per le istanze che utilizzano la crittografia legacy. Se tenti di attivare Redis senza la crittografia GCM, Looker non verrà avviato 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 legacy alla crittografia GCM, consulta la pagina della documentazione Migrazione alla crittografia AES-256 GCM.
Impostazione di una variabile di ambiente per attivare la cache Redis
Per attivare la cache Redis, devi impostare la variabile di ambiente LOOKER_REDIS_CACHE_DISCOVERY in modo che punti all'URL di connessione Redis, quindi riavvia completamente l'istanza Looker, inclusi tutti i nodi del 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, quindi avviare tutti i nodi.
Per arrestare Looker, esegui i seguenti comandi su ogni nodo:
cd looker
./looker stop
Ad esempio, se hai un'istanza Redis locale sullo stesso host sulla 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 che la cache Redis sia attivata
Per determinare se la cache Redis è attivata, cerca le voci nel log di Looker. Dovrebbero essere presenti 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