re:dashを使ってRDSのクエリを可視化してみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ウィスキー、シガー、パイプをこよなく愛する大栗です。 最近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の最新のリストはこちらを参照ください。

データソースを設定する

まず可視化するデータソースを設定します。データソースの設定は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でログインします。 re_dash_Login

メニューからNew Queryをクリックします。 re_dash___Home

以下のようなクエリを入力し、Data Sourceの名称(今回はrds)を選択してExecuteをクリックします。

select * from district;

re_dash___New_Query

スクロールすると、クエリ結果や re_dash___New_Query

結果のピボットテーブルが表示できます。 re_dash___New_Query

+ Newをクリックするとチャートを作成できます。 re_dash___New_Query

さいごに

専用のBIツールのように豊富な可視化コンポーネントはないですが、自分でSQLを記述して簡単にデータの可視化を行えるので、各種データベースのクライアントツールとして使用してみるのはいかがでしょうか?