GH GambleHub

Məlumat gölləri və axınların aqreqasiyası

1) Təyinatı və dəyəri

Data Lake/Lakehouse - uzunmüddətli saxlama və miqyaslı oxu üçün əsas təbəqə, burada:
  • Məhsullardan/oyunlardan/ödənişlərdən gələn axınlar Bronzeyə «olduğu kimi» enir.
  • Silver razılaşdırılmış açarları və keyfiyyəti təmin edərək normallaşdırır və zənginləşdirir.
  • Gold - BI, tənzimləyici, antifrod/RG üçün yığılmış vitrinlər (o cümlədən real-/near-real-time).

Lakehouse axını aqreqasiyası aşağıdakıları verir: aşağı hesabat gecikməsi, proqnozlaşdırıla bilən qiymət, təkrarlanabilirlik və forensika.

2) istinad arxitekturası

1. Ingest/Edge: HTTP/gRPC, OTel, batch endpoints → шина (Kafka/Redpanda).
2. Bronze (append-only): obyekt saxlama + ACID cədvəlləri (Delta/Iceberg/Hudi), partiyalar by date/market/tenant; orijinal payload saxlamaq.
3. Stream Compute: Flink/Spark/Beam - pəncərə blokları, CEP, dedup, online-lookups.
4. Silver (clean/conform): valyuta/taymzon normallaşması, FK/referans, ölçmələr üçün SCD.
5. Serving/OLAP: ClickHouse/Pinot/Druid - panellər üçün materiallaşdırılmış dəqiqə/saniyə aqreqatları.
6. Gold (serve): gündüz/saat vitrinləri, tənzimləyici parçalar, dəyişməz ixrac paketləri (WORM).
7. Nəzarət konturları: Schema Registry, DQ-kod, lineage, kataloqlar, sirləri/KMS, RBAC/ABAC.

3) Müqavilələr və sxemlər

Schema-first: JSON/Avro/Protobuf; məcburi sahələr: 'event _ time (UTC)', 'event _ id', 'trace _ id', 'user _ pseudo _ id', 'market', 'schema _ version'.
Təkamül: back-compatible → nullable əlavə; breaking → '/v2 '+ ikiqat qeyd.
Kataloq: domen təsviri, sahibi, SLA təravəti, DQ qaydaları, lineage.

4) Göldə axınların enişi

Aşağıda Exactly-once: at-least-once nəşr + idempotent sink (MERGE/upsert 'event _ id').
Dedup: stream stateful + Silver unikallığı.
Faylların kompaksiyası: small files → mütəmadi OPTIMIZE/VACUUM oxu və dəyəri üçün.
Time-travel: hata ayıklama, replay və audit daxildir.

Iceberg partiyalaşdırma nümunəsi (DDL ideya):
sql
CREATE TABLE bronze. payment_events (
event_id STRING, user_pseudo_id STRING, currency STRING,
amount DECIMAL(18,2), market STRING, event_time TIMESTAMP, payload STRING
)
PARTITIONED BY (days(event_time), market);

5) Aqreqasiya axını: pəncərələr və watermarks

Pəncərələr:
  • Tumbling sabit panellər üçün sabit (məsələn, 1 dəq/5 dəq).
  • Hopping - «hamar» metriklər üçün üst-üstə düşən (addım
  • Session - hərəkətsizlik davranış fasilələri.
  • Watermarks: late data idarəetmə (adətən 2-5 dəqiqə), əlavə emissiya/düzəliş qaydaları.
Flink SQL - bazarlarda 1 dəqiqəlik depozitlər:
sql
SELECT market,
TUMBLE_START(event_time, INTERVAL '1' MINUTE) AS ts_min,
COUNT() AS deposits_1m,
SUM(amount_base) AS sum_1m
FROM silver. payments
GROUP BY market, TUMBLE(event_time, INTERVAL '1' MINUTE);

6) Aqreqatların materiallaşdırılması

OLAP mühərriki (ClickHouse/Pinot/Druid): Dashboard və əməliyyat analitikası üçün dəqiqə/saniyə aqreqatları saxlayır.
Lakehouse Gold: hesabat və yoxlama (təkrarlanabilirlik) üçün gündəlik/saat kəsikləri saxlayır.

ClickHouse - materialized view (dəqiqədə GGR):
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream. game_events
GROUP BY ts_min, market, provider_id;
Gold - gündəlik kəsik (Lakehouse):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(event_time) AS event_date,
market, provider_id,
SUM(stake_base) AS stakes_eur,
SUM(payout_base) AS payouts_eur,
SUM(stake_base) - SUM(payout_base) AS ggr_eur
FROM silver. fact_game_financials
GROUP BY 1,2,3;

7) Gümüş: normallaşdırma və koordinasiya

Vaxt və valyuta: 'event _ time (UTC)', 'amount _ base', 'fx _ rate _ used', 'fx _ source'.
Açarlar/kataloqlar: 'user _ pseudo _ id', 'game _ id', 'provider _ id', 'market'.
SCD II: Ölçmələrin tarixləşdirilməsi (users/games/providers/RG/KYC).
DQ qaydaları: açarların unikallığı, istinad kitabçaları, məbləğ diapazonları, temporal-validlik.

8) Aqreqatların reyestri və «düzgün» təriflər

Semantic Layer: GGR/NGR, bahis/uduşlar, dönüşüm, ARPPU, latency p95.
Metriklərin versiyası: 'metric _ version' və «as-of» hesablama.
Dock kartları: owner, formula, mənbələr, SLA hazırlıq.

9) Exactly-once/idempotentlik və sifariş

Şin: at-least-once + partizan (yerli sifariş).
Emal: 'event _ id' dedupu (TTL 24-72h), SER/pəncərə operatorları düzəlişlərlə.
Sink: əməliyyat kommitləri və ya idempotent upsert/merge.
Outbox/Inbox: zəmanət ilə ALTP-dən domen hadisələrinin yayımlanması.

10) Late data və düzəlişlər

Allowed lateness: əməliyyat vitrinləri üçün 2-5 dəq; Gold üçün gündəlik toplama.
Düzəlişlər: OLAP-da əlavə emissiyalar və Gold-un yenidən seçilməsi (idempotent).
Bayraqlar: 'late = true', 'correction _ of = <event _ id>' audit üçün.

11) Müşahidə və DQ

SLI/SLO (göstəricilər):
  • p95 ingest → 1-dəq vitrin ≤ 2-5 c; Gold daily saat 06: 00-a qədər hazır olur.
  • Completeness ≥ 99. 5%; Schema validity ≥ 99. 9%; Trace coverage ≥ 98%.
  • Payplayn metrikası: lag/throughput/busy time/state size, late-ratio, dup-rate.
  • DQ-daşbordları: Freshness/Completeness/Validity, itki hunisi, «isti» açar kartı.
  • Lineage: Bronze Gold/ixrac yol; dəyişikliklər zamanı impact-analiz.

12) Gizlilik, rezidentlik, təhlükəsizlik

PII-minimallaşdırma: təxəllüs, ayrıca qorunan mapping.
Residency: EEA/UK/BR - ayrı-ayrı kataloqlar və şifrələmə açarları; əsas olmadan cross-regional join 'oların qadağan edilməsi.
Şifrələmə: TLS in-tranzit; KMS/CMK at-rest; tənzimləyicidə + WORM ixrac imzaları.
DSAR/RTBF/Legal Hold: seçici redaktələr, silinmələrin dondurulması, dinlənilə bilən girişlər.

13) Performans və dəyəri

Partiyalaşdırma: tarix/bazar/tenant; tez-tez süzülən atributlar üzrə/Z-order klasterləşdirilməsi.
kompaksiya: small files aradan qaldırılması, müntəzəm OPTIMIZE/VACUUM.
Materiallaşma: dəqiqə/saniyə - OLAP; gün/saat - Gold.
Tiered storage: hot/warm/cold, SLA bərpa, chargeback komandaları (cost/GB, cost/query).
Ön aqreqasiya/eskiz: HyperLogLog/approx-distinct məqbul olduğu yerdə.

14) Nümunələr (fraqmentlər)

Flink CEP - depozitlərin strukturlaşdırılması (10 dəq):
python if count_deposits(window=10MIN) >= 3 \
and sum_deposits(window=10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window_events):
emit_alert("AML_STRUCTURING", user_id, snapshot())
SQL - Silver download deadup:
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY event_time) rn
FROM bronze. payment_events p
) WHERE rn = 1;
Iceberg/Delta - MERGE idempotent:
sql
MERGE INTO silver. fact_bets s
USING stage. fact_bets_delta d
ON s. bet_id = d. bet_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

15) Proseslər və RACI

R (Responsible):
  • Data Platform (Lakehouse/kataloq/ACID, kompaksiya),
  • Streaming (aqreqatlar/CEP/dedup),
  • Domain Analytics (metriklər/Gold).
  • A (Accountable): Head of Data/CDO.
  • C (Consulted): Compliance/Legal/DPO (PII/residency/Legal Hold), Finance (FX/GGR), SRE (SLO/стоимость), Security.
  • I (Informed): BI/Məhsul/Marketinq/Əməliyyatlar.

16) Tətbiqi yol xəritəsi

MVP (3-5 həftə):

1. Lakehouse Bronze/Silver (ACID cədvəllər), Kafka ingest, registry sxemləri.

2. OLAP-da əsas axın aqreqatları (1-5 dəq); Gold vitrin. ggr_daily (D + 1 - 06:00).

3. Payments/Gameplay üçün DQ kodu, Freshness/Completeness dashboard.

4. Kompaksiya/OPTIMIZE, minimum cost-metriklər və alertlər lag/late/dup.

Faza 2 (5-10 həftə):
  • Silver uzantısı (users/games/providers üçün SCD II), lineage və impact analizi.
  • Asinxron lookups (RG/KYC/ASN/BIN), late-korreksiyaların idarə edilməsi.
  • Metriklərin semantik təbəqəsi, ixrac qaydaları (WORM/imzalar).
Faza 3 (10-16 həftə):
  • Multi-region, DR/replay-simulyator, auto-tuning pəncərələri və watermarks.
  • Cost-dashboard, chargeback/kvota, tiered storage və arxiv.
  • Vitrinlərin və metrik kartların sənədləşdirilməsinin avtogenerasiyası.

17) Satış öncəsi yoxlama siyahısı

  • Reyestrdə sxemlər və müqavilələr; back-compat testlər yaşıl.
  • Dedup, watermark/allowed lateness, DLQ daxildir.
  • Kompaksiya/OPTIMIZE/VACUUM cədvələ uyğun olaraq qurulmuşdur.
  • SLO: p95 ingest→minute-view, Gold до 06:00; alertlər lag/late/dup/state size.
  • DQ qaydaları aktivdir; lineage Bronze ixracat görünür.
  • RBAC/ABAC и KMS; rezidentlik və DSAR/RTBF/Legal Hold test edilmişdir.
  • Nəzarət altında dəyəri (cost/GB, cost/query, cold payı), repley limitləri.

18) Anti-nümunələr və risklər

Çiy və hesabat məlumatlarının bir cədvəldə qarışması: reproducibility pozur.
kompaksiya yoxdur: partlayış small files → bahalı sorğular.
FX hesablama «geri»: tarix və hesabatları pozur.
No watermarks/late siyasətçisi: vitrinlər və alertlər «üzür».
Ehtiyac olmadan tam reload :/MERGE artımlarından və düzəlişlərdən istifadə edin.
Analitikada PII: Mappinqləri ayrıca saxlayın, CLS/RLS daxil edin.

19) Lüğət (qısa)

Lakehouse - data lake + ACID cədvəlləri və SQL mühərriki.
Bronze/Silver/Gold - xam/normallaşdırılmış/xidmət qatları.
Watermark - event-time pəncərələrin hazırlıq həddi.
Materialized View - sürətli oxu üçün əvvəlcədən təyin edilmiş vitrin.
Time-travel - cədvəllərin tarixi versiyalarını oxumaq.
WORM - ixrac artefaktlarının dəyişməz saxlanması.

20) Yekun

Düzgün axın aqreqasiyası ilə məlumat gölü layların və müqavilələrin intizamıdır: Bronze «olduğu kimi», normallaşdırma və keyfiyyət üçün gümüş, dəqiqə panelləri üçün OLAP, təkrarlanan hesabatlar üçün Gold. Windows və watermarks, dedup və kompaksiya, gizlilik və dəyər idarə edərək, məhsul, komplayens və əməliyyat idarəetmə üçün sürətli, yoxlanıla bilən və komplayent vitrinləri əldə edirsiniz.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.