Slide 1

Slide 1 text

データ分析基盤信頼性向上の取り組み MIXI SRE秋祭り 〜 MIXIのもうひとつのSRE 〜

Slide 2

Slide 2 text

自己紹介 ● 濱野 悠介 / @yhamano0312
 ● 開発本部 CTO 室 SRE G
 ● Embedded, Platform SREs
 
 ● Google Cloud, AWS
 ● Go, Terraform


Slide 3

Slide 3 text

アジェンダ ● TIPSTAR とは
 ● データ分析基盤活用
 ● データ分析基盤における信頼性
 ● データ分析基盤信頼性向上のために取り組んだこと
 ● まとめ


Slide 4

Slide 4 text

TIPSTARとは

Slide 5

Slide 5 text

TIPSTARとは TIPSTAR
 TIPSTARとは、365日配信されるレース映像と、 競輪・PIST6・オートレースのネット投票を、 基本無料で楽しむことができるサービスです。

Slide 6

Slide 6 text

データ分析基盤活用

Slide 7

Slide 7 text

データ分析基盤 ● スマートフォンやIoTの普及/クラウドサービスの台頭に伴い、あらゆるものや場面において さまざまなデータの収集が可能となり、企業が保有するデータ量が膨大となっている
 ● それら膨大なデータの蓄積→加工→分析を一貫して行う技術的な基盤として
 データ分析基盤が必要


Slide 8

Slide 8 text

データ分析基盤活用 ● TIPSTAR では主に以下の用途でデータ分析基盤が使われている
 ○ KPI 確認
 ○ 経理処理
 ○ 既存機能の改修/新機能の立案
 ○ イベント施策立案
 ○ マーケティング戦略立案
 ○ 各種効果検証
 ※画像は機能リリース案内及び過去実施した施策の一例


Slide 9

Slide 9 text

Data Source データ分析基盤構成 Cloud Spanner Cloud Logging Dataflow Google スプレッドシート BigQuery DWH BigQuery Data Mart Looker エンジニア ビジネス マーケティング Vertex AI Workflows AppsFlyer
 dbt


Slide 10

Slide 10 text

基盤開発/運用体制 ● 専任のエンジニアはおらず、TIPSTAR プロダクト開発や他プロジェクトと兼任しているメン バー数名で担当している
 ● 極力 Google Cloud のマネージドサービスを活用して、開発/運用工数を削減している


Slide 11

Slide 11 text

データ分析基盤における 信頼性

Slide 12

Slide 12 text

データ品質モデル 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


Slide 13

Slide 13 text

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


Slide 14

Slide 14 text

Data Reliability Engineering(DRE) ● データ(基盤を含む)の信頼性を管理する取り組み
 ● Site Reliability Engineering(SRE)との違いは注目する対象(サイトなのか
 データなのか)が違うくらいで対処する課題や課題に対するアプローチは酷似している
 ○ SLI/SLO ドリブンな運用
 ○ ソフトウェアツールを用いたシステム管理/運用タスクの自動化


Slide 15

Slide 15 text

データ分析基盤信頼性向上 のために取り組んだこと

Slide 16

Slide 16 text

データ分析基盤の信頼性に関する課題 1. Spanner to BigQuery 処理部分のコストが嵩む & 処理が失敗した場合の retry がしづらい
 2. 重要指標は当日分も確認したいが、品質の高いデータが前日分までしか取り込まれていな い


Slide 17

Slide 17 text

BigQuery 今だから知りたい BigQuery 再入門 https://www.slideshare.net/GoogleCloudPlatformJP/bigquery-google-cloud-inside-games-apps-online


Slide 18

Slide 18 text

Cloud Spanner CLOUD ONAIR Database OnAir https://services.google.com/fh/files/events/dbonair-session3.pdf#page=4


Slide 19

Slide 19 text

Cloud Dataflow Google Cloud スタートアップ向けテクニカル ガイド Buildシリーズ Dataflow によるストリーム処理パイプライン https://www.youtube.com/watch?v=6JpYdbuOd3g

Slide 20

Slide 20 text

データ分析基盤の信頼性に関する課題 1. Spanner to BigQuery 処理部分のコストが嵩む & 処理が失敗した場合の retry がしづらい
 2. 重要指標は当日分も確認したいが、品質の高いデータが前日分までしか取り込まれていな い


Slide 21

Slide 21 text

Data Source データ分析基盤構成(再掲) Cloud Spanner Cloud Logging Dataflow Google スプレッドシート BigQuery DWH BigQuery Data Mart Looker エンジニア ビジネス マーケティング Vertex AI Workflows AppsFlyer
 dbt


Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

● データ取り込み用の Spanner Instance の利用料が痛い
 ● バックアップからデータ取り込みまでの一連の処理を CircleCI の 
 Schedule Job を組み合わせて実行させているので、どこかのプロセスで
 たまたま時間がかかったりすると後続の Job が失敗してそれぞれの Job を
 手動で retry する必要がある
 ○ Job の retry が遅れてデータ分析に必要なデータが揃わず分析業務が滞ることも
 データ取り込み用 Spanner Instance を利用する場合の課題

Slide 24

Slide 24 text

● 2023/06/23 GA
 ● 既存のワークロードへの影響をほぼゼロに、分析クエリとデータエクスポートを実行でき るフルマネージドサービス
 Spanner Data Boost 登場 https://cloud.google.com/spanner/docs/databoost/databoost-overview?hl=ja


Slide 25

Slide 25 text

● データ取り込み処理に 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 


Slide 26

Slide 26 text

データ分析基盤の信頼性に関する課題 1. Spanner to BigQuery 処理部分のコストが嵩む & 処理が失敗した場合の retry がしづらい
 2. 重要指標は当日分も確認したいが、品質の高いデータが前日分までしか取り込まれていな い


Slide 27

Slide 27 text

重要指標のこれまでのデータ分析運用 ● 基本的な要件であれば前日分までのデータを用いた分析で問題無し
 ● 一部の重要指標(決済関連等)に関しては当日分のデータも分析したい要件がある
 ● 当初は重要指標として利用するデータをログに出力し、Cloud Logging の sink 設定でニ アリアルタイムに BigQuery に取り込んでいた
 ● ログの場合は少なからず欠損や多重書き込みがあり、品質の低いデータによる
 分析となっていた
 ● 重要指標の当日分に関しても品質の高いデータで分析したい


Slide 28

Slide 28 text

品質の高いデータを用いた重要指標のニアリアルタイム分析 ● 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

Slide 29

Slide 29 text

今後の課題 ● SLO ドリブンな開発体制までは整えられていないため、データ品質の
 計測から行っていきたい
 ● Data Source から Data Mart 生成/更新までの全体的なデータパイプラインを改善
 ● Data Mart の拡充/改修
 ● Looker の啓蒙と習熟度向上活動


Slide 30

Slide 30 text

まとめ

Slide 31

Slide 31 text

まとめ ● TIPSTAR においてもデータ分析基盤を利用した様々な分析業務を行っている
 ● データ信頼性に関しても SRE と同じプラクティスが適用可能
 ● 専任エンジニアがいない中で、マネージドサービスや OSS を活用してデータ分析基盤 の信頼性向上に取り組んでいる


Slide 32

Slide 32 text

参考資料

Slide 33

Slide 33 text

参考資料 ● データの価値を失わないための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