re:dashを使い始めて約半年、社内で実運用を始めて約10ヶ月が経ちました。
re:dashに繋がらなくなると苦情が出るレベル、にまでは社内で使われるようになりました。
その感想を書きます。
かなり主観も入ってますが、これから使おうとしている方は是非参考に。
現在の使用状況
-
クエリ数は約900
- このうちスケジューリングで定期実行しているのは約200
-
ダッシュボード数は約150
何が良いのか
OSSであること
これは非常に大きいです。
商用のBIツールの場合、よくわからない挙動や動作をした場合でもベンダーに問い合わせたりする必要があります。
ただしre:dashはOSSです。
意味不明な動作をしたらコードを読めば動作が把握出来ます。
(※もちろんPythonのコードをある程度読める必要があります)
また、開発が非常に活発で外部からのPRもちゃんと見てくれます。
作者の@arikfrさんが開発する際にも必ずPRを作ってMergeされています。
@arikfrさんはTwitterも積極的にチェックしているそうです。
WEB UIであること
クライアント型の可視化ソフトは開発泣かせですよね。。
対応したデータソースが多いこと
対応データソースがとにかく多いですが、大部分が外部からのcontributionsです。
作者の人が作ったquery runnerはほとんどないのではないでしょうか。
ただ、さすがにTreasure DataやVerticaといった商用系のデータソースを作者の人がレビューするのは無理があります。
データソースの追加に関しては最近plugableになりました。
REDASH_ADDITIONAL_QUERY_RUNNERSという環境変数に独自のコードのPathを記述することで実現できます。
ここを参照
細かな便利機能
以下は細かい機能ですが、
-
SQLの実行結果がキャッシュされる
- 夜中などにSQLをスケジューリングしておけば、朝会社に来てSQLの実行結果を待たされるといったことはありません
-
スケジューリング機能を持っている
-
SQLを共有出来る
- クエリごとにパーマリンクがあるというのは本当に素晴らしいことです
-
程よくプログラマブル
- sqlのテンプレート機能
- JSON API
- 独自UIをJavascriptで生成(re:dashのダッシュボードで入力フォームを活用する - Qiita)
-
アラート機能
- SQLの結果によってアラートをメール,Hipchat,Slack,webhook等で通知できます
可視化までの手間が少ない
やることは
- SQLを書く
- グラフを作る
- ダッシュボードに組み込む
- スケジュールを組む
を継続的に回していくイメージです。
Excelなどにして渡すなどに比べると大幅にデータ抽出コストが削減できます。
最低限のセキュリティ機能が実装されていること
- 権限管理
- SSL
- Google Apps認証
- 操作ログ
- SAML認証
といった最低限のセキュリティ機能が備わっています。
権限については別のAdvent Calendarで書こうかと思います。
足りないと思う点
セキュリティ系
- ダッシュボード別、クエリ別の権限設定
表示系
-
レポーティング
- ダッシュボードをPDFにして出したい
- ダッシュボードの内容を定期的にメールで送信
-
もう少し高度な可視化
- バブルチャートやツリーマップなど
その他
-
ドキュメントに書いていない裏機能みたいなものが数多く存在し、コードを読まないとわからない。
- 仕様変更が激しいため、使っていた機能急に別の場所に移動されたりする
-
依存モジュールが多くて、Ubuntu以外のOSで構築するのがきつい
発生した問題
-
クエリの数が増えすぎており、適切なスケジューリングがされていないとクエリが詰まる。
- Worker数を設定できるのでスケールアップで回避可能
- 350クエリ程度ならAWSのm3.medium程度でも特に問題はない
- Prestoなど数分かかるクエリを実行する場合はスケジュールをうまく調節すること
-
StableではないVersionにアップデートすると大抵バグが見つかります^^
- ただ、自分は許容できるようなバグが多いです