概要
redashは、クエリーを実行させるとキャッシュが残ります。
しかし、日次で見るようなクエリーであれば、昨日のクエリーは意味がないです。
なので、キャッシュはどんどん消して行くべきです。
キャッシュ自動削除の仕組み
キャッシュ削除はデフォルトで下記の通りの設定値で制御されます。
環境変数名 | 意味 | デフォルト値 |
---|---|---|
REDASH_QUERY_RESULTS_CLEANUP_ENABLED | 自動キャッシュ削除機能を有効にするかどうか | true |
REDASH_QUERY_RESULTS_CLEANUP_COUNT | 自動キャッシュ削除1回あたり何レコードを消すか | 100 |
REDASH_QUERY_RESULTS_CLEANUP_MAX_AGE | キャッシュが作られてから何日後に消すか | 7 |
キャッシュ削除は5分に一回実行され、その1回あたりの最大削除レコード数が上記の通り制限されています。
なので、この数値が小さいと、利用のされ方によっては、キャッシュがたまるスピードの方が早くてどんどん容量が圧迫されてしまいます。
僕が導入したクライアントでは、REDASH_QUERY_RESULTS_CLEANUP_COUNTは1500に設定しています。
設定の仕方
envファイルは、/opt/redash/.env または、/opt/redash/env あるいは、docker-compose.yml でも設定できます。
設定したら docker-compose で再起動します。
docker-compose down
docker-compose up -d
なお、PostgreSQLはキャッシュを消しても基本的にディスク容量は開放されません。
適宜vacuumなどを行う必要があります。