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

食べログのビッグデータ基盤を支える技術

yang_ming
January 01, 2021

 食べログのビッグデータ基盤を支える技術

yang_ming

January 01, 2021
Tweet

More Decks by yang_ming

Other Decks in Science

Transcript

  1. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 2 自己紹介 株式会社カカクコム

    楊 明 所属 株式会社カカクコム 食べログシステム本部 技術部 データサイエンスチーム 仕事 2021年株式会社カカクコムに入社。 食べログデータ分析基盤の構築&運用と担当。 データ活用のハードルを下げ、データドリブンの取り組み全体を加速。 ビッグデータ分析により、食べログ各部門のデータ活用事業の支援。 趣味 登山、ビリヤード
  2. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 5 目次 1.

    ビッグデータ分析基盤とは 2. 食べログのビッグデータ基盤の要件 3. 食べログのビッグデータ基盤の全体図 4. まとめ
  3. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 7 ビッグデータ分析と分散処理 データの量

    が爆発的に 増加 データ 人、プログラム 意思決定・利益向上 計算 CPU CPU 計算 結果 データ 計算 CPU CPU データ 計算 CPU CPU データ 計算 CPU CPU 昔からあるデータ分析 分散処理でビッグデータ分析 人、プログラム 計算 結果 意思決定・利益向上 コーディネーター 計算を分散 部分計算結果 小さいデータの計算は一つのコンピューターで可能 ビッグデータ分析は複数のコンピューターで分散処理が必要
  4. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 8 非構造化データの増加と機械学習 インターネットやスマートフォンの普及により、画像や音声データが増えてきました。

    これからは構造のない非構造データですので、分析するためには機械学習による処理が必要です。 非構造化データ 構造化データ ポジティブ・ ネガティブ判定 テキスト変換 画像分類 テキスト 音声 画像 “ゆったり美味しさを 味わうならここが良 いと思い、寿司とい えばここに来 ...” 寿司 ポジティブ
  5. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 9 ビッグデータ分析基盤の全体像 データ

    生成 データ 収集 データレイク データ アプリケーション データ ウェアハウス データ 可視化 アドホック分析 非構造化 データ 構造化 データ 構造化 データ 利益 向上 意思 決定 生成 収集 活用 蓄積
  6. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 11 食べログのビッグデータ基盤が目指すこと 食べログのあらゆるデータがビッグデータ基盤に集約されている。

    • データサイズが大きく、かつ、本数が多い。 • ログデータとスナップショットデータがあり、共に非常に巨大なデータを持っている。 • スナップショットデータは過去に遡って集計したいことが度々ある。 社内のあらゆる人がデータドリブンな意思決定をできるようにする。 • クエリの実行は様々な部署が行うため時間帯がよく重なる。そのような状況でも、待機するこ となく集計作業を実施したい。 • ITリテラシーが低い人でもデータ分析できるようにする。 データを活用した機械学習やAIプロダクトでビジネス事業に貢献する。 • 簡単にMLモデルを構築&デプロイできる環境を作れるようにする。 • 手軽に機械学習をアプリケーションに組み込むことが可能。
  7. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 13 食べログのビッグデータ基盤の全体図 Cloud

    データ活用 データ分析 データ蓄積 データ収集 Adobe Analytics On-premises MySQL Google Compute Engine Google Cloud Platform (GCP) DataLake Cloud Storage DWH BigQuery Cloud Composer Datamart BigQuery Tableau Vertex AI Salesforce データ可視化 営業支援 機械学習 AppsFlyer
  8. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 14 食べログのビッグデータ基盤の全体図(データレイク) Cloud

    データ活用 データ分析 データ蓄積 データ収集 Adobe Analytics On-premises MySQL Google Compute Engine Google Cloud Platform (GCP) DataLake Cloud Storage DWH BigQuery Cloud Composer Datamart BigQuery Tableau Vertex AI Salesforce データ可視化 営業支援 機械学習 AppsFlyer
  9. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 15 データレイク構成 Cloud

    データ蓄積 データ収集 Adobe Analytics On-premises MySQL Compute Engine Google Cloud Platform (GCP) Google Cloud Storage(以下GCS)を採用して、データレイクを構築 食べログを取り巻くあらゆるデータをデータレイクに集約 セキュリティ強化のため、データソースごとにデータレイクを分割して構 築し、権限を設定 1層 蓄積データ種類 DataLa ke アクセス権限 2層 3層 クラウドから外部連携のデータ 食べログのデータベースのデータ クラウド接続は可能 オンプレミスDB接続は可能 社内ネット 特定サーバー接続は可能 学習済データ、レポートデータ 予測データ 社内ネット レポート ファイル 1層バケット 2層バケット 3層バケット DataLake Cloud Storage AppsFlyer Oauth Oauth Oauth SFTP API
  10. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 16 データレイクまでビッグデータ収集 Google

    Cloud Platform (GCP) On-premises DataLake Cloud Storage Kubernetes Engine 社内Kubernetes 社内MySQL Argo workflow DB1 DB2 Workflow1 Workflow2 table1 table2 … table1 table2 … embulk job1 embulk job2 embulk … embulk job1 embuk job2 embulk … DB1/table1 DB2/table1 DB2/table1 DB2/… DB1/table2 DB1/… Argo Workflow + Embulkで高速なビッグデータ転送を実現 • クラウドサービスからDBサーバーにアクセス不可 • サイズが大きく、かつ、本数が多いデータを転送 • 社内k8s環境を活用し、Argo workflowを構築 • DB毎それぞれworkflowを設定 • Workflowでは、複数のジョブを並列実行 • Embulkで大規模データの高速バルク処理が可能 • 2000以上のテーブルは並列データ転送できる • 2億レコードのビッグテーブルは短期間データ転送できる • あるworkflowが障害時、他のDBデータ転送に影響がなし • あるテーブルが障害時、他のテーブル転送に影響がなし
  11. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 17 食べログのビッグデータ基盤の全体図(DWH&データマート) Cloud

    データ活用 データ分析 データ蓄積 データ収集 Adobe Analytics On-premises MySQL Google Compute Engine Google Cloud Platform (GCP) DataLake Cloud Storage DWH BigQuery Cloud Composer Datamart BigQuery Tableau Vertex AI Salesforce データ可視化 営業支援 機械学習 AppsFlyer
  12. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 18 DWH&データマート データ分析

    データ蓄積 Google Cloud Platform (GCP) DataLake Cloud Storage DWH BigQuery Cloud Composer Datamart BigQuery Cloud Composer + bq load でデータレイクからBigQueryにファイルを自 動で取り込むことを実現 • bq loadバッチを作成する • Cloud Composer上で、bash_operator を使って、loadバッチを実行す るDAGを作成する • DAGファイル、バッチファイルをCloud Composerサーバー上に反映 すれば、設定したスケジュール通り、データレイクからBigQueryに ファイルが自動で取り込まれる。 Cloud Composer + bigquery_operator でBigQuery クエリを実行して、 データマートテーブルを自動的に更新することを実現 • データマート集計クエリを作成する • Cloud Composer上で、bigquery_operatorを使って、クエリを実行す るDAGを作成する • DAGファイル、クエリファイルをCloud Composerサーバー上に反映 すれば、設定したスケジュール通り、 BigQueryクエリを実行して、 データマートテーブルを自動的に更新される bq load 自動更新
  13. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 19 データマート作成の目的1(計算リソースの削減) データマートを作らず、データウェアハウスにあるデータだけで活用することも可能ですが、

    汎用的なデータマートを作成して、計算リソースの削減ができます。 DWH BigQuery table カスタマー行 動ログ DWH BigQuery table カスタマー行 動ログ Datamart BigQuery table コンバージョン 履歴マート 1億行 1億行 100万行 集計 一年のコンバージョン数集計 半年のコンバージョン数集計 前月のコンバージョン数集計 一年の集計 半年の集計 先月の集計 汎用的なコンバージョン 履歴マートによる計算リ ソースの削減 細かいデータを毎回集計 するのは計算リソースの 無駄
  14. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 20 データマート作成の目的2(汎用的な集計の統一化) 汎用的な集計データマートを使ってもらうことにより、人によって集計結果が異なる問題を解決できます。

    DWH BigQuery DWH BigQuery Datamart BigQuery 集計 レポート提出、意思決定 カスタマー マスタ 予約履歴 店舗マスタ カスタマー マスタ 予約履歴 店舗マスタ カスタマー別 予約履歴マート 51件 49件 ?件 50件 50件 50件 乖離調査 OUTER JOIN INNER JOIN
  15. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 21 Cloud Composerでデータパイプラインを構築

    Cloud Composerを使って、簡単に業務集計用のデータパイプラインを構築できます。 店舗ネット予約率を計算する事例を通して、紹介します。 ネット予約数/PV DataLake Cloud Storage DWH BigQuery Datamart BigQuery 店舗アクセス ログ 店舗マスタ データ 店舗ネット予 約データ 店舗アクセス ログ 店舗ネット予 約データ 店舗マスタ データ 店舗ネット予 約率 店舗PV ファイル テーブル ビジネス要件 実現 Cloud Composer 1 2 3 4 5 1 2 3 4 5 6 • フルマネージドサービスとして提供、インフラ運用なし、サーバーレス • DAGという形式でタスク間の依存関係を管理できる • 様々なoperatorsを提供して、簡単にデータパイプラインを構築できる • 容易なオーケストレーション • 1-Clickで過去workflowを再実行し、簡単にリカバリ対応できうる。
  16. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 22 食べログのビッグデータ基盤の全体図(データ活用) Cloud

    データ活用 データ分析 データ蓄積 データ収集 Adobe Analytics On-premises MySQL Google Compute Engine Google Cloud Platform (GCP) DataLake Cloud Storage DWH BigQuery Cloud Composer Datamart BigQuery Tableau Vertex AI Salesforce データ可視化 営業支援 機械学習 AppsFlyer
  17. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 23 データ可視化 データ可視化は企業の誰でもデータをもとに意思決定をできるようにするための方法です。

    食べログにはBigQuery+Tableauにより、データ可視化の環境を構築しました。 BigQuery DWH table PVデータ table 店舗マスタ BigQuery Datamart Datamart 店舗プロファイル Tableau 自動 集計 BigQuery Admin BigQuery User&Tableau Creator Tableau Viewer 基盤担当 サイエンス担当 役員 部長 企画者 データビジネス担当 企画者 マーケティング担当 ライブOR抽出 View 店舗毎予約推移 table 予約データ
  18. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 25 まとめ •

    セキュリティ強化のため、源泉データによりデータレイクを分割して構築し、それぞれ権 限を設定するのはオススメです。 • ビッグデータの収集は容易ではありません。大量のデータを収集するために分散処理が必 要です。エンジニアリングにおいてももっとも工数を費やすのはデータ収集です。 • 汎用的な集計データマートを使ってもらうことにより、計算リソースの削減ができますし、 人によって集計結果が異なる問題を解決できます。 • Cloud Composerを活用して、データ分析基盤の運用コストがかなり削減できます。
  19. CONFIDENTIAL © Kakaku.com Inc. All Rights Reserved. 26 最後に We

    are hiring! Join our team! • データ基盤エンジニアを募集します。 • 今後AIを利用し更なるシステムの強化を行う予定です。最新技術の実装 に携わって頂けるとともに、自身が携わったシステムが事業の成長につ ながっているという実感を持ちながら働くことができるポジションです。 もしご興味をもたれた方は是非採用ページからお申し込みください。 • まずはカジュアル面談で情報交換をしてみたいという方も大歓迎です。 その場合はご応募いただくときに、フリーテキスト記入欄に「カジュア ル面談希望」とご記載ください https://hrmos.co/pages/kakakucom/jobs/1011008