見出し画像

[データ分析基盤構築記 ~BI・ダッシュボード編~] 『Apache Superset』で社内データを可視化してみた

はじめに

株式会社PREVENT、データエンジニアの俵です!
前回は弊社DWH『よろずや』についてご紹介しました。

今回は『よろずや』と社内のデータ利用者を繋ぐ可視化(ダッシュボード)ツール、『Apache Superset(以下Superset)』とその活用事例を紹介します。
Supersetの使用感や活用事例を記した日本語の記事は少ないため、導入を検討している方の参考になれば幸いです。

データの可視化とダッシュボード構築

ETL基盤とDWH『よろずや』ができたことによって、社内のデータが1箇所に集まり利用可能な状態となりました。
次はこれらのデータを社内に展開し活用する段階ですが、まずはデータの可視化と併せて既存のダッシュボードのリプレイスを行いました。

データを可視化するメリットは色々あります。
データの利用側としては、現在の状況を定量的に把握することで将来に対する予測を立てたり、またそれを他者と共有することで同じ認識を持てることにあります。
データの管理側としては、異常なデータの検出に可視化は非常に有効な手段となります。

既存のダッシュボードはLooker Studio(旧Googelデータポータル)で作られており、データセットの作成(ETL処理)は内製ツールを用いていました。
内製のETLツールであるが故、データセットの追加・変更時の運用負荷が高く、ダッシュボードの保守に手が回りづらい状況となっていました。

ダッシュボードのリプレイスについては、データソースのみをよろずやに切り替え、ダッシュボード自体はLooker Studioを使い続ける方法も考えましたが、機能面でやや課題に感じる点もあり、OSSを中心に比較的ユーザー数の多いダッシュボードツールの比較・検討を行いました。
その結果、その豊富な機能や直感的な操作、モダンなUIが決め手となり、Supersetを導入しました。

2022/3時点での比較結果

Apache Superset

Apache SupersetはAirbnb社が開発したOSSのダッシュボードツールであり、現在Apacheプロジェクトとして非常に活発な開発が続けられています。
高速で軽量かつ直感的な操作を売りにしており、豊富なデータベースコネクタや可視化機能を備えています。

チャート作成画面
カラムをドラッグ&ドロップすることで直感的なチャート作成が可能
データ利用者・Superset・よろずやの関係
Supersetはよろずやの可視化インターフェースに位置付けられる

以下Supersetの特徴や弊社における活用事例をいくつか紹介します。

豊富な可視化機能

Supersetの特徴はまずなんといってもその豊富な可視化機能にあります。
棒グラフや折線グラフ、円グラフはもちろんのこと、テーブルやレーダーチャート、ボックスプロット、ヒートマップ、ツリーマップといった多種多様な可視化(チャート)を作成することができます。
そして作成したこれらのチャートはドラッグ&ドロップを用いてダッシュボード内に自由自在に配置することができます。

ダッシュボード画面

高度なユーザー・ロール管理機能

高度なユーザー・ロール管理機能を備えていることもSupersetの特徴の1つです。
ユーザー毎に複数のロールを設定し、ロール毎に権限を非常に細かく設定することができます。
これらの機能を用いることで人や部署毎に閲覧可能なダッシュボードを制限することができます。

ロール閲覧画面(画像はデフォルトのGammaロール)

また、行単位のアクセス制限に対応しており、ロール毎に閲覧可能なデータを行単位で制限することができます。

さらにOauth2にも対応しており、弊社ではSupersetのユーザーを社内Googleアカウントと紐付けることでユーザー管理工数の削減に寄与しています。

DBクライアント機能

SupersetのSQL LabはDBクライアントとして基本的な機能(クエリの保管や保存、データのCSV出力等)を備えています。
こちらは元々の要件には無かったものですが、思わぬところでMVP級の活躍を見せました。
それは社内で開催したSQL勉強会とその後のデータ利活用です(勉強会の模様は後日別記事でご紹介します)。

SQL Labのエディタ画面
非常にシンプルで使いやすい

社内の非分析部署メンバーがデータ利用のためSQLを実行する際に最初の障壁となるのは、DBのユーザー作成やDBクライアントのインストール及びDBへの接続設定です。
SQL Labを用いることでこれらの作業が不要になり、非常にスムーズなデータ利用が可能となりました。
また、Supersetのロール管理機能を用いることでスキーマ毎のアクセス制限等を行うことができます。

Slack連携

Supersetはダッシュボードやチャートのスクリーンショットを指定時間に指定のSlackチャンネルに投稿するレポート機能を備えています。
こちらも当初の要件には無かったものですが、現在弊社ではKPI等数字の共有や意識向上を目的として、毎日定時に特定のダッシュボードのスクリーンショットをSlackチャンネルに投稿しています。

Slackチャンネルにダッシュボードを定期投稿

コンテナ実行

Supersetは複数のDockerコンテナ上で動作し、その起動については公式のdocker-compose.ymlが存在するため、非常に簡単に起動や停止を行うことができます(ハマりポイントがいくつかありますが)。
弊社ではAmazon EC2のインスタンスにDockerをインストールし、そこでSupersetを起動しています。
また、夜間及び休日はダッシュボードの利用者がいないため、平日の日中帯以外はEC2を停止することで経費削減を行なっています。

監査ログの可視化

Supersetはユーザーが操作したログ(監査ログ)を自身のDBに保存します。
従って、これをデータセットとすることで監査ログの可視化が行えます。Supersetが出力した監査ログを入力として可視化するというのは不思議な感じがしますが、ダッシュボードの監査ログの可視化は重要であると言われています。

ダッシュボード別アクセス数
人気・不人気ダッシュボードが一目瞭然

監査ログとは本来、いつ・誰が・何をしたかを記録するものであり、不正アクセスなどを監査する資料として使用します。
しかし、ダッシュボードにおける監査ログの目的はどちらかといえば、ほとんど見られていないゴーストダッシュボードを特定し、その改善や削除を行うことにあります。

作成したダッシュボードが徐々に見られなくなり、ついには一切見られなくなってしまうということはあるあるです。
その理由は様々かもしれませんが、見たい指標が時間と共に変化しているにも拘らず、ダッシュボードがそれに追従できていないケースがあります。
監査ログを可視化することでこうした兆候を捉え、ダッシュボードが完全に見られなくなってしまう前にヒアリングや改善を行うことができます。

また、見られなくなったダッシュボードに対して改善の余地が無いまたは不要な場合は思い切って削除することも大切です。
削除は不可逆的な操作なので躊躇してしまいますが、長い間誰にも見られていないダッシュボードが今後見られることはまずありません。
割れ窓理論という有名な言葉がありますが、これはダッシュボードの世界にも適用されます。
いかにダッシュボードのゴーストタウン化を防ぎ、綺麗な状態を保ち続けられるかが今後の課題です。

まとめ

ダッシュボードツール『Apache Superset』と弊社における活用事例を紹介しました。
SupersetはOSSなので、紹介した豊富な機能は全て無料で利用できます。
これは本当に驚異的といえますし、スモールスタートでダッシュボードを構築する際の強力な選択肢となるのではないでしょうか。
この記事がSuperset導入のきっかけとなれば幸いです。

弊社ではSupersetを導入して約1年が経過しました。
ダッシュボード総数は20を超え、利用者総数は全社員の半数以上となる50名を超えました。
この過程で秘伝のタレの如く属人化していたスプレッドシートはダッシュボードに移行し、また新たなデータ利活用が進むなど、データインフォームドな組織実現に向けた機運がぐっと高まったように感じます。
今後も、使ってもらえるダッシュボードを意識しながらSupersetと上手に付き合っていきたいと思います。

おわりに

本記事はいかがだったでしょうか!
Supersetの紹介要素強めでしたが、決して回し者ではございません(笑)

ツールはもちろん大事ですが、所詮はツール(手段)です。
真の目的はこれを実際いかに活用し、ビジネスとして価値を創出できるかということ。
今後はそのための取り組みについても発信していきたいと思います!

[データ分析基盤構築機 ~データカタログ編~] に続く