re:dashは何が良くて、何が足りないのか

  • 265
    いいね
  • 3
    コメント

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の結果によってアラートをメール,Hipchat,Slack,webhook等で通知できます

可視化までの手間が少ない

やることは

  • SQLを書く
  • グラフを作る
  • ダッシュボードに組み込む
  • スケジュールを組む

を継続的に回していくイメージです。

Excelなどにして渡すなどに比べると大幅にデータ抽出コストが削減できます。

最低限のセキュリティ機能が実装されていること

  • 権限管理
  • SSL
  • Google Apps認証
  • 操作ログ
  • SAML認証

といった最低限のセキュリティ機能が備わっています。

権限については別のAdvent Calendarで書こうかと思います。

足りないと思う点

セキュリティ系

  • ダッシュボード別、クエリ別の権限設定

表示系

  • レポーティング

    • ダッシュボードをPDFにして出したい
    • ダッシュボードの内容を定期的にメールで送信
  • もう少し高度な可視化

    • バブルチャートやツリーマップなど

その他

  • ドキュメントに書いていない裏機能みたいなものが数多く存在し、コードを読まないとわからない。

    • 仕様変更が激しいため、使っていた機能急に別の場所に移動されたりする
  • 依存モジュールが多くて、Ubuntu以外のOSで構築するのがきつい

発生した問題

  • クエリの数が増えすぎており、適切なスケジューリングがされていないとクエリが詰まる。

    • Worker数を設定できるのでスケールアップで回避可能
    • 350クエリ程度ならAWSのm3.medium程度でも特に問題はない
    • Prestoなど数分かかるクエリを実行する場合はスケジュールをうまく調節すること
  • StableではないVersionにアップデートすると大抵バグが見つかります^^

    • ただ、自分は許容できるようなバグが多いです
この投稿は re:dash Advent Calendar 20153日目の記事です。