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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for yhamano yhamano
October 31, 2023

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

Avatar for yhamano

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