GH GambleHub

Data Lake және орталықтандырылған сақтау

(Бөлім: Технологиялар және Инфрақұрылым)

Қысқаша түйіндеме

Data Lake - шикізат пен шоғырландырылған датасеттерді орталықтандырылған сақтаудың базалық қабаты. iGaming үшін ол мөлшерлемелер/төлемдер/ойын логтары оқиғаларын, серіктестік жүктемелерді, OLTP-тен CDC қабылдайды және оларды талдауға, антифродқа, CRM және BI-ге береді. Қазіргі заманғы тәжірибе - Lakehouse: ашық баған форматтары + ACID-кесте қабаты + бірыңғай каталог + транзакциялар/деректер нұсқалары. Табыстың кілті - схемалар мен партияланудың тәртібі, құнды басқару, PII қауіпсіздігі және қатаң операциялық мәдениет (DQ, lineage, DR).

iGaming платформасындағы Data Lake рөлі

Талдау үшін шындықтың бірыңғай нүктесі: қайнар көзі мен форматына қарамастан шикі және тазартылған деректерді сақтау.
Икемділік: batch және streaming (CDC/коннекторлар, event-стримдер) қолдау.
Эволюция: дымқыл Bronze бастап конформды Silver және бизнес-витриналар Gold.
Жауапкершілікті бөлу: прод-сервистер шинаға/стейджингке жазады, аналитика/ML Lake қабаттарынан тұтынады.

Сәулет үлгілері: Lake vs Lakehouse

Data Lake (S3/ADLS/GCS + Parquet/ORC): schema-on-read, арзан сақтау орны, форматтардың икемділігі.
Lakehouse (Delta/Iceberg/Hudi Parquet үстінен): ACID-транзакциялар, upsert/merge, time-travel, ықшам файлдар, вакуум, индекстеу/кластерлеу.
Практика: iGaming үшін негізгі қабат ретінде Lakehouse тиімді, ал сыртқы OLAP (ClickHouse/BigQuery/Snowflake/Pinot) - витриналар мен арнайы қозғалтқыштар сияқты.

Қабаттардың медальон үлгісі

Bronze (Raw/Staging): көздерден алынған шикі файлдар (CDC, log-дампалар, серіктес CSV, webhooks). Минималды валидация, «қалай».
Silver (Conformed): тазалау/дедуп, валюта/уақыт белдеулерін қалыпқа келтіру, түрлерін келтіру, SCD өлшеу, консистенттік кілттер.
Gold (Marts/Serving): GGR/NGR/LTV/Retention арналған агрегаттар, BI/CRM/антифрод үшін материалданған витриналар.
TTL: Bronze агрессивті, Silver орташа, Gold агрегаттарында ұзақ мерзімді.

Пішімдер және кестелік қабаттар

Бағандылар: Parquet (де-факто стандарт), ORC.

Ашық кесте пішімдері (ACID):
  • Delta Lake - транзакциялар, «MERGE», time-travel, оңтайландыру/вакуум, Z-order.
  • Apache Iceberg - манифесттері/снапшоттары бар кестелер, жасырын партиялануы, 'MERGE/DELETE/UPDATE', time-travel.
  • Apache Hudi - copy-on-write/merge-on-read, upsert-оңтайландыру, инкрементальды алу.
  • Экожүйе және upsert/стриминг/схемалар эволюциясының икемділігіне қойылатын талаптар бойынша таңдаңыз.

Каталог және метастор

Бірыңғай каталог (Hive Metastore/Unity/Glue/платформалық каталогтар) схемаларды, партияларды, нұсқаларды, құқықтарды сақтайды.
Талаптар: кесте қабатымен транзакциялық үйлесімділік, бірнеше қозғалтқыштарды қолдау (Spark, Trino/Presto, Flink, dbt), audit/lineage.

Схемалар мен эволюция

Schema contract: міндетті өрістерді, түрлерді, семантиканы белгілеңіз; көздерін нұсқалаңыз ('schema _ version').
Эволюция: опциондық өрістерді қосу, көші-қонсыз бұзатын өзгерістерге тыйым салу; пайплайндардағы автоматты схема-чекерлер.
PII-сегментация: сезімтал өрістер - шифрлау және жеке құқықтармен жеке бағандарға/кестелерге.

Деректерді партияландыру және lay-out

Күні/сағаты - оқиғалар үшін негізгі кілт; 'country', 'product', 'tenant _ id' өрістері.
Hive-style путь: `s3://lake/bronze/payments/source=pspA/dt=2025-11-05/hour=13/part-0001. parquet`.
Кластерлеу/сұрыптау: Жиі сүзілетін өрістер бойынша Z-order/Sort keys (player_id, country).
Файл өлшемі: 128-1024 МБ; «small files» дегеннен аулақ болыңыз (төменде қараңыз).
Жасырын партиялануға арналған виртуалды бағандар (Iceberg/Delta).

small files және компакшн проблемасы

Көздер кішкентай күбілерді ағызады → сканерлер мен метадеректердің тозуы.
Шешім: мерзімді optimize/compaction (coalesce), compaction-тапсырмаларды жоспарлаушы, ingestion батч-микро-bundle, 'autoOptimize' (егер бар болса).
merge-on-read vs copy-on-write саясаты - жазу жасырындылығы мен оқу жылдамдығы арасындағы теңгерім.

Инжест: batch, stream, CDC

ALTP-ден CDC (Debezium/коннекторлар) → Bronze (минуттық жаңалық).
Stream (Kafka/Flink/Spark Structured Streaming) → Silver/Gold инкрементальды (upsert/merge).
Batch (серіктестік есептер/CSV/JSON) - манифесттері бар «қабылдағыштар» арқылы, checksum бойынша қосарларды бақылау.
Idempotency: кейінірек келген жазбалар үшін кілттер (idempotency_key), дедуп (key, ts), «су белгілері» (watermarks).

Деректер сапасы (DQ) және lineage

DQ-чектер: толықтығы, кілттердің бірегейлігі, диапазондары, референттік тұтастығы (елдер/валюталар тізімі), бизнес-ережелері (GGR ≥ 0).
Сызықтық: есепке тәуелділік бағаны, үлгі кодының нұсқасы және кесте снапшоты.
Схемаларды бақылау: «бұзатын» өзгерістерді бұғаттайтын автоматты back/forward-compat тестілері.
Жүктеу аудиті: кім/қашан/қанша, қабылданбаған партиялар, ретралар.

Сервинг және кіру

SQL қозғалтқыштары: ad-hoc және трансформациялар үшін Spark/Trino/Presto; ELT үлгілері үшін dbt.
Real-time/near-real-time: Pinot/Druid/ClickHouse витриналар ретінде; Lakehouse - инкременталды sink арқылы дереккөз.
Data Sharing: көшірмесіз сыртқы командаларға кестелер/снапшоттар шарингі (егер пішім қолдау көрсетсе).

Қауіпсіздік, PII және көп теңгерімділік

Шифрлау: at-rest (KMS) және in-transit (TLS).
IAM/RBAC/ABAC: каталог/кесте/баған/жол деңгейіндегі рөлдер (бүркемелеу, динамикалық саясат).
Өңірлер бойынша сегменттеу (ЕО/Түркия/ЛатАм оқшаулау): бакеттер мен есептеу пулдарын оқшаулау.
Мульти-теңдік: namespace/жол префикстері мен каталогтары, 'tenant _ id' бойынша сүзгілер, қосымша - row-level policies.
Қол жеткізу аудиті: оқу/метадеректерді өзгерту логтары, ретеншн және түрлендірілмейтін журналдар.

Құнды басқару

Сақтау сыныптары: стандартты сыныпта ыстық (жиі оқылатын), мұрағат - TTL-саясаты бар суық/Glacier-сыныптарында.
Партиялану/кластерлер $ $ кем → сканерлеуді азайтады.
Қымбат есептерге арналған материалданған сөрелер; BI нәтижелерінің кэші.
Компакшн және «файлдың дұрыс өлшемі» - метадеректер мен I/O-дан аз.
Квоталар және бюджеттеу: compute-кластерлерге/джобтарға арналған лимиттер, есептің/команданың күніндегі құны бойынша есептер.
Қоқысты жою: «VACUUM/REWRITE» кестелік пішімде, TTL Bronze.

DR және жаңғыртылуы

Кестелерді (time-travel) және каталог снапшоттарын нұсқалау.
Бакеттер мен метадеректерді кросс-өңірлік репликалау.
PITR: кестелердің транзакция журналдарын (Delta/Iceberg/Hudi) және пайплайн логтарын сақтау.
Game-day: аймақтарды қалпына келтіру және ауыстырып қосудың тұрақты жаттығулары.

Бақылау және SLO

SLO жас: Bronze ≤ 5 мин, Silver ≤ 15-30 мин, Gold ≤ 60 мин (мысал).
Өлшемдер: файлдардың көлемі/саны, паркет-файлдың орташа өлшемі, сканерлердің уақыты, өткізілген партиялардың үлесі, compaction жиілігі, құны/күні, DQ қателері, кешіктірілген деректер.
Алерттар: small files өрісі, құнның өсуі, p95/p99 деградациясы, DQ/схемалардың бұзылуы, ағын синктердің артта қалуы.

Нейминг және жолдар конвенциялары (шаблон)


s3://<lake>/<layer>/<domain>/<dataset>/
source=<sys>/      # для Bronze dt=YYYY-MM-DD/
hour=HH/
country=XX/

Датасеттер атаулары: 'bets _ raw', 'payments _ cdc', 'players _ silver', 'mart _ ggr _ daily'.
Баған-метадеректер: 'ingest _ ts', 'source', 'schema _ version', 'trace _ id', 'tenant _ id'.

Мысалдар (жалпылама)

1) Iceberg: күні бойынша жасырын партиясы бар Silver кестесі

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-ден инкременталды 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 үшін TTL саясаты (идея)


bronze/: keep 30 days silver/: keep 365 days (non-PII), 90 days (PII masked)
gold/marts/: keep 2–3 years (aggregated)

Енгізу чек-парағы

1. Кесте пішімін (Delta/Iceberg/Hudi) және каталогты таңдаңыз; (Spark/Trino/Flink/dbt).
2. Медальон қабаттарын, TTL ережелерін және командалардың жауапкершілігін анықтаңыз.
3. schema contracts, эволюцияны бақылау, PII-сегментация және шифрлау.
4. lay-out жобалаңыз: партиялар, сұрыптау кілттері, мақсатты файл өлшемі; compaction қосыңыз.
5. Ingest (CDC/stream/batch) дегендік пен дедуппен теңшеңіз.
6. DQ/lineage, метадеректер каталогын және аудитті қосыңыз.
7. SLO жаңаруын/құнын, дашбордтар метриктерін және алаңдарын анықтаңыз.
8. DR ұйымдастырыңыз: снапшоттар/репликалау/қалпына келтіру + тұрақты жаттығулар.
9. Нейминг пен жолдарды, метаколондарды стандарттаңыз ('ingest _ ts', 'source', 'schema _ version').
10. Gold-витриналарын және real-time сервингін қолайлы OLAP/RT-қозғалтқыштарына шығарыңыз.

Антипаттерндер

Бір жалпы «қап» қабаттары жоқ және TTL → хаос және жарылыс құны.
Ел/өнімді есепке алмағанда ғана уақыт бойынша партиялануы → ауыр сканерлер.
compaction жоқ, мыңдаған ұсақ файлдарды/сағатты құрайтын ағындар.
Схемаларды бақылаудың болмауы және DQ → «сындыратын» өзгерістер және есептерге сенімсіздік.
PII-ді Gold-витриналарымен құқықтарды жасырмай/бөлмей араластыру.
Каталог пен кестелік саясаттың орнына бакеттер деңгейінде қол жеткізу құқықтарының хардкоды.

Қазіргі заманғы Data Lake for iGaming - бұл ашық кесте форматы, бірыңғай каталог және медальон моделі бар Lakehouse. Схема/партия тәртібі, compaction vs small files, DQ/lineage, PII-қауіпсіздік және құндық гигиена lak-қабатты тұрақты іргетасқа айналдырады: арзан сақтау үшін, жылдам оқу үшін, SLO бойынша болжамды және DR. мұндай іргетас жарыс шыңдарына масштабталады және қолдайды және batch және near-real-time витриналары.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.