データフローアーキテクチャ
1)目的と原則
目的:分析、報告、不正防止、パーソナライゼーション、およびMLのための正しい、タイムリーで準拠したデータを提供すること。
原則:- 製品としてのデータ:明確な所有者、契約、SLO、バージョン管理。
- Schema-first:スキームが必要です。ルールによる進化。
- プライバシー・バイ・デザイン:PII最小化、エイリアシング、アクセス制御。
- Observation-by-Default:トレース、メトリクス、リネージ、品質プロファイル。
- コスト配慮:階層型ストレージ、サンプリングノイジーイベント、圧縮。
2)ソースとイベントの風景
トランザクション:入金/出金、ベット/ペイアウト、ボーナス、チャージバック。
ユーザー:セッション、クリック、変換、RG制限、KYCステータス。
操作:アプリケーションログ、パフォーマンスメトリック、アラート。
プロバイダー:PSP/KYC/制裁/ゲームスタジオ(アグリゲーター)。
参考:ゲームカタログ、国/通貨ディレクトリ、関税/税金。
json
{
"event_time":"2025-10-31T19:20:11Z",
"event_type":"payment. deposit",
"schema_version":"1. 3. 0",
"user":{"id":"U-123","country":"EE","age_band":"18-24"},
"payment":{"amount":200. 00,"currency":"EUR","method":"card","psp_ref":"PSP-222"},
"ctx":{"ip":"198. 51. 100. 10","session_id":"s-2233","trace_id":"f4c2..."}
}
3)高レベルの参照アーキテクチャ
1.インジェストレイヤー
ゲートウェイ(HTTP/gRPC)、 CDCコネクタ(OLTPから)、キュー/バス(Kafka/Redpanda)、テレメトリーコレクター。
入力時の検証、正規化、PIIエディション、契約執行。
2.ストリーミングレイヤー
重複排除、透かし、ステートフルアグリゲートを備えたストリームジャブ(Flink/Spark Structured Streaming/Beam)。
ストレージおよびオンラインサービス(fichestore、不正防止)へのファンアウト。
3.バッチレイヤー
オーケストレーション(Airflow/Dagster)、増分ダウンロード、バックテストとレトロプロセス、SCDタイプ。
4.ストレージ(レイクハウス)
ブロンズ:生イベント(追加のみ、不変)。
シルバー:クリーニング、品質と重複排除とコンフォーマルテーブル。
ゴールド:特定のケース(BI/レギュレータ/ML)のショーケース/マート。
ACID(デルタ/アイスバーグ/フーディ)、ホット/ウォーム/コールドレイヤリングのテーブルフォーマット。
5.サービスとアクセス
BI/SQL (Trino/Presto/DuckDB)、セマンティック層(メトリクス層)、API/GraphQL、オンライン/オフラインの整合性のための機能ストア。
6.ガバナンスと安全
ディレクトリ/行、DQルール、政治的アクセスエンジン(RBAC/ABAC)、マスキング/トークン化、レポートのWORMアーカイブ。
4)契約とスキーム
データ契約:OpenAPI/AsyncAPI/JSON スキーマ/Avro。
進化:セマンティックバージョン;後方互換性のある変更-nullableフィールドの追加;breaking-移行期間の'/v2'とダブルエントリのみ。
レジスタ:スキーマレジストリ、ドメインディレクトリ(支払い、ゲームプレイ、マーケティング)。
5)統合パターン
CDC(変更データキャプチャ):OLTPからバス(Debezium)、ドメインキーのパーティショニング。
Outbox/Inbox:ドメインロジックイベントの配信を保証します。
正確に一度/効果的に一度:状態でのトランザクション、idempotent sinkの、重複排除キー。
Late Data&Watermarks:遅延イベントの処理;許可された遅延の窓。
再処理:idempotentパイプライン、タイムトラベル、スナップショット修正。
6)レイクハウスモデル: 青銅/銀/金
ブロンズ(生):- 時間(event_date)と市場(管轄)当事者。
- 追加のみ;法医学のための元のペイロードの貯蔵。
- 正規化されたタイプ、参照帳、'(event_id、 event_time)'による重複排除。
- FK検証、通貨標準化/タイムゾーン、濃縮。
- 非正規化ショーケース(GGR、 RGスコア、LTV、コホートテーブル)。
- BIおよびレポートの更新、集計のためのSLA。
7)データ品質
ルール:回路検証、範囲、一意性、完全性、参照整合性。
プロファイリング:分布、カルディナリティ、兆候の「ドリフト」。
モニタリング:p50/p95パイプライン遅延、ドロップレート、エラー予算。
劣化ポリシー:メトリックの自動フォールバック(最後のスナップショット)、アラート、tテスト。
yaml table: silver. payments rules:
- name: amount_positive type: range column: amount min: 0. 01
- name: currency_valid type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: unique_tx type: unique columns: [transaction_id]
slo:
freshness_minutes: 15 completeness_percent: 99. 5
8)プライバシーとコンプライアンス
PII最小化とマスキング:疑似ID、個別のルックアップマッピングを保存します。
地域化:ジオローカルバケット/カタログ(EEA/UK/BR)、「データレジデンシー」。
法的操作:DSAR/RTBF(計算可能な投影と選択的編集)、Legal Hold、変更できないレポートのアーカイブ。
アクセスログ:「機密」テーブル、ブレークガラス、JITアクセスの監査読み取り。
9)観察と管理
Linege-Automaticallyは、ソースからストアフロントへの依存関係をトレースします。
パイプラインメトリクス:スループット、遅延、故障率、コスト/GB、コスト/クエリ。
Trace (OTel):アプリケーションからの'trace_id'がイベントにスローされる→エンドツーエンドのリクエストパスを構築します。
アラート:SLO予算、鮮度/ボリューム/カーディナリティ異常。
10)アクセスおよびセキュリティモデル
データカテゴリ:public/internal/confidential/restricted。
ポリシー:行/列レベルのセキュリティ;動的マスキング(PAN/IBAN/email)。
キー管理:KMS/CMK、 at-rest/in-transit暗号化、回転。
職務の分離:prod/analyst/admin/reviewerの個別の役割。
11)データメッシュと製品アプローチ
支払い、ゲームプレイ、マーケティング、リスク、コンプライアンス。
データ製品:所有者、鮮度SLA、フィールド辞書、テスト、バージョン、消費指標。
ドメイン間の契約:バージョン管理、下位互換性、消費者主導のテスト。
12) FichestorおよびMLの流れ
フィーチャーレジストリ:機能の説明、ソース、変換、SLO。
オンライン/オフラインの整合性:1つの変換コード、オンラインマテリアライゼーションの遅延≤ 200-500 ms。
ドリフトモニタリング:PSI/KS、オートアラートおよびモデルロールバック、PII制御。
実験ジャーナル:メタデータ、バージョン、再現性、モデルマップ。
13) Finmodelとコスト最適化
頻繁な述語によるパーティショニングとZ順序/クラスタ。
未使用のテーブル、真空のための冷蔵およびTTL。
安定したクエリパターンに対してのみ表示されます。
重い仕事のためのクォータと予算;チームによるチャージバック。
14)地域およびマルチテナントトポロジー
マルチリージョンアクティブ:テーマとテーブルの複製、独立したパイプライン境界。
フェイルオーバー/DR: RPO/RTOターゲット、オーケストレータメタデータスナップショット、リカバリチェック。
マルチテナンシー:ディレクトリ/キー/クォータ分離、tenant_idマーキング。
15)プロセスとRACI(簡潔に)
R:データプラットフォーム(ingest、 storage、 orchestration)、データエンジニアリング(transformation)。
A:データ責任者/最高データ責任者。
C: コンプライアンス/法的/DPO、アーキテクチャ、SRE。
I: BI/アナリティクス、製品、マーケティング、ファイナンス。
16)流れのためのSLO/SLI
新鮮さ:p95遅延シルバー≤ 15分、ゴールド(毎日)準備≤ 06:00ロック。時間だよ。
完全性:≥ 99。Tウィンドウあたりのイベントの5%。
妥当性:DQチェックのエラーレート<0。容積の5%。
サービングの空き状況:≥ 99。BI/Feature APIの9%。
17)テーブルとパーティショニングテンプレート
sql
-- Bronze: Deposit events
CREATE TABLE bronze. payment_deposits (
event_time TIMESTAMP,
event_id STRING,
user_pseudo_id STRING,
amount DECIMAL(18,2),
currency STRING,
psp_ref STRING,
payload VARIANT
)
PARTITION BY DATE(event_time)
CLUSTER BY (currency);
-- Silver: normalized model
CREATE TABLE silver. payments AS
SELECT event_id,
CAST(event_time AS TIMESTAMP) AS ts,
user_pseudo_id,
amount,
currency,
psp_ref
FROM bronze. payment_deposits
QUALIFY ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY ts) = 1;
18)オーケストレーションとDevX
Infra-as-Code:パイプラインのリポジトリ、テスト、レビュー、GitOps。
データコントラクトCI:サーキットリンタ、デプロイ前のDQテスト。
Backfillフレームワーク:R/Wとidempotency制約を持つセキュアレトロプロセス。
カタログとテンプレート:クッキーカッタージェネレータ、ベストプラクティス。
19)実装ロードマップ
MVP (4-6週):1.イベントバス+2-3キーソースのインジェスト(OLTP CDC、 APIゲートウェイ)。
2.レイクハウスブロンズ/シルバー、ACIDフォーマット、カタログおよび基本的なDQルール。
3.1-2ゴールドケース(毎日のGGRと変換漏斗)。
4.遅延/完全性指標、基本系統、RBAC、およびPIIマスキング。
フェーズ2(6-12週間):- ストリーミングユニット(p95レイテンシ≤ 5分)、フィーチャーストア、RG/AMLショーケース。
- メトリクスのセマンティック層、レポート用のSLA;コストダッシュボード。
- 地域化(EEA/UK)、 DSAR/RTBF手続き、アーティファクトの法的保持。
- データメッシュ:製品ドメイン、消費者主導の契約。
- ドリフト監視、オンライン/オフライン自動ネゴシエーションによるMLオペレーション。
- スキーマ変更(インパクト解析)と「what-if」の自動シミュレーションをコストで行います。
20)頻繁なミスとそれらを回避する方法
スキーマのない生のペイロード:スキーマファースト、レジスタ、CI検証を実装します。
重複除外なし-イベントキーとSilverのidempotent同期。
Mix PII with analytics-マッピングとマスクフィールドを分離します。
所有者のないゴールド:所有者、SLO、消費指標を割り当てます。
再処理戦略はありません:タイムトラベル、ロジックバージョニング、「ダブルカウント」制御。
管理不能な値:バッチ、圧縮、TTL、値の可視性。
21)用語集(短い)
CDC-OLTPから変更をキャプチャします。
Outbox-ドメインイベントをトランザクションで公開します。
透かし-ウィンドウのフローの完全性の評価。
Lakehouse-データレイク+ACIDテーブル。
データ製品-所有者とSLOを持つデータの製品単位。
Feature Store-ML機能の一貫した配布。
22)ボトムライン
データフローアーキテクチャは、明確な契約、観測可能性、セキュリティ、および管理下のコストなど、管理可能なシステムです。記載されたパターン(スキーマファースト、ブロンズ/シルバー/ゴールド、CDC+アウトボックス、DQおよびリネージ、プライバシー・バイ・デザイン)に続いて、プラットフォームは予測可能なSLOと理解可能な所有コストを備えた品質データを確実にビジネス、コンプライアンス、およびMLに提供します。