Upgrade to Pro — share decks privately, control downloads, hide ads and more …

monotaro_devsumi2020winter

 monotaro_devsumi2020winter

Youichi Fujimoto

February 13, 2020
Tweet

More Decks by Youichi Fujimoto

Other Decks in Technology

Transcript

  1. https://www.monotaro.com/ 2020.2.13 6 間接資材購買 – モノタロウ以前 人的コスト 時間がかかる 商品がほしい 複数・多種な

    営業に連絡 見積 価格交渉 発注  納期確定 納品 いくら?? いつ届くの!?
  2. https://www.monotaro.com/ 2020.2.13 11 例1:ユーザの業種で検索の表 示順を最適化する 検索最適化のほんの一例 例2:商品のマスタにない専門ワード、 業界用語も検索可能にする 医療系ユーザ 製造業ユーザ

    ・データ、アルゴリズムによって検索の顧客体験の最適化を行う ・しかし商品数は1800万SKUあるため、手動でのチューニングは不可能 ・それをエンジニアリングによって自動化・仕組化していくことが重要
  3. https://www.monotaro.com/ 2020.2.13 旧データ基盤(〜2017)の問題点 • データ保存場所が分散 → データ移動が大変 • オンプレデータ基盤のサーバスペックが足りない •

    分析に必要なデータが揃っていない データが集約されていて、スケールできて、使いやすく、 管理しやすく、コストも安いデータ基盤がほしい! 14
  4. https://www.monotaro.com/ 2020.2.13 15 扱えるデータ量 作成されたレポート数 SQL 業務利用者人数 10× 10× 5×

    ~ 100 テーブル 1000 テーブル~ ~ 30 レポート 300 レポート~ ~ 10 人 50 人~ ( IT エンジニア以外 ) データ基盤導入の成果
  5. https://www.monotaro.com/ 2020.2.13 1. 全ての必要なデータを1箇所に集約 2. CDC(Change Data Capture)による安定し たデータ連携 3.

    業務担当者(非エンジニア)によるSQLデータ 分析の浸透 16 データ基盤が活用されたポイント
  6. https://www.monotaro.com/ 2020.2.13 18 BigQuery Export Binlog Connector Raw Data DWH

    EC Site Application Data Source ETL DWH/DataMart Application Kinesis Lambda Cloud Dataproc BigQuery Compute Engine
  7. https://www.monotaro.com/ 2020.2.13 BigQueryの利用 • フルマネージド • シンプル • 圧倒的スケーラビリティ •

    GSuite 連携 (アカウントの準備とか不要) • Google Analytics 連携 (Google Marketing Platform) 19 BigQuery
  8. https://www.monotaro.com/ 2020.2.13 22 Cloud Pub/Sub 基幹システム, EC サイト MySQL Binlog

    Connector MySQL BigQuery Binlog Connector MySQL Binlog Connector Schematizer App Engine Processor Compute Engine Bookkeeper Compute Engine DDL DML Schema Schema Merge Job Schema Updates Row Data BinLog Connectorの仕組み
  9. https://www.monotaro.com/ 2020.2.13 • データ基盤に出来るだけリアルタイムに近いデータ利用の ニーズがあった。
 • 従来の方法(mysqldump や select 結果を同期)

    だと物理削除 に対応できないケースがある
 • 従来の方法だと差分更新できないケースがある
 ◦ 更新時間の値が信用できない
 ◦ 更新されたレコードを把握するためのクエリが負荷が高い
 23 BinLog Connectorを使った理由
  10. https://www.monotaro.com/ 2020.2.13 • もともと業務担当者にニーズがあった • 分析依頼を行なっているとスピードが遅い • 業務担当者が直接クエリを流せれば的確な分析 ができる •

    BiqQueryの場合、同時実行クエリの増加によ る遅延がおきづらいという利点もあった 25 なぜ非エンジニアにDB基盤を解放したか
  11. https://www.monotaro.com/ 2020.2.13 データ活用現状 27 ❏ マーケター ❏ マーチャンダイザー ❏ カスタマーサポート

    ❏ 物流 ❏ セールス (全ての部門で利用) レポート作 成 分析(SQL) データソースと して利用 業務アプリ ケーション 参照 or ダウンロード ❏全社的に利用 ❏全社的に利用 (ユーザ数は全社員の約 30%)
  12. https://www.monotaro.com/ 2020.2.13 IAM管理 • あらゆるデータを基盤上に持ってきたが秘匿データは適切な人にだ け見るようにする →マスキングとAuthorized View コスト管理  • あらゆる人にアドホックなクエリを許可している

     →ハイコストなクエリをリアルタイムで検知 • 全体の利用状況は把握できるようにしたい  →GCP Censusで利用状況を可視化/チェック 28 データ基盤運用での管理ポイント
  13. https://www.monotaro.com/ 2020.2.13 29 さらにECアプリケーションでの活用 EC App DWH  BigQuery Application(API) GKE

    Application  Cloud  Bigtable パーソナライズ化したデータをAPIを通してECのアプリ ケーションで利用可能にした データサイエンティス トがパーソナライズを 生成
  14. https://www.monotaro.com/ 2020.2.13 モノタロウ ECサイトの構成要素 33 • トップページ • 商品ページ •

    検索 • カート • マイページ • お気に入り • 商品レビュー etc. 在庫 商品 価格 注文 顧客 キャン ペーン レビュー 請求 出荷 問い合 わせ 倉庫 カート 納期
  15. https://www.monotaro.com/ 2020.2.13 ECサイトを取り巻く状況 34 セキュリティ • Chrome SameSite • Apple

    iTP2.1 システム関係 • 既存コードのリファクタリング • APIエンドポイント・リクエスト数増加 • リアルタイムマーケティング施策増 ファーストパーティーの データ活用 スケーラビリティとアジ リティの両立
  16. https://www.monotaro.com/ 2020.2.13 モノタロウのマーケティング 35 様々なデータを活用して • SEM/リスティング広告 • 業種別リコメンド •

    検索結果最適化 • キャンペーン・特価 • プッシュマーケティング などをリアルタイムに最適化していきたい Life Time Value
  17. https://www.monotaro.com/ 2020.2.13 36 現在のシステムの全体像 EC システム 基幹システム MySQL MySQL MySQL

    マーケティング システム BigQuery App Engine Cloud Bigtable Application Application Application Application Application Application Web API
  18. https://www.monotaro.com/ 2020.2.13 データ活用に適したアーキテクチャへ 37 • 非対称なマルチクラウド ◦ AWSにECサイト ◦ GCPにデータ基盤

    ◦ オンプレに基幹システム • ReadModel、更新頻度のばらつき • DBスキーマ • フロントエンド • マーケターのダッシュボード
  19. https://www.monotaro.com/ 2020.2.13 REST API化は進んだが問題も出てきた • エンドポイント増加 • コール数増加/依存の複雑化 • ロジックの属人化

    • DBのスケーラビリティ • 検索インデックスへの負荷集中 • データモデルのばらつき データ活用に適したアーキテクチャへ 38
  20. https://www.monotaro.com/ 2020.2.13 39 目指すシステムの全体像 Data Platform BigQuery Cloud Bigtable API

    Platform Kubernetes Engine API Gateway Real-Time Data Pipeline Cloud Pub/Sub Cloud Dataflow Cloud Bigtable Cloud Pub/Sub Applications Kubernetes Engine App Engine サブシステム群 EC アプリケーション Database Database CDC Application Application オーダーマネジメントシステム Database Database Connector Application 商品情報管理システム Database Database Connector Application マーケティングシステム Database Database Connector Application その他サブシステム Database Database Connector Application
  21. https://www.monotaro.com/ 2020.2.13 システムへのChange Data Captureの活用 43 データ基盤同様、MySQLのbinlogのイベントを使う サブシステム MySQL サブシステム

    MySQL サブシステム MySQL Table Table Table Cloud Bigtable Cloud Pub/Sub binlogを使ってテー ブルをそのままレ プリケート Microservice (詳細は”binlog stream”でggってみましょう)
  22. https://www.monotaro.com/ 2020.2.13 CDCによるデータパイプライン 44 サブシステム MySQL サブシステム MySQL サブシステム MySQL

    Cloud Pub/Sub Table Table Table Application 変更イベントごとに ビューを更新 KVS データ パイプライン Cloud Dataflow Cloud Spanner 様々なデータで イベントをEnrich 常に最新 のデータ Cloud Bigtable
  23. https://www.monotaro.com/ 2020.2.13 47 目指すシステムの全体像 Data Platform BigQuery Cloud Bigtable API

    Platform Kubernetes Engine API Gateway Real-Time Data Pipeline Cloud Pub/Sub Cloud Dataflow Cloud Bigtable Cloud Pub/Sub Applications Kubernetes Engine App Engine サブシステム群 EC アプリケーション Database Database CDC Application Application オーダーマネジメントシステム Database Database Connector Application 商品情報管理システム Database Database Connector Application マーケティングシステム Database Database Connector Application その他サブシステム Database Database Connector Application