GH GambleHub

ETL/ELT жараяндар

1) Максаты жана контексти

ETL/ELT конвейерлери отчеттуулук (GGR/NGR, жөнгө салуучу), аналитика/ML жана оперативдүү панелдер үчүн болжолдуу жүктөөнү, трансформацияны жана маалыматтарды жарыялоону камсыз кылат.

ETL: DWH/Lakehouse жүктөп чейин өзгөртүп (азыраак заманбап Stack).
ELT: Адегенде Lakehouse (Bronze/Silver) жүктөп, андан кийин SQL/кыймылдаткычтар (сунуш кылынат).

2) Эталондук архитектура

1. Ingest/Edge: HTTP/gRPC/Batch, АЛТПдан CDC, провайдердик S3/FTP жүктөмөлөр.
2. Bronze (raw, append-only): өзгөрүлбөс payloads, датасы/рыногу/тенанты боюнча партия.
3. Silver (clean/conform): нормалдашуу, дедуп, маалымдамалар, SCD, FX/убакыт зоналары.
4. Gold (serve): BI/жөнгө салуучу/моделдердин астында денормалдаштырылган терезелер.
5. Оркестр: Airflow/Dagster/Prefect (DAG 'i, SLA, ретра, жылыштар).
6. DQ/Contracts: Schema Registry + DQ-как-код, consumer-driven tests.
7. Байкоо: Pipeline метрика, сызык, Логи, cost-дашборд.

3) ETL vs ELT тандоо

КритерийETLELT (сунушталган)
Кайра эсептөөнүн ийкемдүүлүгүтөмөнжогорку (time-travel, reprocessing)
Баасычоңойгондо кымбатыраакмасштабдоодо оптималдуу
Сапатты көзөмөлдөөingestSilver/Gold + DQ-Code
Тарыхый/Forensicsчектелгентолук (Bronze append-only)

Практика: iGaming - ELT + CDC: тез жүктөп, андан кийин стандартташтыруу жана эсептөө.

4) Инкременттер жана CDC

Дельта жолдору:
  • CDC (Debezium/лог-репликация): Silver АЛТП → Bronze → MERGE өзгөрүүлөр.
  • Watermark убакыт боюнча: 'updated _ at> max_loaded_ts'.
  • Хэш-дифф: 'md5 (row)' өзгөрүүлөрдү аныктоо үчүн салыштыруу.
  • Upsert/MERGE: жүктөмөлөрдүн ыктымалдыгы.
Мисалы, MERGE (Delta/Iceberg):
sql
MERGE INTO silver. payments s
USING stage. payments_delta d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

5) Келишимдер жана схемалар

Schema-first: JSON/Euro/Protobuf каттоо; 'schema _ version' окуяларда/файлдарда.
Эволюция: back-compatible (nullable кошуу); breaking - '/v2 '+ кош жазуу.
Милдеттүү талаалар: 'event _ time (UTC)', 'event _ id', 'trace _ id', 'user _ pseudo _ id', 'market'.

6) DQ-сыяктуу-код (минималдуу топтому)

yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: unique_tx # uniqueness of transactions type: unique columns: [transaction_id]
severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical

7) Оркестр: DAG 'i, көз карандылык, SLA

DAG-дизайн: булактан терезелерге; милдеттердин ортосундагы айкын көз карандылыктар.
Retray жана демпотенттик: backoff, "таза" кайталоо, checkpoint's.
Жылыштар (catchup): өткөрүлгөн мезгилдердин тыкан догону.
SLA: Мисалы, Gold. daily жергиликтүү убакыт 06:00 чейин даяр; бузуулар жөнүндө эскертүүлөр.
Параметрлештирүү: рыноктор/тенанттар/даталар аркылуу vars; job's бирдиктүү үлгүсү.

8) Idempotentity жана exactly-once

На ingest: дубликаты мүмкүн → дедуп боюнча '(event_id, source)'.
Иштетүү: upsert/merge; "таза" трансформация функциялары.
В sink: транзакциялык коммиттер же idempotent writes; "кош эсепке алууну" көзөмөлдөө.
Outbox/Inbox: OLTP домендик окуялардын транзакциялык жарыялоо.

9) Backfill и reprocessing

Backfill: баштапкы толтуруу/тарыхый диапазондор.
Reprocessing: логика өзгөргөндө/түзөтүүлөрдө кайра эсептөө.
Guardrails: диапазондордун чектери, квоталар, убакыт терезелери, метриктерди салыштыруу менен dry-run.
Маркировка: 'logic _ version', 'reprocessed _ at', 'recalc _ reason'.

10) Silver/Алтын моделдөө

Silver (3NF/BCNF): фактылар 'fact _ bets/payments/payouts', өлчөө 'dim _ users/games/providers/markets (SCD II)', валюталарды/таймзондорду стандартташтыруу.
Алтын: BI/жөнгө салуучу/моделдердин астында Денормалдаштырылган терезелер; өзгөрүлбөс экспорттук топтомдор (WORM) + кол.

Gold мисал: GGR Daily

sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
b. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;

11) Купуялык жана резиденттик

PII-минималдаштыруу: tokenization; обочолонгон контурда чыныгы ID карталарды.
RLS/CLS: ролдор/юрисдикциялар боюнча жетүү саясаты, жашыруу.
Residency: EEA/UK/BR үчүн өзүнчө каталогдор/ачкычтар; негизсиз кросс-аймактык join's тыюу салуу.
DSAR/RTBF & Legal Hold: тандоо редакторлору, отчеттуулук үчүн WORM-Archives, экспорттук аудит.

12) Байкоо жана SLO

SLI/SLO багыттары:
  • Freshness Silver p95 ≤ 15 мин; Gold daily 06:00 лок чейин даяр. убакыт.
  • Completeness ≥ 99. 5%, ырааттуулугу (схема) ≥ 99. 9%.
  • job's ийгилиги ≥ 99. 0%, MTTR окуялар ≤ 24-48 саат.

Dashbord: Freshness heatmap, DQ-жоготуу Huni, cost/query & cost/GB, сызык.

13) аткаруу жана наркы

Партиялаштыруу: дата/рынок/тенант; кластерлештирүү/Z-order чыпкалар боюнча.
Форматтар: Parquet + ACID (Delta/Iceberg/Hudi), компрессия жана статистика.
Компакция: small files (OPTIMIZE/VACUUM) менен күрөшүү.
Материалдаштыруу: туруктуу агрегаттар; алп on-the-fly join's алыс.
Chargeback: бюджеттер, репликалар/backfill боюнча квоталар; аз жүктөө терезелерде пландаштыруу.

14) ТОО типтүү милдеттердин мисалдары (Airflow псевдокод)

python with DAG("elt_payments_daily", schedule="@daily", start_date=..., catchup=True) as dag:
extract = BashOperator(task_id="extract_cdc", bash_command="run_cdc_to_bronze. sh {{ ds }}")
load  = BashOperator(task_id="load_to_silver", bash_command="sql/run_merge_silver. sql {{ ds }}")
dq   = BashOperator(task_id="dq_checks", bash_command="dq/run_checks. sh silver. payments {{ ds }}")
gold  = BashOperator(task_id="build_gold_ggr", bash_command="sql/build_gold_ggr. sql {{ ds }}")
export = BashOperator(task_id="export_regulator", bash_command="export/run_worm_pack. sh {{ ds }}")

extract >> load >> dq >> gold >> export

15) Процесстер жана RACI

R (Responsible): Data Engineering (DAG 'i, Silver/Gold моделдери), Data Platform (infra, Registry, DQ).
A (Accountable): Head of Data/CDO.
C (Consulted): Compliance/Legal/DPO (PII/residency/Legal Hold), Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Informed): BI/Продукт/Маркетинг/Операциялар.

16) Ишке ашыруунун жол картасы

MVP (3-5 жума):

1. Lakehouse Bronze/Silver (ACID) + CDC/Payments/Gameplay үчүн инкременттер.

2. DQ-Code (10-15 эрежелери) жана Freshness/Completeness базалык дашборддору.

3. SLA менен биринчи Gold-дисплей (GGR Daily) "06:00 чейин", кол менен WORM-экспорт.

4. DAG оркестри жана SLA/DQ боюнча алерта.

2-этап (5-10 жума):
  • Домендерди кеңейтүү, users/games/providers үчүн SCD II.
  • Метриканын семантикалык катмары; lineage/impact-талдоо; backfill/reprocessing жол-жоболору.
  • Регионалдаштыруу (EEA/UK), RLS/CLS, нарк контролдоо (квота/chargeback).
Этап 3 (10-16 жума):
  • Replay-симулятор (what-if), Autogeneration Documentation Display/метрик.
  • Cost-оптималдаштыруу (кластерлештирүү, материалдык, TTL, компакция).
  • DR-машыгуу жана убакыт-саякат калыбына келтирүү.

17) Азык-түлүктүн алдындагы чек-тизме

  • Registry келишимдер/схемалар, шайкештик тесттер жашыл.
  • CDC/инкременттер жана MERGE болуп саналат; дедуп боюнча ingest.
  • DQ эрежелери активдүү (critical → fail + DLQ), SLA-дашборддор орнотулган.
  • Алтын-терезелер документтештирилген, семантикалык катмардагы метрикалык формулалар.
  • RBAC/ABAC, шифрлөө, резиденттүүлүк, DSAR/RTBF/Legal Hold текшерилген.
  • Compaction/OPTIMIZE/VACUUM тартиби боюнча; backfill/репликаларга лимиттер.
  • Runbook 'жана окуялар жана reprocessing, экспорттук аудит (WORM + hash).

18) Анти-үлгүлөрү жана тобокелдиктер

Full reload "болгон учурда": CDC/инкременттерди колдонуу.
Чийки жана отчеттук маалыматтарды аралаштыруу: Bronze/Silver/Gold өзүнчө сактаңыз.
Жок DQ жана сызык: эч кандай далилдөө жана кайталоо.
Аналитикалык катмарларда PII: Mapping, CLS/RLS колдонуу.
Монолиттүү "түнкү" джобдор: бөлүү, партияларга параллелдүү.
Ignor наркы: small files мониторинг, агрегаттарды материалдык, квота киргизүү.

19) Глоссарий (кыскача)

ETL/ELT - чыгаруу/өзгөртүү/жүктөө (жүктөө чейин/кийин).
CDC - өзгөрүүлөрдү басып алуу.
SCD - өлчөө тарыхы (I/II/III).
WORM - отчеттук пакеттерди туруктуу сактоо.
Time-travel - таблицалардын тарыхый версияларын окуу.

20) Жыйынтык

Заманбап ETL/ELT скрипттер эмес, башкарылуучу платформа болуп саналат: келишимдер жана DQ, Идемпотенттик инкременттер/CDC, Bronze/Silver/Gold катмарынын дисциплинасы, байкоо жана SLO, купуялык жана үнөмдүүлүк. Бул көрсөтмөнү ээрчип, сиз ойнотула турган жана текшерилүүчү конвейерлерди, туруктуу отчеттуулукту, масштабда жана сюрпризсиз продукцияны жана моделдерди аласыз.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.