開発・運用改善に活かすデータ分析の取り組み〜Metabaseでデータ分析を簡単に〜

こんにちは。ConfitのPMをやってます、あらきです。

システム開発グループでは、プロダクトマネージャーとサービスマネージャーが中心となってプロダクトのデータ分析を進めています。先日、2021年度上半期のデータ分析活動の振り返りをしたのですが、最近導入したMetabaseというツールによって非常にデータ分析がやりやすくなったな、と感じました。

今回はこのMetabseというツールの紹介と、アトラスでの活用例についてお話しします。

Metabaseとは

Metabaseは「社内のすべての人が簡単にデータから学びを得られる」というコンセプトで作られたオープンソースのデータ可視化ツールです。ブラウザからアクセスできるのでデータ解析した結果を会社全体で簡単に共有できます。

また、SQLが書けない人でも、下のようなMetabaseのエディターを使えば簡単にデータの絞り込みや集約ができるようになっています。

Metabaseのクエリ作成画面

以前からオープンソースのデータ可視化ツールの導入は検討していたのですが

  • データソースにDBとGoogle Analytics両方使える点
  • 環境構築と運用が容易である点

が決め手となり、Metabaseを使うことになりました。

基本的な使い方としては、データを取得するクエリを作ってビジュアライズし、ダッシュボードにまとめる、という流れになります。

①クエリを書いて実行し、ビジュアライズの方法を選択してクエリを保存します。

Metabaseのクエリ入力画面

テーブル名などは社外秘のため、クエリの内容は伏字にしています

②保存したクエリをダッシュボードにまとめます。キャプチャは、最近リリースした発表データ収集公開機能に関するデータをまとめたダッシュボードです。

見た目が綺麗なので、ダッシュボードを作っているだけで楽しくなってきます。

Metabase環境の構築・運用

Metabase環境の構築

Metabase環境の構築にあたっては、Amazon ECSサービスでDockerベースのサーバを構築し、その上にMetabaseを稼働させる、というやり方をとりました。サーバは本番環境のDBと同じVPC内に配置(VPC外におくと接続が少し面倒なので)、コンテナポートは3000を指定(Metabaseは3000番ポートを利用するため)しました。

公式ドキュメントにはElastic Beanstalkを使った構築方法が紹介されていますが、せっかくDockerイメージが用意されているので、それを活かすようにしました。Dockerイメージがあるおかげで、サーバを起動してdockerコマンド1行でインストール完了、と環境構築が容易な上にサーバ運用も楽になるので、この点もMetabaseを選ぶポイントとなりました。

Metabase環境の起動/停止

土日など使用しない時間帯にもサーバを起動したままにしておくと稼働料金がかかるため、Metabase環境は「使いたい時だけ起動、使い終わったら停止する」運用としました。非エンジニアも利用することを考えて、Slackから環境を起動できるようにしました。

詳細な手順はクラスメソッドさんの「SlackのワークフローでAWS Chatbotを動かして、EC2を開始&停止する仕組みを作ってみた」などにわかりやすくまとまっているのでこのブログでは割愛しますが、「Metabase環境を起動/停止するLambda関数を呼び出すAWS ChatbotコマンドをSlackワークフローで呼び出す」というやり方をしています。仕組みはややこしいですが、結果としてはSlackコンソール上でボタンをポチッと押すだけでMetabase環境を起動/停止できるようになります。

①SlackのショートカットからMetabse起動ボタンを押すと

Slackのコンソール

②自動起動します。起動するとMetabaseのURLも案内してくれ、非エンジニアにもわかりやすい仕組みになっています。

SlackにMetabaseのURLが通知されている画像

Metabaseの活用

利用統計レポートへの活用

このMetabaseを真っ先に活用したのが、お客様に提供している利用統計レポートのデータ出力作業でした。

Confitをご利用いただいているお客様には会期終了後に利用統計レポートというものを提供していますが、一部のレポートはDBからデータを抽出しています。

例えば、Confitには講演に対して質問したり感想をコメントできる「講演コメント」機能というものがあります。昨今のオンライン大会の広がりの中で急激に利用が増えた機能の一つで、このコメントをExcelに一覧出力したものを利用統計レポートとして昨年から提供しています。

以前はデータ抽出の度に導入コンサルがエンジニアに作業依頼をしなくてはならないうえ、「サーバにログインしてSQLを実行し、csvで出力したものをExcelに貼り付ける」という作業を毎回実施しなくてはならず、全体に作業の手間が多かったです。手数が多いと作業ミスが発生するリスクも高くなるので、作業後のデータチェックにも時間がかかっていました。

Metabase導入後は導入コンサル自身がブラウザからExcelベースですぐにデータを取得できるようになり、作業がとてもシンプルになりました。

下のキャプチャは実際にデータ出力に使っている画面です。任意の大会コードを入力すると自動でコメント一覧が表示され、右下のメニューからExcelで出力できます。

Metabaseの一覧出力画面

プロダクトのデータ分析への活用

このブログの始めにMetabaseのダッシュボードを掲載しましたが、最近開発した発表データ収集公開機能のデータ分析にもこのMetabaseを活用しています。

この機能は「学術大会の会期当日まで発表動画やe-posterの差し替えができる」ことを強みの一つとしているのですが、実際のところ、会期ギリギリまで差し替えをする人がどれくらいいるのかは、使ってもらって発表者の動きを分析してみないと、なんともいえないところがありました。そこで機能リリースの当初からMetabaseに「発表者はどのタイミングで提出/差し替えをしているのか」を解析するためのクエリを保存しておき、大会ごとにすぐデータを抽出できるよう準備しておきました。

いくつかの大会で使っていただいた結果、やはり会期直前〜当日まで差し替えをする人が多い(さらにデータを見ると特定の時間に提出が集中しているような動きもみられました)ことがわかったので、営業メンバーにも早速データ解析結果を共有し、下のように営業用の提案資料にも活用してもらいました。

Metabase導入前は、SQLをどこかにメモして、必要になったら都度サーバでSQL実行してデータを抽出・・・という手順を踏んでデータ分析をしていたので、SQLの管理も煩雑で、データを抽出して営業メンバーと共有するのにも時間がかかっていました。

ちょっとした差なのですが、「必要になったらすぐにデータを取り出して会社全体で共有できる」環境が整ったことで、高速にデータ分析をして事業に生かせるようになったと感じています。

さいごに

今年はこのMetabaseを導入したことで、DBのデータを元にしたデータ解析がぐっと簡単になりました。

今回はMetabaseの紹介を中心としたお話になりましたが、今後はデータ分析した結果に焦点を当てたブログをプロダクトマネージャー、サービスマネージャーの面々が少しずつ紹介していく予定です。どうぞご期待ください。