booklista tech blog

booklista のエンジニアリングに関する情報を公開しています。

Metabaseを使用したデータ民主化に取り組んでいる話

アイキャッチ

自己紹介

はじめまして。デジタルマーケティング部データ分析チームのYZrです。主にデータ分析・活用を業務としています。今回はbooklistaで全社的に実施しているデータ民主化について記していきます。

データ民主化とは

本題に入る前に、データ民主化についてご説明します。 その時々で意味合いが変わることもあるかと思いますが、ここでは「全社員が電子書籍ストアのデータを抽出し、データを基に意思決定する土壌を作って行くこと」を意味します。

まずは、データを見る・使うことが当たり前という状態になることを目指し、更には、業務のために必要なデータの内容や欲しいデータの取得方法まで議論できる組織にしたいと考えています。

取り組みの背景

なぜデータ民主化を実施するかというと、端的に言えばもとのデータ分析フローではできることに限界があったからです。

データ民主化前

まず、データ民主化前のデータ分析フローを簡単に示した図がこちらです。

施策担当者が分析したいと思ってからデータ分析チームに分析依頼を出し、データ分析チームが優先度の高い物から分析に着手し、結果が出たものを施策担当者に受け渡すといった形です。 このデータ分析フローでは以下のような問題が生じてしまいます。

  • 意思決定に時間を要する

    • 施策担当者から別のチームに依頼し、ドメイン知識が必要な分析内容である場合は施策担当者からデータ分析チームに細かな説明をする必要がある
    • 分析チームのマンパワーに依存するため順番待ちの時間が生じる場合がある。または対応不可能な場合がある
  • データ活用、知見を得る機会の損失

    • 軽易なデータ抽出も依頼を出さなければならず、データ活用がしづらい
    • データを閲覧する機会を得づらく、知見を得る機会が減少する

このような環境ではデータが溜まっていても活用される機会が減ってしまいます。

データ民主化後

データ民主化が実現して施策担当者もデータ抽出・集計・分析ができるようになるとどうでしょうか。 データ民主化後のデータ分析フローを簡単に示した図がこちらです。

基本的には施策担当者が自らの手で分析をするようになり、煩雑なデータ分析をデータ分析チームが引き受けます。施策担当者が動かすので「分析したい」という意思ではなく「分析しよう」という意志に変わることや、データを見ることの習慣づけにも繋がると期待できます。他にも以下のようなメリットが考えられます。

  • 意思決定の高速化

    • 施策担当者がユーザ行動・購買履歴などのデータを適切に引き出し、それらを用いて速やかな仮説検証や効果検証を実施できる
    • 分析チームのマンパワーに依存しない
  • 意思決定の高精度化

    • 施策担当者が分析することで、データ分析チームでは思いつかない切り口でも分析ができ意思決定の精度を高めることできる
  • データ活用・知見拡充

    • ストアデータを活用することで顧客が求めていることを知ることができる
    • 顧客体験をより良いものするアイデアを生み出すことができる

データ民主化をする上での課題と解決手段

では、データ民主化をどのように実現していけばよいでしょうか。データ分析チームと同じ手段で施策担当者がデータ分析をするとなると、大きく3つの課題が浮かび上がります。

  1. SQL記法の学習
  2. データベースの構造や処理の理解
  3. ストアデータのテーブル構造やリレーションの理解

1.に関しては、学習コストが高過ぎるので可能であれば避けたいところです。 2.3.に関しては、テーブルやスキーマといった言葉の意味や結合の仕方、良く使うテーブルの構造に内容を絞れば実現できそうです。

SQL記法を学ばない、つまりSQLを書かずにデータ分析をする方法といえば真っ先にBIツールが思い浮かびます。社内で使用しているデータベースの種類や金額面、操作の分かりやすさなどから今回はMetabaseを導入することにしました。

学ばなければならない部分はデータ分析チームが資料を作り、簡単な分析をしながら学べる講座を開くことで対応することにしました。

Metabaseについて

MetabaseはオープンソースのBIツールです。SQLを書かずにWeb画面上でデータを抽出・集計しグラフを作成できます。また、集計結果やグラフをまとめてひとつのダッシュボードとして表示する機能もあります。閲覧権限の設定もできるので、ユーザーによって見せたくないデータがある場合にも対応できます。

Metabase自体はデータを持たず接続したデータベースを参照するつくりになっています。メジャーなデータベースにはだいたい対応しているので、とても使い勝手が良いです。対応しているデータベースの詳細は公式サイトをご確認ください。

ダッシュボードの例がこちらです。

Metabaseでのデータの抽出方法は「簡単な質問」「カスタム質問」「ネイティブクエリ」の3種類があります。画像の左から右に向かって難易度が上がります。

簡単な質問

名前の通り、この機能は最も操作が簡単で表示できるデータもシンプルです。データベースとテーブルを選択するとテーブルの中身を表示します。

カスタム質問

GUIベースでテーブルの結合、グループ化、フィルタ、ソート、行数制限などができる機能です。 データ民主化ではこのカスタム質問を使ったデータ抽出と集計ができるようになることを目指します。 ほとんどの項目はプルダウン表示の選択肢をクリックするだけで指定可能です。カスタム質問で設定した内容をMetabase側が自動的にSQLへ変換し、データの取得と表示が行われます。SQLの変換は接続するデータベースの種類に合わせて行われますので、カスタム質問の設定の仕方をデータベースによって変化させる必要はありません。

ネイティブクエリ

SQLを直接書くことができます。SQLを書ける人はこの機能を使っても良いと思います。

取り組み内容

データ分析チームが行っていることは「Metabase環境の整備」と「Metabaseを使った分析の普及活動」です。

Metabase環境の整備

Metabaseの運用管理はデータ分析チームで行っています。Metabaseを動かすためのサーバーを立てるところから、サーバー自体の管理、Metabaseの設定やユーザー管理などを含みます。システム上の問題が生じたときにもデータ分析チームが対応します。 構成を簡単に示した図がこちらです。

また、MetabaseがフリーズしたときなどMetabase用サーバーを再起動したいときに、施策担当者が簡単に再起動をかけられる仕組みも構築しました。Slackで指定のアカウント(metabase再起動くん)にメンションを飛ばすだけで再起動がかかります。 データ分析チームに連絡をして再起動を依頼していたらデータ分析チームが対応するまで作業が止まってしまいますし、煩わしさで使わなくなってしまう可能性もあります。少しでも使いづらさを感じないような工夫をしています。

Metabaseを使った分析の普及活動

Metabaseを使ったデータ分析を社内に根付かせるための普及活動をデータ分析チームで行っています。

  • テーブル定義表の作成

    データベースのよく使うテーブルについて、物理名・論理名だけではなくデータが作られるタイミングや値の説明を記述したテーブル定義表を作成しました。

  • レシピ集の作成

    データベースのに関する基礎知識やカスタム質問の操作方法(テーブル選択、結合、フィルター etc.)などの基礎的な内容と、実務で使うことを想定したカスタム質問の実用的な内容のレシピ集を作成しました。レシピ集では使うテーブルや設定する項目の手順を記述し、基礎編は操作手順を録画した動画を、実用編ではカスタムクエリを設定した画像を添付し視覚的にも分かりやすい作りにしています。

    目次(基礎編)

    データベースの基礎知識

    基礎操作レシピ

    実用レシピ

  • Metabaseの使い方講座

    レシピ集を作るだけでなく、オンラインでMetabaseの使い方やレシピ集の応用方法を説明する講座を、月に1~2回程のペースで実施しています。講座の内容は録画をして残し、講座の時間に都合がつかなかった人や新入社員にも見られるようにしています。

  • 質問を受けるSlackチャンネルの開設

    ストアデータやMetabaseの使い方に関していつでも質問できるSlackのオープンチャンネルを開設しました。オープンチャンネルなので他の人が過去に質問した内容から学びを得ることもできます。

データ民主化を始めて気づいたこと

  • サーバーを落としても問題がない環境と、再起動の簡単さが大事

    結合やフィルターの設定に慣れていないと膨大な量のデータを取得するクエリを実行してしまい、サーバーが落ちることは良くあります。サーバーが落ちることを恐れてMetabaseの使用に抵抗が出てしまっては意味が無いので、サーバーが落ちても問題がない環境を作り、落ちても問題がないことを伝え、簡単に再起動が出来る手順が確立されていることが大事だと感じます。実際に、上述のmetabase再起動くんはたびたび使われています。

  • レシピ集だけでは実務への応用が難しい

    レシピの手順に少し手を加えた程度では取得できないデータについて質問されることや、「もっと実践的な内容をやってほしい」と言われることが何度もありました。これらに対して、講座の中で説明する応用方法の難易度を上げて複雑なカスタムクエリの使い方を実演する、よく質問を受ける内容をレシピ集に追加する、講座で扱う内容を施策担当者から募集する、などの対応をしています。暫定的な対応となっているので、Metabaseを使ったからこそ出てくる疑問や要望を取りこぼさず講座内容に反映していける仕組みを作ることは今後の課題です。

さいごに

データ民主化を始めるまではレシピ集の作成や講座内容の作成など大変な部分もありましたが、Metabaseを使った分析をしている人が少しずつ増えてきている実感もあります。 データ民主化の活動を継続していき、データを最大限に活かせる組織となることを目指していきます。

このブログが少しでも読んでくださった方の参考になれば幸いです。