GH GambleHub

Analitik we ETL konweýerleri

(Bölüm: Tehnologiýalar we infrastruktura)

Gysgaça gysgaça

Analitik konweýer iGaming-iň "çig" iş wakalaryny (nyrhlar, goýumlar, PSP webhuklary, oýunlaryň ýazgylary) metrikleriň durnukly penjirelerine (GGR/NGR, LTV, retenşn, antifrod signallary) öwürýär. Esasy ýörelgeler: gatlaklaryň ýeke-täk modeli (Bronze/Kümüş/Altyn), instrumental düzgün-nyzam DQ/lineage, inkrementlik we idempotentlik, gözegçilik we SLO, çykdajylara gözegçilik. Kararlar ýüküň profilini (ýaryşlaryň iň ýokary derejesini), düzgünleşdirijiligi (PII/lokalizasiýa) we işiň maglumatlaryň täzeligine bildirýän talaplaryny göz öňünde tutup kabul edilýär.

1) Arhitektura: ETL vs ELT, batch vs stream

ETL (Extract → Transform → Load): DWH-e ýüklemezden ozal üýtgetmek. Üýtgemegiň gözegçilik edilýän gurşawy/" buluta "çenli syrlary talap edýän ýerlerine laýyk gelýär.
ELT (Extract → Load → Transform): Lake/Lakehouse/DWH çig mal, soňra SQL/hereketlendiriji (dbt/SQL-skriptlar). Sütünli hereketlendirijiler we çeýe iterasiýalar üçin amatly.
Batch: meýilleşdirilen penjireler (her 5/15/60 minutda, gijeki). Arzan we öňünden aýdyp boljak.
Stream: почти real-time (Kafka → Flink/ksqlDB → OLAP). Near-real-time (5-60 sekunt) we antifrod/CRM signallary üçin.
Gibrid: Bronze akym bilen doldurylýar, Silver/Gold - inkremental batch modelleri.

Maslahat: iGaming-de ELT + akymy saklamak: CDC/outbox → Bronze (bir minutlyk täzelik) arkaly wakalar, Silver/Gold-a içerki üýtgeşmeler.

2) Gatlak model (Medallion)

Bronze (Raw): Çig wakalar/CDC iş logikasyz. Parquet/ORC formatlary, shemalar bolşy ýaly, iň az tassyklama.
Silver (Conformed): arassalamak, duplikasiýa etmek, kesgitleýjileri kadalaşdyrmak, ölçeg SCD, walýuta/wagt zolaklaryny birleşdirmek.
Gold (Marts): iş vitrinleri (faktlar/ölçegler, kublar), materialized views, agregasiýadan öňki (günler/ýurtlar/önümler).

Plýuslar: köpelmek, aç-açan ewolýusiýa, gatlaklar boýunça dürli SLO we TTL.

3) Çeşmeler we ýüklemek: CDC, outbox, faýllar

CDC (Change Data Capture): OLTP-den (Postgres/MySQL) tertip we idempotentlik kepilligi bilen üýtgetmek akymlary.
Outbox-pattern: wakalar hyzmatyň geleşiklerinde outbox tablisasyna/kolleksiýasyna ýazylýar → konnektor tekerde/kölde çap edýär.
Faýl ýüklemek: PSP ýüklemeleri, hyzmatdaş hasabatlary; manifestleri, dubl gözegçiligini (checksum) we kabul ediş kataloglaryny ulanyň.

Amallar: çeşmeler wersiýalanýar (schema version), her bir çeşme üçin - meýdanlaryň we hil garaşmalarynyň şertnamasy.

4) Orkestrasiýa: DAG, garaşlylyk, deploý

DAGi: aç-açan garaşlylyk (raw → staging → dims → facts → marts).
Wezipeleriň deňsizligi: zyýanly täsirleri bolmazdan täzeden başlamak (partition-overwrite, 'MERGE '/upsert).
Gurşawyň bölünişi: Dev/Stage/Prod, artefaktlaryň mahabaty, gymmat bahaly backfill üçin "el derwezesi" (manual approval).
Meýilnama: cron/wagtlaýyn penjireler + event-triggerler (faýllar/partiýalar gelensoň).
Syrlar: gizlin dolandyryjydan; DAG kodunda syrlary gadagan etmek.

Abstrakt DAG (psevdokod) mysaly:
python with DAG("dwh_daily", schedule="0  ") as dag:
bronze = ingest_cdc(source="payments", partition=hour())
silver = dedup_normalize(input=bronze)
dims  = build_dimensions(input=silver)
facts = build_facts(input=silver, dims=dims)
marts = build_marts(input=facts)
bronze >> silver >> [dims, facts] >> marts

5) Maglumatlaryň hili (DQ) we çyzgy

DQ-çekler: doly (count, late arrivals), açarlaryň özboluşlylygy, diapazonlar/domen düzgünleri (jemi ≥ 0, gollanmada walýuta).
Işleýiş çäkleri: tablisanyň kritikligine baglylykda alert bilen gaty durmak/soft-fail.
Lineage/katalog: reportdan çeşmä (tablisalar, sütünler, metrikler), eýeler, resminamalar, PII klassifikasiýasy.
Shemalara gözegçilik: awtomatiki gabat geliş synaglary (backward-/forward-compatible), "döwýän" üýtgeşmeler üçin aladalar.

6) Modellemek: SCD, surrogate keys, kadalaşmak

Ölçegler üçin SCD2: 'valid _ from/valid _ to/is _ current', surrogate key ('_ sk') we tebigy açar ('_ id').
SCD1: ownuk atributlar üçin täzeden ýazmak (mysal üçin, interfeýsiň lokaly).
Surrogate keys: durnukly '_ sk' join, natural keys - üýtgeşiklik üçin.
Ölçegleriň kadalaşmagy: iýerarhiýalaryň çuňlugynda snowflake; ýogsam ýyldyz tizlik üçin.

7) Inkremental modeller we partiýa ýerleşdirmek

Suw nyşany ('updated _ at', 'ingest _ ts'): diňe täze/üýtgedilen setirleri okaň.
Içerki strategiýalar: işewürlik açarlary boýunça 'MERGE', partiýalar boýunça 'INSERT OVERWRITE', kiçi partiýalar üçin 'DELETE + INSERT'.
Partiýa ýerleşişi: senesi/sagady/sebiti boýunça; süzgüç açarlary we join boýunça klaster (sort keys/Z-order).
Materiallaşdyrylan pikirler: GGR/NGR öňünden agregasiýa, meşhur bölümleriň keşi.
Approx-agregatlar: arzan vitrinler top-N üçin HLL/approx_distinct.

"MERGE" inkremental mysaly (jemlenen):
sql
MERGE INTO fact_deposits f
USING staging_deposits s
ON (f. deposit_id = s. deposit_id)
WHEN MATCHED THEN UPDATE SET amount = s. amount, status = s. status, updated_at = s. updated_at
WHEN NOT MATCHED THEN INSERT (...)
VALUES (...);

8) Backfill, reprocessing we taryhy dolandyrmak

Backfill: resurs çäkleri we penjireleri bolan aýry-aýry DAGler; aýdyň "hakykat penjiresi" (mysal üçin 2024-01-01.. 2025-11-05).
Reprocessing: kesgitlenen üýtgeşmeler → gaýtalanýan geçiş birmeňzeş netije berýär. Model kodunyň wersiýalaryny logirlemek.
Time-travel/tablisalaryň wersiýalary: derňewler we DR "logiki ýalňyşlyklar" üçin amatly.
Retraction: teswirnama bilen maglumatlary yzyna almak (aýyrmak/düzetmek) syýasaty.

9) Konweýeriň CLO/SLA/SLO

Täzelik (freshness): Bronze ≤ 1-5 min, Silver ≤ 15 min, Gold ≤ 60 min (mysal).
Ygtybarlylygy: DAG-yň üstünlikli geçişleriniň göterimi ≥ 99. x%.
Öndürijilik: düwünleriň dowamlylygy p95/p99; partiýa üçin wagt býudjeti.
Lag monitoring: ingest-akymyň yza galmagy, nobatlaryň çuňlugy, "late data" paýy.
Alertler: täzeligiň/göwrümiň bozulmagy, DQ-feýller, skanlaryň bahasynyň ýokarlanmagy, MV-iň zaýalanmagy.

10) Bahasy: çaklamak we optimizirlemek

Partiýa we klasterler skanerleriň mukdaryny azaldýar.
Gyzgyn markerleriň materializasiýasy (günler/ýurtlar/önümler).
Köplenç ulanylýan dashbordlar üçin netijeleri/MVs kesmek.
Gaýtadan başlamagyň ýygylygyna gözegçilik etmek (sebäpsiz "her 5 minutda" ýok).
TTL: agressiw retenşn Bronze, orta Kümüş, uzyn Altyn (diňe agregatlar).
Capacity planning: katalog metrikleri, ýaryşlaryň/kampaniýalaryň iň ýokary derejeleriniň çaklamasy.

11) Howpsuzlyk, PII we lokalizasiýa

Maglumatlaryň klassifikasiýasy: PII/maliýe/operasiýa.
Şifrlemek: asuda we tranzit; KMS/rola esaslanan giriş.
De-identifikasiýa: kesmek/gizlemek, açarlary bolan aýratyn sütünler.
Köp tenantlyk üçin RLS/tupanlar ('tenant _ id').
Lokalizasiýa: sebitler boýunça saklamak we gaýtadan işlemek zolaklary (EU/TR/LATAM); diňe rugsat berlen ýerlere eksport etmek.
Audit: möhüm tablisalara okamak/ýazmak, kataloga girmek.

12) Syn edilişi: metrikler, loglar, söwdalar

Konweýeriň ölçegleri: wezipeleriň dowamlylygy, nobat, ýalňyşlyklar, retralar, işlenilen baýtlaryň/setirleriň mukdary, bahasy.
Logy: gurluş; 'trace _ id '/' run _ id' baglanyşygy.
Söwda: çeşmeden penjirä çenli (ingest → transform → load → BI).
Daşbordlar: gatlaklaryň täzeligi, DAG-laryň üstünligi, iň gymmat haýyşlar, p95/p99.

13) Gurallar (rollar boýunça görkezmeler)

Orkestrasiýa: DAG-orkestratorlar (meýilleşdiriji, retralar, alertler, syrlar bilen).
Üýtgeşmeler: SQL-modellemek ("kod hökmünde modeller"), modelleriň birlik synaglary, resminamalar.
DQ/kontraktlar: maglumatlar toplumyna barlaglaryň we SLA framkalary.
Lineage/katalog: garaşlylyk sütünini awtomatiki düzmek, eýesini gözlemek.
Akym: penjire/agregasiýa prosessorlary, sink/source konnektorlary.

(Anyk wendorlar kompaniýanyň yrgysy we howpsuzlyk talaplary üçin saýlanýar.)

14) Şablonlaryň mysallary

GGR penjire şablony (umumylaşdyrylan SQL)

sql
CREATE OR REPLACE TABLE mart_ggr_daily AS
SELECT
DATE(b. ts) AS d,
c. country_code,
SUM(b. stake) AS stake_sum,
SUM(b. win)  AS win_sum,
SUM(b. stake - b. win) AS ggr
FROM fact_bets b
JOIN dim_country c ON c. country_sk = b. country_sk AND c. is_current
WHERE b. ts >= DATE_SUB(CURRENT_DATE, INTERVAL 60 DAY)
GROUP BY d, c. country_code;

"Suw belgisi" bolan inkremental model

sql
INSERT INTO fact_bets PARTITION (dt)
SELECT
FROM staging_bets
WHERE updated_at > (SELECT COALESCE(MAX(watermark), '1970-01-01') FROM _meta_watermarks WHERE table='fact_bets');
-- then update watermark

DQ-barlaglar (ideýa)

sql
-- 1) key uniqueness
SELECT deposit_id FROM fact_deposits GROUP BY deposit_id HAVING COUNT()>1;

-- 2) negative amounts (error)
SELECT FROM fact_deposits WHERE amount < 0;

15) Girizmegiň çek-sanawy

1. Metrik sözlügini (GGR/NGR/LTV/Retention) we eýelerini kesgitläň.
2. Bronze/Kümüş/Gold gatlaklary boýunça SLO täzeligini düzüň.
3. Çeşmeleriň şertnamalaryny standartlaşdyryň (shemalar, DQ, SLA).
4. DAG-grafany indempotent ädimleri we izolirlenen syrlary bilen guruň.
5. (MERGE/overwrite partiýa boýunça) we "suw belgilerini" durmuşa geçiriň.
6. DQ (möhüm/ýumşak barlaglar), lineage we maglumatlar katalogyny goşuň.
7. Syn edilişini (metrikler, loglar, treýslar) we aladalary sazlaň.
8. Retenşn/TTL we backfill/reprocessing syýasatyny giriziň.
9. PII-gözegçiligi, şifrlemegi, RLS-i we lokalizasiýany üpjün ediň.
10. Oýun gününi geçiriň: çeşmäniň ýykylmagyna, "döwýän" shemalara, köpçülikleýin backfill-e öýkünmek.

16) Antipatternler

"Hemmeler üçin bir gijeki ETL" partiýa we inkrementlik bolmazdan.
DQ we lineage → gapma-garşylykly hasabatlaryň ýoklugy we "arwah awy".
Her işe girizilende tablisalaryň doly gaýtadan işlenilmegi (bahanyň partlamasy).
Buferler/retraýlar bolmazdan hakyky wagtda gaty baglanyşyk.
PII we köpçülik penjirelerini segmentasiýa we gizlemezden garyşdyrmak.
Retraction/Silme syýasaty ýok (ýalňyşlyklary düzetmek mümkin däl).

Netijeler

"iGaming" -de analitikanyň durnukly konweýeri gaty DQ/lineage, inkremental modeller, aç-açan orkestrator we ölçenen SLO bilen gatlak modeline ELT + akym ýüklemesidir. Çykdajy gözegçiligini, PII/lokalizasiýa syýasatyny, yzygiderli backfill/DR maşklaryny goşuň - we siziň seljeriş platformasyňyz, işewürlige zerur täzelik we hil maglumatlary bilen jogap berip, ýaryşyň iň ýokary derejesine ýeter.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.