日. 8月 14th, 2022

はじめに

データベースを可視化するのにredashはとても便利。

しかし、運用を考えるといろいろ考えることがある。
redashでよく使うオペレーションをまとめた。

start redash

cd ~/redash
docker-compose -f docker-compose.production.yml up -d

redashのuserを確認

docker exec -it redash_server_1 ./manage.py users list

create user

docker exec -it redash_server_1 ./manage.py users create sumito.tsukada@sumito.jp sumito.tsukada

change password

docker exec -it redash_server_1 ./manage.py users password sumito.tsukada@sumito.jp password

delete redash user

docker exec -it redash_server_1 ./manage.py users deletesumito.tsukada@sumito.jp

redash v5以前は、userをdisableする機能がなかったので削除するしかなかったが、一度クエリを作ったり、ダッシュボードを作ると削除できないという問題があった。v5以降は標準でdisableする機能が追加されたので今後使う頻度は減りそう。

v4以前で上記コマンドでエラーになった場合、redash_postgres_1のレコードを強制的に削除することによって削除が可能になる(ことがある)

docker ps
(login to postgress)
docker exec -it redash_postgres_1 /bin/bash
psql -U postgres postgres
SELECT * FROM events WHERE user_id = 6;
DELETE FROM events WHERE user_id = 6;

redashデータのexport

docker ps
docker exec -it redash_postgres_1 /bin/bash
pg_dump -U postgres postgres | gzip > /tmp/redash_backup.gz
exit
docker cp redash_postgres_1:/tmp/redash_backup.gz .

redashデータのimport

本作業を行う前に、postgres以外のdockerコンテナを停止する

docker cp /tmp/redash_backup.gz redash_postgres_1:/tmp/redash_backup.gz
docker exec -it redash_postgres_1 /bin/bash

psql -U postgres template1
DROP DATABASE IF EXISTS postgres;
CREATE DATABASE postgres;
\q
zcat /tmp/redash_backup.gz | psql -U postgres -d postgres

Dockerのpostgresのデータをバックアップ

cronなのに仕込み、定期的に取得する

/bin/docker exec redash_postgres_1 pg_dump -U postgres postgres | /bin/gzip > /tmp/redash_backup.gz

参考情報

オライリー本より読みやすく、Dockerについて体系的に学ぶことができるのでおすすめ。