こんにちは!DBAを目指しているエンジニアの高嶋(@__1016t)です。
当社でダッシュボードツールである「Redash」を導入するときに課題となったこと、
それをどのように解決したのかを書きたいと思います。
Redash導入の背景と目的
ウエディングパークでは施策を考えたり、効果検証をするときのデータを
都度SQLを書いて抽出しています。
データの抽出はエンジニアが行うことになっているので、
ディレクターに必要な項目、抽出する条件をまとめて依頼をしてもらい、
担当エンジニアがヒアリングしながらSQLを書いています。
この運用でずっとやってきたのですが、施策や人が増えていく中で
以下のような課題が出てきました。
・たくさんの依頼によるエンジニアの工数圧迫
・工数を圧迫する懸念から、ディレクターが依頼をする心理的ハードルが高い
・ディレクターがほしいとおもったタイミングでデータを見ることができない
これらの課題を解決するため、Redashの導入が決まりました。
導入にあたってSuperset と Redashを比較した記事もあるので、ぜひご覧ください!
Redash と Superset を比較検証してみた
導入の課題
データベースには機密情報も含まれているため、
閲覧・編集権限を適切に割り当てる必要がありました。
ですが、Redashは画面から設定できる権限が少ないことが課題になり、
どうすれば適切に権限を付与できるのかとても悩みました。
解決方法
まず、エンジニア、ディレクターの役割をそれぞれ整理し、
エンジニアがSQLの作成・編集、ディレクターが抽出したデータを閲覧するため、
それぞれ以下のような権限をつけて管理しようと考えました。
エンジニア
- クエリ、ダッシュボードを新規作成・編集することができる
ディレクター
- ダッシュボードで抽出したデータをみることができる
- クエリを作成・編集できないようにする
そこで、画面から設定できる「data source permission」と
コマンドで設定する「action permission」をつかって上記の権限を実現させました。
設定手順
1. エンジニア、ディレクター の グループ を作成
2. 開発環境、本番環境の データソース を登録
3. data source permission を設定
設定からグループ・データソースごとに権限を設定することができます。
Full Access : クエリ実行・データ閲覧可能 View Only : データ閲覧のみ可能
抽出したデータを見るだけのディレクターははじめ View Only
にしたところ、
動的なSQL(日付の条件などを自由入力)を実行できなくなってしまったため、
エンジニア、ディレクターどちらにも Full Access
の権限を与えました。
4. action permission を設定
コマンドでグループごとに細かい権限を設定することができます。
create_dashboard:ダッシュボード作成 create_query:SQL登録 edit_dashboard:ダッシュボード編集 edit_query:SQL編集 execute_query:SQL実行 list_alerts:アラート一覧閲覧 list_dashboards:ダッシュボード一覧閲覧 list_data_sources:接続DB一覧閲覧 list_users:ユーザー一覧閲覧 schedule_query:定期実行設定 view_query:SQL一覧閲覧 view_source:SQL文閲覧
たたくコマンドは以下の記事を参考にさせていただき、設定しました!
Re:dashの権限設定について
▼ エンジニア
create_dashboard, create_query, edit_dashboard, edit_query, view_query, view_source, execute_query, list_users, schedule_query, list_dashboards, list_alerts, list_data_sources
▼ ディレクター
view_query, list_dashboards, execute_query
※ 動的なSQL(日付の条件などを自由入力)を実行できるようにするため、ディレクターにも
execute_query
をつけていますが、edit_query
がないためSQLの編集はできません
導入してよかったこと
定期的に実行したり、条件の日付を変えるだけの依頼を都度対応する必要がないので、
エンジニアの工数の削減につながりました。
それ以外にも、
・ディレクターが一度抽出したデータを自由に見れるようになった
・同じような依頼があったときに、以前の抽出内容を見つけやすい
・クエリを動的にしたり、Redashの機能を積極的につかってくれるメンバーがいる
などなど嬉しいことがたくさんありました!
現在は、クエリの実行結果がそのままダッシュボードにのっている状態なので、
今後はグラフ化などRedashならではの+αな価値を出していきたいと思っています。
おわりに
Redashを導入するときに、今までの運用での役割をどう実現したのかについて書かせていただきました。適切な権限設定などまだ模索中なところもありますが、たくさんのメリットがあり導入してよかったと思っています。
これから導入を検討している方への第一歩になれたらとてもうれしいです。
Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽にオフィスに遊びにお越しください!
株式会社ウエディングパークwantedly