re:dashを使ってRDSのクエリを可視化してみた
ウィスキー、シガー、パイプをこよなく愛する大栗です。 最近re:dashというプロダクトが気になったので試してみました。
2015/06/21 re:dashのAMIが全リージョンで提供される様になり、東京リージョン(ap-northeast-1)でもAMIから起動できる様になりました。
re:dash?
re:dashとはとは「Open Source Data Collaboration and Visualization Platform」ということで、つまりデータ連携?可視化ができるプラットフォームらしいです。SQLの可視化などを行えます。 以下のデータソースに対応しています。
- PostgreSQL / Redshift
- MySQL
- Graphite
- Google BigQuery
- MongoDB
- URL(JSONフォーマット)
- Script(JSONフォーマット)
- Python(Pandas, NumPy, SciPyの結果など)
実際に試してみる
起動する
AWSの場合はインストール済みのAMIが用意されているので、今回は準備されているAMIを利用します。ただし、AMIが用意されているのは以下のリージョンで、バージニアで起動してみます。小規模ではt2.microで十分だそうです。 AMIの最新のリストはこちらを参照ください。
- バージニア(us-east-1): ami-f9f30c92
- カリフォルニア(us-west-1): ami-b99760fd
- オレゴン(us-west-2): ami-b5dcd985
- フランクフルト(eu-central-1): ami-aabc84b7
- アイルランド(eu-west-1): ami-35cab042
- サンパウロ(sa-east-1): ami-c78406da
- シンガポール(ap-southeast-1): ami-42d5d110
- シドニー(ap-southeast-2): ami-dda3d9e7
- 東京(ap-northeast-1): ami-945a8394
データソースを設定する
まず可視化するデータソースを設定します。データソースの設定はCLIを使用するので、起動したインスタンスにSSHでログインします。ログインユーザはubuntu
です。
ssh ubuntu@[public ip]
データソース設定のドキュメントを元にCLIを実行します。データソースにはRDS for MySQLを使用することとします。
ここで一点注意です。AMIにインストールされているバージョンは0.5なので、古いオプションの指定方法で実行します。現在のAMIにインストールされているre:dashのバージョンは0.6です。バージョン0.6以降は新しい指定方法になります。
$ cd /opt/redash/current $ sudo -u redash bin/run ./manage.py ds new -n rds -t mysql -o '{"user" : "awsuser", "passwd" : "mypassword", "host" : "エンドポイント", "db" : "mydb"}'
データを準備する
データベース負荷ツールjdbcrunnerのテストキットTiny TPC-Cを利用してデータを準備します。 以下のコマンドを実行してTPC-Cに準拠したデータを作成します。
$ sudo apt-get update $ sudo apt-get install openjdk-7-jdk $ wget http://ftp.vector.co.jp/56/06/3421/jdbcrunner-1.2.zip $ unzip ./jdbcrunner-1.2.zip $ cd ./jdbcrunner-1.2 $ export CLASSPATH=jdbcrunner-1.2.jar $ java JR ./scripts/tpcc_load.js -nAgents 4 -jdbcUrl "jdbc:mysql://RDSエンドポイント:3306/mydb" -jdbcUser "awsuser" -jdbcPass "mypassword" -param0 10
ログインする
http://[public ip]/login
にアクセスします。デフォルトのadmin/adminでログインします。
以下のようなクエリを入力し、Data Sourceの名称(今回はrds)を選択してExecute
をクリックします。
select * from district;
さいごに
専用のBIツールのように豊富な可視化コンポーネントはないですが、自分でSQLを記述して簡単にデータの可視化を行えるので、各種データベースのクライアントツールとして使用してみるのはいかがでしょうか?