Data Lake we merkezleşdirilen saklamak
(Bölüm: Tehnologiýalar we infrastruktura)
Gysgaça gysgaça
Data Lake - çig malyň we jemlenen datasetleriň merkezleşdirilen saklanylyşynyň esasy gatlagy. iGaming üçin jedelleriň/tölegleriň/oýun ýazgylarynyň wakalaryny, partnýor ýüklemelerini, OLTP-den CDC kabul edýär we analitikalara, antifroda, CRM we BI-e berýär. Häzirki zaman tejribesi - Lakehouse: açyk sütün formatlary + ACID tablisa gatlagy + ýeke katalog + amallar/maglumatlar wersiýasy. Üstünligiň açary - shemalaryň we partiýa ýerleşdirmegiň tertibi, çykdajylary dolandyrmak, PII howpsuzlygy we berk iş medeniýeti (DQ, lineage, DR).
iGaming platformasynda Data Lake roly
Seljeriş üçin ýeke-täk hakykat nokady: çig we arassalanan maglumatlary çeşmä we formata garamazdan saklamak.
Çeýeligi: batch we streaming goldawy (CDC/konnektorlar, waka akymlary).
Ewolýusiýa: çig Bronzadan "Silver" konformly we "Gold" biznes vitrinlerine çenli.
Jogapkärçilik bölünişi: Önümçilik hyzmatlary tekerde ýazylýar, analitika/ML Lake gatlaklaryndan sarp edýär.
Binagärlik modelleri: Lake vs Lakehouse
Data Lake (S3/ADLS/GCS + Parquet/ORC): shema-on-read, arzan ammar, formatlaryň çeýeligi.
Lakehouse (Delta/Iceberg/Hudi Parquet üstünde): ACID amallary, upsert/merge, time-travel, ykjam faýllar, wakuum, indeksasiýa/toplama.
Amal: iGaming üçin esasy gatlak hökmünde Lakehouse peýdalydyr, daşarky OLAP (ClickHouse/BigQuery/Snowflake/Pinot) bolsa penjireler we ýörite hereketlendirijiler ýaly.
Gatlaklaryň medal modeli
Bronze (Raw/Staging): çeşmelerden çig faýllar (CDC, log-damp, hyzmatdaş CSV, webhooks). Iň az tassyklama, "bolşy ýaly".
Silver (Conformed): arassalamak/deadup, walýuta/wagt zolaklarynyň kadalaşmagy, görnüşleri, SCD ölçegleri, tutanýerli açarlar.
Gold (Marts/Serving): GGR/NGR/LTV/Retention üçin agregatlar, BI/CRM/antifrod üçin materiallaşdyrylan penjireler.
TTL: Bronze, Silver, Gold agregatlarynda uzak möhletli agressiw.
Formatlar we tablisa gatlaklar
Sütünliler: Parquet (de-fakto standart), ORC.
Açyk tablisa formatlary (ACID):- Delta Lake - geleşikler, 'MERGE', wagt-syýahat, optimizasiýa/vakuum, Z-order.
- Apache Iceberg - manifestli/snapshotly tablisalar, gizlin partizanlaşma, 'MERGE/DELETE/UPDATE', time-travel.
- Apache Hudi - copy-on-write/merge-on-read, upsert-optimizasiýa, inkremental ekstraksiýalar.
- Ekosistema we upsert/akym/shemalaryň ewolýusiýasynyň çeýeligi boýunça saýlaň.
Katalog we metastor
Ýeke-täk katalog (Hive Metastore/Unity/Glue/platforma kataloglary) shemalary, partiýalary, wersiýalary, hukuklary saklaýar.
Talaplar: tablisa gatlagy bilen geleşik sazlaşygy, birnäçe hereketlendirijileri goldamak (Spark, Trino/Presto, Flink, dbt), audit/lineage.
Shemalar we ewolýusiýa
Schema contract: hökmany meýdanlary, görnüşleri, semantikasyny düzüň; çeşmeler ('schema _ version').
Ewolýusiýa: opsiýa meýdanlaryny goşmak, göçmezden bozýan üýtgeşmeleri gadagan etmek; paýplaýnlarda awtomatiki shema-çekerler.
PII-segmentasiýa: duýgur meýdanlar - şifrlenen we aýratyn hukukly aýratyn sütünlere/tablisalara.
Partizasiýa we lay-out
Sene/sagat - wakalar üçin esasy açar; Goşmaça meýdanlar: 'country', 'product', 'tenant _ id'.
Hive-style путь: `s3://lake/bronze/payments/source=pspA/dt=2025-11-05/hour=13/part-0001. parquet`.
Klaster/sortlamak: Z-order/Sort keys ýygy süzülýän meýdanlar boýunça (player_id, country).
Faýlyň ululygy: 128-1024 MB nyşana alyň; "small files" -den gaça duruň (aşakda serediň).
Gizlin partizasiýa üçin wirtual sütünler (Iceberg/Delta).
Small files we kompakşn meselesi
Çeşmeler kiçijik tanklary akdyrýar → skanerleriň we meta-maglumatlaryň zaýalanmagy.
Çözgüt: döwürleýin optimize/compaction (coalesce), compaction-meseleleri meýilleşdiriji, ingestion-da batch-mikro-bundle, 'autoOptimize' (bar bolsa).
Merge-on-read vs copy-on-write syýasaty - ýazgynyň gizlinligi bilen okamak tizliginiň arasyndaky deňagramlylyk.
Injest: batch, stream, CDC
ALTP-den CDC (Debezium/konnektorlar) → Bronze (minutlyk täzelik).
Akym (Kafka/Flink/Spark Structured Streaming) → Silver/Gold inkremental (upsert/merge).
Batch (partnýor hasabatlary/CSV/JSON) - manifestli "kabul edijiler" arkaly, checksum boýunça goşa gözegçilik.
Idempotency: soňra gelen ýazgylar üçin açarlar (key, ts idempotency_key), "suw bellikleri" (watermarks).
Maglumatlaryň hili (DQ) we lineage
DQ-çekler: açarlaryň dolulygy, özboluşlylygy, diapazonlary, salgylanma bitewiligi (ýurtlaryň/walýutalaryň sanawy), işewürlik düzgünleri (GGR ≥ 0).
Liniedge: hasabatdan çeşmä garaşlylyk grafasy, modeliň kody we tablisanyň snapshot görnüşi.
Shemalara gözegçilik etmek: "döwýän" üýtgeşmeleri bloklaýan awtomatiki back/forward-compat synaglary.
Ýüklemeleriň barlagy: kim/haçan/näçe, ret edilen partiýalar, retralar.
Serwing we giriş
SQL hereketlendirijileri: ad-hoc we üýtgeşmeler üçin Spark/Trino/Presto; ELT modelleri üçin dbt.
Real-time/near-real-time: Penjireler ýaly Pinot/Druid/ClickHouse; Lakehouse - inkremental sink arkaly çeşme.
Data Sharing: göçürmesiz daşarky toparlara tablisalaryň/snapshotlaryň paýlaşylmagy (eger format tarapyndan goldanylsa).
Howpsuzlyk, PII we köp tenantlyk
Şifrlemek: at-rest (KMS) we in-transit (TLS).
IAM/RBAC/ABAC: katalog/tablisa/sütün/setirler derejesindäki rollar (maskalanmak, dinamiki syýasatlar).
Sebitler boýunça segmentasiýa (EUB/Türkiýe/Latam lokalizasiýasy): baketleriň we hasaplaýyş howuzlarynyň izolýasiýasy.
Köp tenantlyk: namespace/kataloglar we ýol prefiksleri, 'tenant _ id' boýunça süzgüçler, goşmaça - row-level policies.
Giriş auditi: okalyşlaryň/meta-maglumatlaryň üýtgemeleriniň, retenşnleriň we modifikasiýa edilmeýän magazinesurnallaryň ýazgylary.
Gymmaty dolandyrmak
Saklaýyş synplary: standart synpda gyzgyn (köplenç okalýar), TTL syýasatçylary bilen sowuk/Glacier-synplarda arhiw.
Partiýa ýerleşdirmek/toparlar skanerleri azaldar → $ $ -dan az.
Gymmat hasabatlar üçin materiallaşdyrylan penjireler; BI netijeleriniň keşi.
Kompakşn we "dogry faýl ululygy" - meta-maglumatlardan we I/O-dan az.
Kwotalar we býudjetleşdirmek: compute-klasterlere/joblara çäkler, seneset/topara baha boýunça hasabatlar.
Galyndylary aýyrmak: "VACUUM/REWRITE" tablisa formatlarynda, TTL Bronze.
DR we köpeltmek
Tablisalaryň wersiýasy (time-travel) we katalogyň snapshotlary.
Baketleriň we meta-maglumatlaryň sebitleýin köpeltilmegi.
PITR: tablisalaryň (Delta/Iceberg/Hudi) geleşik žurnallaryny we paypline ýazgylaryny saklamak.
Game-day: sebitleri dikeltmek we üýtgetmek boýunça yzygiderli türgenleşikler.
Synlamak we SLO
SLO täzelik: Bronze ≤ 5 min, Kümüş ≤ 15-30 min, Altyn ≤ 60 min (mysal).
Metrikler: faýllaryň göwrümi/sany, parket faýlynyň ortaça ululygy, skan wagty, sypdyrylan partiýalaryň paýy, compaction ýygylygy, bahasy/dataset, DQ ýalňyşlyklary, gijä galan maglumatlar.
Alertler: small files-iň köpelmegi, bahanyň ýokarlanmagy, p95/p99-yň zaýalanmagy, DQ/shemalaryň bozulmagy, akym-sinkleriň yza galmagy.
Neýming we ýollar konwensiýalary (şablon)
s3://<lake>/<layer>/<domain>/<dataset>/
source=<sys>/ # для Bronze dt=YYYY-MM-DD/
hour=HH/
country=XX/
Datasetleriň atlary: 'bets _ raw', 'payments _ cdc', 'players _ silver', 'mart _ ggr _ daily'.
Meta-maglumat sütünleri: 'ingest _ ts', 'source', 'schema _ version', 'trace _ id', 'tenant _ id'.
Mysallar (jemlenen)
1) Iceberg: Senesine görä gizlin partiýa bilen kümüş tablisa
sql
CREATE TABLE silver. bets (
bet_id BIGINT,
player_id BIGINT,
country STRING,
stake DECIMAL(18,2),
win DECIMAL(18,2),
event_ts TIMESTAMP,
ingest_ts TIMESTAMP,
schema_version INT
)
PARTITIONED BY (days(event_ts))
TBLPROPERTIES ('format-version'='2');
2) Delta: CDC-den artyk upsert
sql
MERGE INTO silver. players t
USING bronze. players_cdc s
ON t. player_id = s. player_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
3) Bronze üçin TTL syýasaty (pikir)
bronze/: keep 30 days silver/: keep 365 days (non-PII), 90 days (PII masked)
gold/marts/: keep 2–3 years (aggregated)
Giriş barlagy
1. Tablisa formatyny (Delta/Iceberg/Hudi) we katalogy saýlaň; hereketlendirijiler bilen ylalaşyň (Spark/Trino/Flink/dbt).
2. Medal gatlaklaryny, TTL düzgünlerini we toparlaryň jogapkärçiligini kesgitläň.
3. Shema contracts, ewolýusiýa gözegçiligi, PII segmentasiýa we şifrlemek.
4. Lay-out: partiýa, sort- açar, maksatly faýl ululygyny düzüň; compaction.
5. Ingest (CDC/stream/batch) -ni dempotentlik we deadup bilen sazlaň.
6. DQ/lineage, meta-maglumat katalogyny we auditi goşuň.
7. SLO täzeligini/bahasyny, dashbordlaryny we alertlerini kesgitläň.
8. DR guraň: snapshotlar/replikasiýa/dikeldiş + yzygiderli maşklar.
9. Neýmingi we ýollary, meta sütünleri standartlaşdyryň ('ingest _ ts', 'source', 'schema _ version').
10. Gold-vitrinleri we hakyky wagty amatly OLAP/RT hereketlendirijilerine geçiriň.
Antipattern
Gatlaksyz bir umumy "halta" we TTL → bulam-bujarlyk we bahanyň partlamasy.
Diňe ýurdy/önümi hasaba almazdan wagt boýunça partiýa ýerleşdirmek → agyr skanlar.
Müňlerçe ownuk faýl/sagat, compaction bolmazdan akymlar.
Shemalara gözegçilik edilmezligi we DQ → "döwýän" üýtgeşmeler we hasabatlara ynamsyzlyk.
PII-ni Gold-vitrinler bilen gizlemezden/bölünmän garyşdyrmak.
Katalogyň we tablisa syýasatlarynyň ýerine baketleriň derejesinde elýeterlilik hukuklarynyň hardkody.
Netijeler
iGaming üçin häzirki zaman Data Lake - açyk tablisa formatly, ýeke-täk katalog we medal modeli bolan Lakehouse. Shemalaryň/partiýalaryň tertip-düzgüni, small files, DQ/lineage, PII-howpsuzlyk we çykdajy arassaçylygy lak gatlagyny durnukly binýada öwürýär: saklamak üçin arzan, okamak üçin çalt, SLO tarapyndan öňünden aýdylýan we DR. üçin taýýar. Şeýle binýat ýaryş belentliklerine çenli giňeldilýär we goldanýar we batch analitika we near-real-time penjireleri.