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

TIPSTAR におけるデータ分析基盤信頼性向上の取り組み

yhamano
October 31, 2023

TIPSTAR におけるデータ分析基盤信頼性向上の取り組み

yhamano

October 31, 2023
Tweet

More Decks by yhamano

Other Decks in Technology

Transcript

  1. 自己紹介 • 濱野 悠介 / @yhamano0312
 • 開発本部 CTO 室

    SRE G
 • Embedded, Platform SREs
 
 • Google Cloud, AWS
 • Go, Terraform

  2. データ分析基盤活用 • TIPSTAR では主に以下の用途でデータ分析基盤が使われている
 ◦ KPI 確認
 ◦ 経理処理
 ◦

    既存機能の改修/新機能の立案
 ◦ イベント施策立案
 ◦ マーケティング戦略立案
 ◦ 各種効果検証
 ※画像は機能リリース案内及び過去実施した施策の一例

  3. Data Source データ分析基盤構成 Cloud Spanner Cloud Logging Dataflow Google スプレッドシート

    BigQuery DWH BigQuery Data Mart Looker エンジニア ビジネス マーケティング Vertex AI Workflows AppsFlyer
 dbt

  4. データ品質モデル ISO/IEC 25012 • 正確性(Accuracy)
 • 完全性(Completeness)
 • 一貫性(Consistency)
 •

    信憑性(Credibility)
 • 最新性(Currentness)
 • アクセシビリティ(Accessibility)
 • 標準適合性(Compliance)
 • 機密性(Confidentiality)
 データ品質を測る項目が定義されている
 • 効率性(Efficiency)
 • 精度(Precision)
 • 追跡可能性(Traceability)
 • 理解性(Understandability)
 • 可用性(Availability)
 • 移植性(Portability)
 • 回復性(Recoverability)
 https://cio.go.jp/sites/default/files/uploads/documents/data_hinshitu_guide_beta.pdf

  5. データ品質モデル ISO/IEC 25012 • 正確性(Accuracy)
 • 完全性(Completeness)
 • 一貫性(Consistency)
 •

    信憑性(Credibility)
 • 最新性(Currentness)
 • アクセシビリティ(Accessibility)
 • 標準適合性(Compliance)
 • 機密性(Confidentiality)
 データ品質を測る項目が定義されている
 • 効率性(Efficiency)
 • 精度(Precision)
 • 追跡可能性(Traceability)
 • 理解性(Understandability)
 • 可用性(Availability)
 • 移植性(Portability)
 • 回復性(Recoverability)
 これらデータ品質を保った品質の高いデータによる分析を行えることが望まれる

  6. データ分析基盤の信頼性に関する課題 1. Spanner to BigQuery 処理部分のコストが嵩む & 処理が失敗した場合の retry がしづらい


    2. 重要指標は当日分も確認したいが、品質の高いデータが前日分までしか取り込まれていな い

  7. データ分析基盤の信頼性に関する課題 1. Spanner to BigQuery 処理部分のコストが嵩む & 処理が失敗した場合の retry がしづらい


    2. 重要指標は当日分も確認したいが、品質の高いデータが前日分までしか取り込まれていな い

  8. Data Source データ分析基盤構成(再掲) Cloud Spanner Cloud Logging Dataflow Google スプレッドシート

    BigQuery DWH BigQuery Data Mart Looker エンジニア ビジネス マーケティング Vertex AI Workflows AppsFlyer
 dbt

  9. Spanner to BigQuery の流れ • 日次で Dataflow Job を起動させ、Spanner のデータを

    BigQuery に
 取り込んでいる
 ◦ なお、Dataflow の処理には mercari 社が OSS として提供している template を利用するこ とでデータ処理に関する実装/運用コストを削減している
 • 取り込み元の Spanner Instance はバックアップからリストアしたものを利用
 ◦ ユーザのワークロードに影響を与えないため
 https://github.com/mercari/DataflowTemplate
 ユーザー Google Kubernetes Engine Cloud Spanner バックアップ
 Cloud Spanner リストア
 Dataflow BigQuery
  10. • データ取り込み用の Spanner Instance の利用料が痛い
 • バックアップからデータ取り込みまでの一連の処理を CircleCI の 


    Schedule Job を組み合わせて実行させているので、どこかのプロセスで
 たまたま時間がかかったりすると後続の Job が失敗してそれぞれの Job を
 手動で retry する必要がある
 ◦ Job の retry が遅れてデータ分析に必要なデータが揃わず分析業務が滞ることも
 データ取り込み用 Spanner Instance を利用する場合の課題
  11. • データ取り込み処理に Spanner Data Boost を用いることで、
 データ取り込み用 Spanner Instance が必要なくなる


    ◦ データ取り込みクエリ実行中のみ処理量に応じて Spanner Data Boost の Compute が立 ち上がってその分課金となるので、データ取り込み用の Spanner Instance を用意する場合 と比べて十分の一程度に利用料を削減できそう
 ◦ バックアップ/リストアといった前段処理が必要無くなるため、一連のデータ
 パイプラインがシンプルになり、retry もしやすくなった
 Spanner Data Boost を用いたデータ取り込み処理の最適化 ユーザー Google Kubernetes Engine Cloud Spanner Dataflow BigQuery Spanner 
 Data Boost 

  12. データ分析基盤の信頼性に関する課題 1. Spanner to BigQuery 処理部分のコストが嵩む & 処理が失敗した場合の retry がしづらい


    2. 重要指標は当日分も確認したいが、品質の高いデータが前日分までしか取り込まれていな い

  13. 重要指標のこれまでのデータ分析運用 • 基本的な要件であれば前日分までのデータを用いた分析で問題無し
 • 一部の重要指標(決済関連等)に関しては当日分のデータも分析したい要件がある
 • 当初は重要指標として利用するデータをログに出力し、Cloud Logging の sink

    設定でニ アリアルタイムに BigQuery に取り込んでいた
 • ログの場合は少なからず欠損や多重書き込みがあり、品質の低いデータによる
 分析となっていた
 • 重要指標の当日分に関しても品質の高いデータで分析したい

  14. 品質の高いデータを用いた重要指標のニアリアルタイム分析 • BigQuery の Spanner Federated Query を利用する
 ◦ BigQuery

    に Spanner を外部データソースとして設定することで、BigQuery から Spanner に 直接クエリを投げることができる
 • BigQuery の Scheduled Query に Spanner Federated Query を用いて Spanner のデー タを数分間隔で BigQuery 側のテーブルに同期
 ◦ Looker からのクエリを都度 Federated Query で叩いてしまうとユーザワークロードに影響 が出る可能性があるため
 ◦ Spanner Data Boost を利用することも可能だがコストとのトレードオフ
 Cloud Spanner BigQuery Looker BigQuery Federated Query
  15. 今後の課題 • SLO ドリブンな開発体制までは整えられていないため、データ品質の
 計測から行っていきたい
 • Data Source から Data

    Mart 生成/更新までの全体的なデータパイプラインを改善
 • Data Mart の拡充/改修
 • Looker の啓蒙と習熟度向上活動

  16. 参考資料 • データの価値を失わないためのData Reliability
 ◦ https://speakerdeck.com/tanakarian/detafalsejia-zhi-woshi-wanaitamefalsedata-reliability
 • データ収集基盤とデータ整備のこれまでとこれから
 ◦ https://www.youtube.com/watch?v=eEhwBImCKKc


    • CNDF2023前夜祭 - 玄界灘のクラウドネイティブなデータ基盤運用の実践
 ◦ https://speakerdeck.com/pyama86/cndf2023qian-ye-ji-xuan-jie-tan-nokuraudoneiteibunadetaji-pan-yun -yong-noshi-jian
 • 社内データパイプラインツールを Mercari Dataflow Template としてOSS化しました
 ◦ https://engineering.mercari.com/blog/entry/mercari-dataflow-template/
 • What is Data Reliability Engineering?
 ◦ https://www.acceldata.io/article/what-is-data-reliability-engineering
 • データ品質管理ガイドブック
 ◦ https://cio.go.jp/sites/default/files/uploads/documents/data_hinshitu_guide_beta.pdf