社内にRedashを導入するまで

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは!DBAを目指しているエンジニアの高嶋(@__1016t)です。
当社でダッシュボードツールである「Redash」を導入するときに課題となったこと、
それをどのように解決したのかを書きたいと思います。

Redash導入の背景と目的

ウエディングパークでは施策を考えたり、効果検証をするときのデータを
都度SQLを書いて抽出しています。

データの抽出はエンジニアが行うことになっているので、
ディレクターに必要な項目、抽出する条件をまとめて依頼をしてもらい、
担当エンジニアがヒアリングしながらSQLを書いています。

この運用でずっとやってきたのですが、施策や人が増えていく中で
以下のような課題が出てきました。

・たくさんの依頼によるエンジニアの工数圧迫
・工数を圧迫する懸念から、ディレクターが依頼をする心理的ハードルが高い
・ディレクターがほしいとおもったタイミングでデータを見ることができない

これらの課題を解決するため、Redashの導入が決まりました。

導入にあたってSuperset と Redashを比較した記事もあるので、ぜひご覧ください!
Redash と Superset を比較検証してみた

導入の課題

データベースには機密情報も含まれているため、
閲覧・編集権限を適切に割り当てる必要がありました。
ですが、Redashは画面から設定できる権限が少ないことが課題になり、
どうすれば適切に権限を付与できるのかとても悩みました。

解決方法

まず、エンジニア、ディレクターの役割をそれぞれ整理し、
エンジニアがSQLの作成・編集、ディレクターが抽出したデータを閲覧するため、
それぞれ以下のような権限をつけて管理しようと考えました。

エンジニア

  • クエリ、ダッシュボードを新規作成・編集することができる

ディレクター

  • ダッシュボードで抽出したデータをみることができる
  • クエリを作成・編集できないようにする

そこで、画面から設定できる「data source permission」と
コマンドで設定する「action permission」をつかって上記の権限を実現させました。

設定手順

1. エンジニア、ディレクター の グループ を作成

2. 開発環境、本番環境の データソース を登録

3. data source permission を設定

設定からグループ・データソースごとに権限を設定することができます。

抽出したデータを見るだけのディレクターははじめ View Only にしたところ、
動的なSQL(日付の条件などを自由入力)を実行できなくなってしまったため、
エンジニア、ディレクターどちらにも Full Access の権限を与えました。

4. action permission を設定

コマンドでグループごとに細かい権限を設定することができます。

たたくコマンドは以下の記事を参考にさせていただき、設定しました!
Re:dashの権限設定について

▼ エンジニア

▼ ディレクター

※ 動的なSQL(日付の条件などを自由入力)を実行できるようにするため、ディレクターにも
 execute_query をつけていますが、edit_query がないためSQLの編集はできません

導入してよかったこと

定期的に実行したり、条件の日付を変えるだけの依頼を都度対応する必要がないので、
エンジニアの工数の削減につながりました。
それ以外にも、
・ディレクターが一度抽出したデータを自由に見れるようになった
・同じような依頼があったときに、以前の抽出内容を見つけやすい
・クエリを動的にしたり、Redashの機能を積極的につかってくれるメンバーがいる
などなど嬉しいことがたくさんありました!

現在は、クエリの実行結果がそのままダッシュボードにのっている状態なので、
今後はグラフ化などRedashならではの+αな価値を出していきたいと思っています。

おわりに

Redashを導入するときに、今までの運用での役割をどう実現したのかについて書かせていただきました。適切な権限設定などまだ模索中なところもありますが、たくさんのメリットがあり導入してよかったと思っています。
これから導入を検討している方への第一歩になれたらとてもうれしいです。

Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽にオフィスに遊びにお越しください!
株式会社ウエディングパークwantedly

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。