はじめに
データベースを可視化するのに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について体系的に学ぶことができるのでおすすめ。