GH GambleHub

データストアとOLAPモデル

(セクション: 技術とインフラ)

概要

データウェアハウス(DWH)-iGamingのコアアナリティクスレイヤー:規制当局へのレポート、製品/市場別の収益性、コホートLTV、不正防止分析、CRMセグメンテーション、リアルタイムダッシュボード。持続可能なDWHは、明確なデータモデル(Star/Snowflake/Data Vault)、堅牢な統合(ETL/ELT+CDC)、思慮深いパフォーマンス(列エンジン、パーティー、MV)、厳格なメトリクス意味論、セキュリティ/PII、およびコスト管理に基づいて構築されます。

建築的アプローチ

クラシックDWH(キンボールvsインモン)

キンボール(次元/星/雪片):クイックレポートケース;事実と次元、SCDの歴史に焦点を当てます。クイックタイム値。
Inmon (Corporate Information Factory):ノーマライズされたコア+ストアフロント;時間の重い、しかし厳しくそして中心的に。

Data Vault 2。0

Hubs-Links-Satellites:ソース統合と変更監査のためのスケーラブルな「raw」モデル。星の店は上に建てられています。

データレイク/レイクハウス

Data Lake: rawファイル(Parquet/ORC)+ディレクトリ(Hive/Glue/Unity/Metastore)。
レイクハウス:バッチ/ストリーム用の単層、ACIDテーブル(デルタ/アイスバーグ/フーディ)、タイムトラベル、アップサート/マージ、コンパクトファイル、Z注文/クラスタリング。

メダリオン(ブロンズシルバーゴールド)

ブロンズ:生データ(raw)+CDC。
銀:精製され、conformal。
ゴールド:ビジネスケース/メトリクス/キューブ。
雑種(Kafka→の青銅のために適した;シルバー-Lakehouse;ゴールド-ClickHouse/BigQuery/Snowflake)。

OLAPモデル: Star、 Snowflake、 Data Vault

スタースキーマ(星)

ファクトテーブル:トランザクション(レート、預金、セッション)。
次元:プレーヤー、ゲーム、提供者、日付/時間、地理、魅力チャネル。
長所:単純なジョイン、予測されたパフォーマンス。

スノーフレーク

寸法正規化(国/地域/都市階層、製品階層)。
長所:より少ない重複;マイナス-より多くのジョイン。

Data Vault→Star

DVに生の変更を追加します(監査、完全な再現性)、Star/Snowflakeのようなレポートウィンドウを構築します。

統合: ETL/ELT、 CDC、遅い変更

パイプライン

OLTP (Postgres/MySQL)→Kafka/→ブロンズコネクタからのOutbox/CDC。
ELT:銀のクリーニング、dedup、正規化。
ゴールド/ストアフロントのビジネスロジックと集計。

SCD(ゆっくりと変化する寸法)

タイプ1-Overwrite(必須フィールドではありません)。
タイプ2:歴史性(日付付きバージョン)-プロファイル/チャネル/価格の標準。
タイプ3:値のペアの保存(まれ)。

例SCD2 (SQL、一般ビュー):
sql
-- insert new dimension version
INSERT INTO dim_player (player_sk, player_id, country, valid_from, valid_to, is_current)
SELECT gen_sk(), s. player_id, s. country, now(), '9999-12-31', true
FROM staging_player s
LEFT JOIN dim_player d ON d. player_id = s. player_id AND d. is_current = true
WHERE d. player_id IS NULL OR d. country <> s. country;

-- closing the old version
UPDATE dim_player d
SET valid_to = now(), is_current = false
FROM staging_player s
WHERE d. player_id = s. player_id AND d. is_current = true AND d. country <> s. country;

セマンティックレイヤーと「true」メトリック

単一のセマンティックレイヤーを入力します:GGR、 NGR、 Net Deposits、 ARPPU、 LTV、 Churn、 Retention Cohorts定義。
コードとしてのメトリック(dbt metrics/LookML/Semantic Layer)→すべてのレポートで同じ数式。
カレンダー:TZ/地域/週末/キャンペーンの属性を持つ日付/時間表。

ボルトとエンジン: プロファイルの選択

列とクラウドDWH

ClickHouse:超高速スキャン/集計、具現化された表現、投影;イベント/テレメトリーおよびマーケティングショーケースで異なります。
BigQuery:サーバーレス、スケール、自動キャッシュ/クラスタ;スキャンあたりの価格。混合された負荷およびアドホックのために便利。
スノーフレーク:コンピューティング/ストレージブランチ、オンデマンドクラスタ、タイムトラベル;異なったチームに透明。
Redshift/Vertica/Pinot/Druid: OLAP/リアルタイムのオプション。

プロフィールチューニング

日付/地域/チャンネルごとにパーティションを分割します。
フィルター/ジョインキーによるクラスタリング/ソート。
辞書による圧縮とコーディング。
事前集計(ロールアップ、キューブ)、実体化ビュー。
安い評価のためのおよそ機能(HyperLogLog/approx_distinct)。

パフォーマンスエンジニアリング

パーティショニングとクラスタリング

パーティーはコンパートメントの境界です。イベントのための日/時間のパーティー。
クラスタリング(ソートキー/Z順序)-範囲と結合を加速します。

マテリアライズドビュー(MV)

GGR/NGRは日/国/プロダクトによって事前報告します。
CDCストリームからの差分更新。

ClickHouse (Merge-Holding MV)の例:
sql
CREATE MATERIALIZED VIEW mv_ggr_daily
ENGINE = SummingMergeTree()
PARTITION BY toYYYYMMDD(ts)
ORDER BY (country, product_id, toDate(ts)) AS
SELECT toDate(ts) AS d,
country,
product_id,
sum(stake) AS stake_sum,
sum(win)  AS win_sum,
sum(stake - win) AS ggr
FROM bets
GROUP BY d, country, product_id;

インクリメンタルモデル(dbt/ELT)

戦略'insert_overwrite' by party、 'merge' by CDC keys、 'watermark' by 'updated_at'。

参加戦略

各バッチセグメント(デノーム)での測定のレプリカ。
小さいdimsを放送して下さい;キーでソートされた大きな事実をシャッフルします。

コスト: 制御と最適化

BigQuery/Snowflake:リミットスキャンサイズ(デザインパーティー/クラスタ)、結果キャッシュ/実体化ビューを有効にし、BIオートクエストを制限します。
ClickHouse:ロットサイズ、メルジェ周波数、ストレージ予算(生イベントのTTL、集計は耐久性があります)。
メトリクスのセマンティクスは「二重」の計算を減らします。
データ剪定:ブロンズの保持、ゴールドの集計。

データ品質(DQ)、カタログ、系統

DQ-checks:完全性、ユニーク性、範囲、ビジネスルール(例えば、集計中のGGR ≥ 0)。
Data Catalog&Lineage:テーブル/フィールドの説明、所有者、PII分類、レポートからソースへのトレース。
制御スキーム:イベント/CDCのコントラクト、互換性のない変更のアラート。

安全性、コンプライアンス、マルチテナンシー

PIIセグメンテーション:個々のゾーン、マスキング/仮名化、KMS暗号化による列。
RBAC/ABAC: project/schema/table/row (RLS)レベルのロール、「need-to-know」のリール。
データのローカライズ:地域のバケット/倉庫(EU/TR/LATAM)。
アクセス監査:誰が店舗やモデルを読み、変更しましたか。

DR、バックアップ、再現性

データコードバージョニング(dbt/git)、 Dev/QA/Prod環境。
メタスター/カタログスナップショット+タイムトラベルテーブル。
保持/TTLは青銅/銀/金を層にします;重要な店頭の輸出。
ゲームデイ:ショーケースを復元し、メトリックの整合性を確認します。

リアルタイムとハイブリッドストアフロント

Stream-to-OLAP: Kafka→ClickHouse/Pinot/Druidのショーケース。
マテリアライズドビュー+CDC (5-15分)。
セマンティックレイヤーは変わりません。メトリックはリアルタイムとバッチで同一です。

GGR by Day and Countryショーケース例(Generic SQL)

sql
CREATE TABLE fact_bets (
bet_id   BIGINT,
player_sk BIGINT,
game_sk  BIGINT,
country_sk BIGINT,
stake   DECIMAL(18,2),
win    DECIMAL(18,2),
ts     TIMESTAMP
) PARTITION BY DATE(ts);

CREATE TABLE dim_country (
country_sk BIGINT PRIMARY KEY,
iso2    STRING,
region   STRING,
valid_from TIMESTAMP,
valid_to  TIMESTAMP,
is_current BOOL
);

-- Showcase
CREATE MATERIALIZED VIEW mart_ggr_daily AS
SELECT
DATE(ts) as d,
c. region,
SUM(stake) AS stake_sum,
SUM(win)  AS win_sum,
SUM(stake - win) AS ggr
FROM fact_bets f
JOIN dim_country c ON c. country_sk = f. country_sk AND c. is_current
GROUP BY d, c. region;

実装チェックリスト

1.ソースとドメインを定義し、メトリック辞書を修正します。
2.モデルを選択:raw/auditedレイヤー用のDV+ディスプレイケース用のStar。
3.キークエリとウィンドウのためのパーティー/クラスタを設計します。
4.CDC/ELT、 SCDポリシー、およびサロゲートキーを設定します。
5.セマンティックレイヤー(コードとしてのメトリック)と日付/時間カレンダーを入力します。
6.高価なレポートのためのMV/事前集計を作成します。
7.DQ/directory/lineageとスキーマコントロールを有効にします。
8.RBAC/PII/ローカライズ、暗号化、監査を定義します。
9.p95/p99モニタリング、コスト、劣化とオーバーランに関するアラートを設定します。
10.定期的なDR演習と環境の再現性。

アンチパターン

「パーティーのない1つの巨大な事実」→テラバイトのスキャンとスコアが増加しています。
異なるダッシュボードでのメトリックの一貫性のない定義。
ビジネスが歴史性を必要とするSCD2の欠如。
測定の早期正規化:不要なジョインと遅いレポート。
DQチェックと系統→「nothing」レポートのない生データ。
許可がない/TTL→ゴミの貯蔵とコストの爆発。

概要

信頼できるiGaming-DWHは明確なモデル(DV→Star)、単一のメートル辞書、正しいパーティション/クラスタリング、実体化されたストアフロント、厳密なDQ/lineage、およびRBAC/PII/ローカライズです。新鮮さ、ELT主導、価値規律のためのハイブリッドストリーミングを追加し、p99と予算で驚くことなくトーナメント、規制レポート、アドホックリサーチに拡張する持続可能な分析プラットフォームを提供します。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。