Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

メルカリのデータサイエンスチームと分析エコシステムのはなし

この記事について

メルカリでプロダクトの分析全般を担当している @hikaruです。 日々、メルカリのプロダクト改善のPDCAを定量分析の面からサポートしております。

この記事ではそんなメルカリの分析を支える、分析環境について書いてみたいと思います。

分析チームについて

チームの役割

メルカリの分析チームは、プロダクトの改善とサービス全体の成長のために、定量分析の面から全社をサポートする役割を担っています。

その業務範囲は多岐に渡りますが、ユーザ行動の分析、傾向の把握 A/Bテストの設計と評価 サービスのKPI設計 ダッシュボードの設計・実装などが現状ではメインの仕事になっています。

mercan.mercari.com

チームの構成

メルカリにはJP(日本)、US、UKの3カ国のプロダクト展開が有り、それぞれの国にデータアナリストが数名ずついます。
もちろん、日本にいながらUS/UKの分析をするなど、国をまたいだ分析も数多くありますし、日本のメンバーもUSに出張したりということも頻繁にあり、メルカリならではのグローバルな環境を味わうことが出来ます。

メルカリの分析環境

メルカリでは分析のためにさまざまなツールを使っていますが、最もよく使うツールのひとつにGoogle BigQueryがあります。
分析チーム内では、社内の分析の中心的存在となっているこのGoogle BigQueryを活かすため、Googleの分析エコシステムの活用に色々とチャレンジしています。

今日はそれらのツール群とメルカリでの使い方について簡単に紹介したいと思います。

メルカリではBigQueryをはじめとして、下記のようなGoogle社の分析ツールを使用(試用)しています。
Google社のツールということで、どれも分析の中心となるGoogle BigQueryとの連携に非常に優れています。

ツール 主な用途
BigQuery データの集計
Spreadsheet データの最終的な集計、分析結果の図示 、共有
App Script クエリの定期自動実行、Slackへの自動投稿
Cloud Datalab 機械学習(Python)、高度なビジュアライズ(Python)
Data Studio 簡易ダッシュボード

※各プロダクト名の頭の"Google"は省略しています
※もちろん実際にはGoogle社のツール以外にも様々な分析用プロダクトが使われています

各ツールの詳細についてはWeb上の良質な情報がたくさんあるので、説明はそちらに譲るとして、ここではそれぞれの簡単な特徴とメルカリでの活用の仕方について主に述べていきます。

◆ 1.BigQuery

“弊社分析の中核的存在”

利用シーンデータの集計

どんなツールか

https://wwwstatic.lookercdn.com/partners/google_bigquery_v0001.png

  • Google BigQuery
  • SQLの超速いやつ
  • どんな大きなデータでも、複雑なクエリでも、高速で結果を返してくれる頼れるアニキ

メルカリの分析での使い方

速いは正義

メルカリは多くのユーザを抱えているため、そのログデータも非常に巨大です。
そのため、通常のSQLでは計算に時間がかかりすぎるということが多々発生します。

BigQueryは とにかく「高速」の一言。なのでトライアンドエラーのスピードを落とさず済むため、分析が捗ります。

なお、メルカリでは分析でよく使うデータを日付でパーティションしてテーブルとして保持しているため、日付の指定を工夫すれば大抵の集計は数秒程度で済むことがほとんどです。

速い = PDCAが沢山回せる 。速いは正義なのです

利用シーンは大まかに2種類

  • 1.外部からの呼び出し
    • 外部のダッシュボードツールからクエリ発行 ⇢ 返り値をダッシュボードに格納、グラフ化
    • GAS(Google App Script)で登録したクエリを定期実行 ⇢ Spreadsheet上の値を自動更新(後述)
    • など
  • 2.コンソールからの直書き
    • 簡単な集計
    • 問い合わせの結果はSpreadsheetに落として、社内で共有(後述)

2の用途では、プロデューサーなどもガンガンぶん回してます。
メルカリでは非アナリスト職でもSQLを書いて、簡易な分析は自分で出来る人が多いですね。

最近は財務部、経理部、法務部、デザイナーまで勉強中という噂もあります。(事実です)

最近の社内トレンド

  • Standard SQL
    • Standard SQL という新しいSQLの記法がプチ流行中(?)
    • サブクエリをモジュール化出来るため、より可読性の高い書き方が期待できる
    • StandardSQLのSyntaxの例はこちらで確認できる
/* StandardSQLの記法の一例 */

WITH groceries AS
  (SELECT 
       "milk" AS dairy,  "eggs" AS protein,  "bread" AS grain)

SELECT g.* FROM groceries AS g;

+-------+---------+-------+
| dairy | protein | grain |
+-------+---------+-------+
| milk  | eggs    | bread |
+-------+---------+-------+

◆ 2. Spreadsheet + 3. Google App Script

”小回りの聞く便利ツール”

利用シーンデータの集計 図示 定期更新 自動投稿

どんなツールか

だいたい皆さん知ってると思うのでここは割愛します。

メルカリの分析での使い方

Spreadsheet

  • BigQueryから直接データを落として、最終的な集計・グラフ化
  • Excel形式は慣れてる人が多いので、非エンジニア系との共有が捗る
  • メルカリでは、分析のレポーティングという概念が殆ど無い。
    • レポート的な体裁を整えたり、わざわざ報告のMTGを開催したり、などで時間を使ったりしない
    • 簡単な分析であればSpreadsheetで結果を出してURLを展開して終わり

Google App Script

  • 登録したクエリを自動実行して、データを日次などで更新
  • A/Bテストなど、日々進捗を追いたいものは最近 Google App Script + Spreadsheet での更新運用を試してます
    • 専用の別のダッシュボードツールでもA/Bテストの結果を見られるようにしてはいますが…
    • Spreadsheetの利便性が勝るシーンも多い(統計量検定などの複雑な計算とか、色つけたり、もろもろ)

最近の社内トレンド

  • SpeadsheetのMotion Chartが気になる
  • Spreadsheet & Google App Script & Slackの連携がアツい
    • 1日1回、特定のクエリを定期実行 ⇢ Spreadsheetに結果をインサートしてグラフ化 ⇢ Slackにグラフを自動投稿
    • 自動的に重要なKPIをチームに共有可能!

具体的な方法は、@yamotty(メルカリ子会社、Souzohのプロデューサー)の下記のエントリに詳しい

blog.yamotty.com

◆ 4. Cloud Datalab

”Pythonista希望の星”

利用シーンPythonが使いたい時機械学習 複雑な加工 高度なビジュアライゼーション

どんなツールか

https://datalab.cloud.google.com/brand.png

  • Google Cloud Datalab
  • PythonとBigQuery SQLを同時に扱えるIDE(というかいわゆる「Notebook」)
  • JupyterをベースにしているのでPython使いには馴染みある人も多い

拙書ながら私が書いたQiitaにそれなりに情報がまとめてあります
qiita.com

Cloud DatalabのNotebookドキュメントの例:公式のGithubより

github.com

メルカリの分析での使い方

  • SQLでは困難な複雑処理を行うときに重宝する
  • BigQueryでデータを集計 ⇢ Pythonオブジェクトに格納 ⇢ Pythonで加工・整形
    • Scikit-Learn などで機械学習にかける
    • Seabornなどで複雑なグラフ化などを自動で行う
  • また、機械学習の結果(ユーザごとのラベルなど)をBigQuery上のテーブルとしてインサートすることも出来る

mercan.mercari.com

最近の社内トレンド

◆ 5. Data Studio

”これからが楽しみなポテンシャル枠”

利用シーン簡易ダッシュボード

どんなツールか

http://www.michael-sinner.de/wp-content/uploads/2016/10/google_datastudio-logo.jpg

  • Google Data Studio
  • ざっくりいうと「データを直接チャート化出来るPowerPoint」 + 「Google Docsのクラウド型ドキュメント」
  • Google SpreadSheetやBigQueryのデータソースが直接使えてチャート化できる

拙書ながらこちらも私が書いたQiitaにそれなりに情報がまとめてあります qiita.com

ダッシュボードの例:公式ページより

https://goo.gl/kIK3GL

メルカリの分析での使い方

  • カジュアルなダッシュボードとして利用
    • DBだけでなく、Spreadsheetの情報も集約出来るのがメリット
    • 非エンジニアが手運用込みで管理している、DBに入っていない計数をダッシュボード化するのに重宝する(広告費とか)
    • 共有も簡単で、コメントなども書き込み可能なので、そのままレポートっぽくも出来る

最近の社内トレンド

  • 最近使い始めたばっかりですので色々と使い方を開拓していきたいところ

まとめ

  • メルカリでは分析の効率化のため、色々なツールを試行錯誤しています。
  • BigQueryは早いし便利。それに引っ張られる形でGoogleの色んな分析プロダクトも使いだしてますが、なかなかに快適です。
  • 社内では、非アナリスト・非エンジニア職との共有のしやすさなどに留意してます。数値はみんなに見られてなんぼ!

そして…
メルカリではデータ分析したい人はもちろん、その他にも色んな職種の人募集中です!

www.mercari.com

データ分析・機械学習に興味ある人向けにMeetupも開催しております! mercari.connpass.com