この記事は
既に 2018 年だけど...
初老丸 Advent Calendar 2017 21 日目の記事です.
re:dash とは
うっかり, rehash と打ってしまうことしばしば. ちなみに, re:dash の正式な表記は「redash」なのか「redash」なのか, 「Re:dash」なのか判らなかったので, 本記事では re:dash
で統一したいと思う.(正式な表記があれば教えてください〜)
OSS で提供されているダッシュボード生成ツールで, データソースは MySQL や PostgreSQL 等の RDMS に始まって, Amazon RDS の Aurora や Elasticsearch や Google BigQuery, Graphite を指定することが出来る.
個人的にグッときたのは, データソースとして Graphite や Elasticsearch が利用出来る点, そして Python コードが実行出来る点. 書いているだけでワクワクする.
re:dash は OSS 版を任意の環境に展開して利用するか, ホスティングサービスも提供されているようで, 自分達でサーバーやリソースを管理するのがダルい場合や re:dash 使いたいけど, サーバーは落としたくないという顧客相手にはホスティング版も選択肢として検討出来ると思う.
re:dash を体験する
ハンズオン資料
以下のハンズオン資料を利用させて頂いて体験する.
ハンズオン環境
以下の環境でハンズオンを体験する.
$ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G17023 $ docker version Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.8.3 Git commit: afdb6d4 Built: Tue Sep 26 22:40:09 2017 OS/Arch: darwin/amd64 Server: Version: 17.09.0-ce API version: 1.32 (minimum version 1.12) Go version: go1.8.3 Git commit: afdb6d4 Built: Tue Sep 26 22:45:38 2017 OS/Arch: linux/amd64 Experimental: false $ docker-compose version docker-compose version 1.16.1, build 6d1ac21 docker-py version: 2.5.1 CPython version: 2.7.12 OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016
環境構築
ハンズオン資料に従って, Docker Compose で構築する.
$ git clone https://github.com/kakakakakku/redash-hands-on.git $ cd redash-hands-on $ docker-compose run --rm server create_db $ docker-compose up -d
資料では docker-compose up
と書かれていたけど, デタッチモードで起動した.
ログイン
ブラウザで http://localhost にアクセスすると以下のように!
Email や Password は資料通りに.
データソース
データソースの指定で, 一瞬だけ「データソースボタン」ってどこなの?って思ったりしつつ, 資料通りに MySQL を指定することが出来た.
クエリを作って, グラフもサクッと作ることが出来る
以下のように, New Query をクリックしてクエリを入力する.
既にデータベース(world)が用意されているのが嬉しい限り.
資料に従って, 以下のようなクエリを試してみた.
-- 国の一覧 SELECT * FROM country; -- 国の件数 SELECT COUNT(*) AS COUNT FROM country; -- 国の件数(+ 目標値) SELECT COUNT(*) AS COUNT, 500 AS kpi FROM country; -- 都市の件数 SELECT CountryCode, COUNT(*) AS COUNT FROM city GROUP BY CountryCode ORDER BY COUNT DESC;
以下のように, クエリを実行して, クエリに対して Visualization Editor で直ぐに可視化が出来る.
以下は都市の件数を円グラフにする実行例.
いい感じ.
同じクエリを利用して棒グラフも作成することが出来る.
パラメータ機能
クエリ内に {{}}
を含めると, クエリにパラメータを指定することが出来るようになる.
SELECT * FROM city WHERE CountryCode = '{{CountryCode}}' ORDER BY Population DESC;
下図のように CountryCode に対して任意の値を指定することが出来るようになる.
パラメータの入力項目はテキストフィールド以外に, プルダウン等も指定することが出来る.
プルダウン以外に Date を選択すると, 日付ピッカーから日付を選択することが出来る.
今回のデータベースは日付は関係ないのでアレだけど, これは便利そうだ.
フィルタ機能
クエリのカラム名を カラム名::filter
又は カラム名::multi-filter
という名前にすると, クエリの結果に対してフィルタを掛けることが出来る.
multi-filter
で複数の値でフィルタすることも出来る.
これまた便利そう.
その他の機能
ハンズオン資料で紹介されていたのは, 上記のパラメータやフィルタ機能以外に,
等, 直ぐに役立つ機能がギュッと纏まっていて, このハンズオン資料だけで re:dash の主要な機能(だと思われる)を体感出来る気がする.
以上
素晴らしいハンズオン資料
繰り返しになるが, re:dash に初体験の自分でも, あっという間に環境構築が出来て, 主要な機能を余すことなく体感出来た. 有難うございました.
初めて re:dash を使ってみて
ハンズオンやってみて...
- セットアップが簡単そう(ハンズオン資料のお陰だと思うけど
- SQL さえ書ければ, 可視化までの手間がとても少ないことが嬉しい
- 今後, 自分が出会いそうなデータソースはサポートされていることが嬉しい
- クエリスニペットや通知機能等の細かい機能が嬉しい