日: 2018年9月13日

  • docker版redash 運用でよく使うコマンドまとめ

    docker版redash 運用でよく使うコマンドまとめ

    はじめに

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