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

Merpay のデータ収集基盤

Merpay のデータ収集基盤

Merpay で準備中の、データ収集のための基盤の仕組みについてです

Ryo Okubo

August 30, 2018
Tweet

More Decks by Ryo Okubo

Other Decks in Technology

Transcript

  1. 3 マイクロサービスとデータのユースケース 01 Agenda 02 • アプリケーションとデータの分離 • メルペイにおけるデータのユースケース merpay

    DataPipeline 概要 • batch と steam のデータ転送のサポート • データの転送先 Copyright © Merpay, Inc. All Rights Reserved. 03 パイプラインのプロトタイプ実装 • GCP を利用したパイプラインの構成 • 課題など
  2. Microservices in merpay ServiceA ServiceB ServiceC App App App 1.

    分離されたアプリケーション 2. 分離された DB (無い場合もある) 3. 独立したマイクロサービスチーム
  3. Data sources vs usecases D-service B-service A-service C-service KPI Analytics

    Fraud Detection Credit Scoring Funnel Analytics ML system Customer Support
  4. microservice -A microservice -B microservice -C Data Pipeline datauser -A

    datauser-B BigQuery BigQuery Event Log Event Log Event Log DB DB DB batch transfer stream transfer batch transfer batch transfer stream transfer stream transfer BqLoad Tool Cloud Storage ToGCS Tool? Cloud Dataflow BqLoad Tool Publish message Subscribe message merpay DataPipeline
  5. microservice -A microservice -B microservice -C Data Pipeline datauser -A

    datauser-B BigQuery BigQuery Event Log Event Log Event Log DB DB DB batch transfer stream transfer batch transfer batch transfer stream transfer stream transfer BqLoad Tool Cloud Storage ToGCS Tool? Cloud Dataflow BqLoad Tool Publish message Subscribe message merpay DataPipeline 1. マイクロサービスは DataPipeline へ配送 2. データ利用者は DataPipeline から受け取り
  6. batch vs stream? • どちらもサポート! ◦ データソースや用途に応じて使い分ける ◦ 現状は DB

    は batch で、イベントログは stream で配信予定 • 将来的には stream のみなどに舵切りするのもアリ?
  7. destinations? • Data Lake: GCS ◦ Pipeline に流れてきたデータをひたすら蓄積 • Data

    Warehouse: BigQuery ◦ 主に分析用に BigQuery に書き出す • Message Queue: Cloud Pub/Sub ◦ ニアリアルタイム処理のために後続キューに転送 • Any others…? ◦ 必要であれば他になにか考えるかも
  8. batch microservice-B merpay-dataplatform Data User - A microservice-A Cloud Pub/Sub

    BigQuery Cloud Functions data mart change notification Pub/Sub trigger (BqLoad path) BqLoad Cloud SQL data lake Cloud Storage Cloud Spanner microservice-C Cloud Datastore Data Pipeline
  9. stream Microservice platform team Kubernetes cluster A-service B-service merpay-dataplatform Logging

    Cloud Pub/Sub Cloud Dataflow BigQuery stdout via logging library Sink to Pub/Sub Subscribe Data User - A BigQuery DWH Streaming Insert
  10. Schema Registory • ProtocolBuffer でログのスキーマを予め定義 ◦ マイクロサービスの IDL として社内利用実績多し! ◦

    protoc plugin で各言語ライブラリやドキュメントが得られる • GitHub で .proto ファイルを管理
  11. Remaining issues • batch ◦ スケーラビリティ • stream ◦ Stackdriver

    Logging のコストと他のログが混ざることの複雑さ++ • Schema Registory ◦ 誰がスキーマを定義していくのか問題 ◦ スキーマ事前定義するのが面倒くさいよ問題 • 他の性質の課題 ◦ スマホアプリのイベントログはどうしようか?など 個別のコンポーネントはまだまだ検討が必要
  12. We are hiring!!! merpay DataPlatform Team ではプロダクト開発に寄り添えるデータ収集基盤を構築して います。 全体構成や組織としての課題、 GCP

    ベースのコンポーネントの実装、セキュリティなど など挑戦的な取り組みが多々あります! 少しでも興味を持って頂けたなら、merpay 採用ページもしくは Twitter で @syu_cream まで!
  13. Q&A