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.
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ı.
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.
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).
- 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.