イノベーション エンジニアブログ


株式会社イノベーションのエンジニアたちの技術系ブログです。ITトレンド・List Finderの開発をベースに、業務外での技術研究などもブログとして発信していってます!


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

Metabaseで社内のKPIを可視化してみた

どうも、小柳津です。

最近、開発しているプロダクトの機能が増え、見たいKPIが増えてきました。
現在社内で活用しているKPIを可視化するダッシュボードがすでにあるのですが、自作したもので以下のようになっています。

metabase1.png

普通に可愛いくていい感じです。
KPIが調子いいと動物が笑顔になったりします。
こんなにいい感じのダッシュボードですが、見たいKPIを増やしたい場合はHTML/CSS周りの開発を行わなければなりません。
さらに最近マーケーターがいい感じにSQLを習得していっているので、開発者でなくとも気軽に可視化したKPIを追加できないかと思いました。

そこで今回はデータベースの内容を簡単に可視化できるMetabaseというものを使ってみました。

設定後の画面は以下のようになっています。

metabase2.png

オシャレでいい感じですね!
もとのダッシュボードに比べれば動物がいなくなって可愛さは失われましたが、SELECT文を追加するだけで簡単にKPIを可視化したパーツが増やせるツールなので、可愛さを失う以上のメリットはありそうです。

環境構築

それではMetabaseの環境構築を書いていきます。
今回は検証のために開発環境内にMetabaseを立ち上げていきます。

弊社では開発環境をDockerで構築しています。
開発環境の中にMySQLコンテナがあるため、そのコンテナに接続をして、データの可視化がどのように行えるかを検証しました。

今回細かいDockerの説明は省いていきます。

MySQLイメージが内包されるdocker-compose.ymlに以下の記述を追記します。

  metabase:
    image         : metabase/metabase
    container_name: test-metabase #例
    hostname      : test-metabase #例
    ports:
    - 3000:3000

設定後 docker-compose upでMetabase・MySQLコンテナを立ち上げましょう

そしてhttp://localhost:3000にアクセスしましょう。以下の画面がでれば成功です。

metabase3.png

設定方法

開始のボタンをクリックすると設定画面になります。

まずアカウントの設定から始まります。

metabase4.png

アカウントの設定が終わると連携するDBを設定します。
今回はMySQLを選択し、DBにアクセスするための情報を入力します。
MySQL以外にもPostgresSQLやAmazon Redshift, MongoDB, SQLiteなど様々なDBが選択できます。

metabase5.png

接続設定にSSHトンネルやスキャン(=DBの更新タイミング)のタイミングなどが設定できます。
その後、匿名データを送信するか否かの質問に答えた後に以下のような画面になります。

metabase6.png

使い始めるのボタンをクリックすれば、設定完了です。

metabase7.png

ダッシュボードの作成

ダッシュボードは右上のプラスアイコンからクリックし、「新しいダッシュボード」を選択します。
そうすると、ダッシュボードの名前などを聞かれるので、入力しましょう。
コレクションですが、「個人のコレクション」か「分析」のどちらかを選ぶのですが、「分析」にすると他のユーザーとダッシュボードを共有できるようです。

metabase8.png
metabase9.png

作成をクリックすると空のダッシュボードが出来上がりました。

metabase10.png

次にダッシュボードに追加するパーツを作成しましょう。
右上の照会するボタンをクリックします。

metabase11.png

SELECT文を直接保存できるネイティブクエリを選択します。
そうすると以下なようなエディターページに遷移します。

metabase12.png

SELECT文を入力し更新をクリックすると実行結果が得られました。

metabase13.png

実行結果後どのように可視化するのを選ぶことができます。

metabase14.png

その後「保存」クリックすると名前や説明、どのコレクションに保存するかを聞かれます。
それらに回答し、再度保存をクリックします。
保存をするとダッシュボードに追加するかどうかを聞かれるので、追加してみましょう。
さきほど追加したダッシュボードを選択するとこのようなダッシュボード編集画面に遷移します。

metabase15.png

これでパーツをどの大きさにするかどこに配置をするか選択できます。
またパーツをどのよう表示するかを細かく設定もできます。

metabase16.png

パーツをどんどん追加していき、最終的にはこうなりました。

metabase2.png

とっても簡単です。

画面をいろいろ見ているとユーザーごとの権限設定や重要KPIをSlackに通知する機能など、様々な機能があるらしいので、いろいろ試してみたいですね。

ドキュメントが英語なのですが、とても充実していて画像が散りばめられているので、読めそうな雰囲気です。

まとめ

ダッシュボードもどんどん自分で簡単に追加できるので、今まで可視化できていなかったKPIを簡単に可視化できそうです。
SQLさえ分かれば、誰でも追加できるのも魅力ですね。

今回はこれで失礼します。