GH GambleHub

ETL/ELT գործընթացներ

1) Նշանակումն ու համատեքստը

ETL/ELT փոխակրիչները ապահովում են կանխատեսելի բեռնումը, փոխակերպումը և տվյալների հրապարակումը հաշվետվությունների համար (GGR/NGR, կարգավորիչներ), վերլուծաբանները/ML և գործառնական։

ETL: Մենք վերափոխում ենք մինչև SNH/Lakehouse-ում (ավելի քիչ ժամանակակից ոճերում)։

ELT: Նախ բեռնում ենք Lakehouse-ում (Bronze/Silver), ապա փոխակերպում ենք SQL/շարժիչները (velovano)։

2) Ստանդարտ ճարտարապետությունը

1. Ingest/Edge: HTTP/gRPC/Batch, CDC OLTP-ից, պրովայդերական S3/FTP դուրս։

2. Bronze (rance, append-only) 'անփոփոխ payload' a, ամսաթվով/շուկա/tenantu։

3. Silver (clean/www.orm) 'նորմալացում, dedup, գրողներ, SCD, FX/timzons։

4. Gold (serve): BI/կարգավորող/մոդել։

5. Նվագախումբը ՝ Airflow/Dagster/Winf.ru (DAG 'և, SLA, retray, շարժումներ)։

6. DQ/Contracts: Schema Registry + DQ-как-код, consumer-driven tests.

7. Դիտարկումն այն է, որ պիտակները, lineage, logs, cost-dashbords։

3) ETL vs ELT ընտրությունը

ՔննադատությունETLELT (ELT)
Վերափոխման ճկունությունցածր էբարձր (time-travel, reprocessing)
Արժեքըավելի թանկ է աճի ժամանակօպտիմալ է մեծացման ժամանակ
Որակի վերահսկումingestSilver/Gold + DQ-ի վրա կոդը
Պատմականություն/ֆորենզիկասահմանափակ էԱմբողջական (Bronze append-only)

Պրակտիկա 'iGaming-ELT + CDC-ում, արագ բեռնում ենք, հետո ստանդարտացնում և հավատում։

4) Redrects և CDC

Այնտեղ ինտեգրման մոտեցումները

CDC (Debez.ru/log-redication): OLTP-ի փոփոխությունները Bultze no MERGE-ում Silver-ում։

Watermark-ը ժամանակի ընթացքում '«contated _ at> max _ loaded _ ts»։

Հաշ-2019 'համեմատություն' «md5 (row)» փոփոխման համար։

Ups.ru/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/Avro/Corobuf Registry; «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' և, կախված, SLA

DAG դիզայն 'աղբյուրներից մինչև վիտրիններ։ ակնհայտ կախվածություն առաջադրանքների միջև։

Retrai և impotenty: backoff, «մաքուր» կրկնություններ, www.kpoint 'a։

Տեղաշարժեր (catchup) 'բաց թողած ժամանակահատվածների կոկիկ դոգոն։

SLA 'օրինակ, Gold։ daily պատրաստ է մինչև 06: 00 ռուսական ժամանակ; խախտումների մասին նախազգուշացում։

Դելբրիզացիա 'շուկաներ/տենանտներ/ամսաթվերը vars-ի միջոցով։ ձևանմուշ է։

8) Idempotenty և exactly-once

Ingest: կրկնօրինակները հնարավոր են www.dedup '(event _ id, source) "։

Մշակման մեջ 'ups.ru/merge; «մաքուր» տրանսֆորմացիայի գործառույթները։

Sink 'գործարքային համայնքներ կամ idempotent writes; «կրկնակի հաշվարկի վերահսկումը»։

Medibox/Inbox: OLTP-ի արբիտրաժային իրադարձությունների գործարքային հրատարակումը։

9) Backfill и reprocessing

Backfill 'առաջնային լրացում/պատմական միջակայքներ։

Reprocessing: Վերահաշվարկ տրամաբանության/ուղղությունների փոփոխության ժամանակ։

Guardrails: Միջանցքների, քվոտաների, ժամանակի պատուհանների, www.y-run համեմատությամբ։

Մակնշումը '«logic _ version», «reprocessed _ at», «recalc _ reason»։

10) Silver/Gold մոդելավորումը

Silver (3NF/BCNF): փաստեր "fact _ bets/payments/payouts", չափումներ 'dult _ users/games/providers/markets (SCD II) ", արժույթի/թայմզոնի ստանդարտացում։

Gold: դենորմալիզացված վիտրիններ 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-նվազեցումը 'տոկենիզացիա; mappings իրական ID-ն մեկուսացված կոնտեքստում։

RSA/CLS 'դերերի/հայտարարությունների հասանելիության քաղաքականություն, դիմակավորում։

Residency: առանձին կոմպոզիցիաներ և/բանալիներ EFC/UK/III համար; խաչաձև-տարածաշրջանային ջոինի արգելքը առանց հիմքի։

DSAR/RTBF & Legal Hold 'ընտրական խմբագրություններ, WORM արխիվներ հաշվետվությունների համար, օրինագծերի աուդիտ։

12) Դիտարկումը և SLO-ն

SLI/SLO ուղեցույցները

Freshness Silver p95-15 րոպե; Gold daily-ը պատրաստ է մինչև 06: 00 լոկ։ ժամանակը։

Completeness ≥ 99. 5%, Validity (սխեմա) 3699։ 9%.

Jb's 499 հաջողությունը։ 0%, MTTR 2424-48 ռուբլիներ

Dashbords: Freshness heatmap, DQ-2019, cost/query & cost/GB, lineage գրաֆիկ։

13) Արտադրողականությունը և արժեքը

Կուսակցությունը 'ամսաթիվը/շուկան/տենանտ; կլաստերիզացիա/Z-order ֆիլտրերի վրա։

Մոսկվա: Parquet + ACID (Delta/Iceberg/Hudi), ագրեսիան և վիճակագրությունը։

Կոմպակտիա 'small enses (OPTIMIZE/VACUUM) դեմ պայքարը։

Նյութականացում 'կայուն ագրեգատներ; խուսափել հսկա on-the-fly join-ից։

Chargeback: Բյուջեներ, քվոտաներ/backfill; պլանավորում ցածր բեռի պատուհանում։

14) DAG տեսակի առաջադրանքների օրինակներ (կեղծ 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): Windows Engineering (DAG "և, Silver/Gold մոդելները), Pro 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 Bultze/Silver (ACID) + CDC/rements Payments/Gameplay համար։

2. DQ-ի կոդը (10-15 կանոններ) և Freshness/Completeness հիմնական dashbords։

3. Առաջին Gold-վիտրինը (GGR Daily) SLA-ից «մինչև 06: 00», WORM էքսպորտը ստորագրությամբ։

4. DAG-ի և SLA/DQ-ի ալտերտերը։

Aleksanda 2 (5-10 շաբաթ)

Օրինագծերի ընդլայնումը, SCD II-ը users/games/providers-ի համար։

Սեմանտիկ շերտը մետրիկ է։ lineage/impact-վերլուծություն; backfill/reprocessing։

Ռեգիոնալիզացիան (EFC/UK), RSA/CLS, արժեքի վերահսկումը (քվոտաներ/chargeback)։

Բրազիլիա 3 (10-16 շաբաթ)

Repley-սիմուլյատոր (what-if), փաստաթղթերի ավտոմատ արտադրություն վիտրին/մետրիկ։

Cost-օպտիմիզացիա (կլաստերիզացիա, նյութականացում, TTL, կոմպակտիա)։

DR ուսուցումները և Time-travel վերականգնումը։

17) Չեկ թուղթ մինչև վաճառելը

  • Պայմանագրեր/սխեմաներ Registry-ում, թեստերը կանաչ են։
  • CDC/wwww.rems և MERGE idempotent; ingest.
  • DQ կանոնները ակտիվ են (critical profail + DLQ), SLA-dashbords-ը։
  • Gold-վիտրինները փաստագրված են, սիմվոլիկ շերտում մետրային բանաձևը։
  • RBAC/ABAC, ծածկագրում, բնակություն, DSAR/RTBF/Legal Hold ստուգված են։
  • Կոմպակտիա/OPTIMIZE/VACUUM գրաֆիկի վրա; լիմիտներ backfill/repley։
  • Runbook "և reprocessing, ածխաջրածինների աուդիտ (WORM + hash)։

18) Anti-patterns և ռիսկեր

Fultreload «ամեն դեպքում», օգտագործեք CDC/wwww.rems։

Հում և հաշվետվական տվյալների խառնուրդը 'պահեք Bronze/Silver/Gold առանձին։

DQ-ի և lineage-ի բացակայությունը 'չկա ապացույց և վերարտադրողականություն։

PII-ը վերլուծական շերտերում 'մեկուսացրեք մապինգները, օգտագործեք CLS/RTS-ը։

Մոնոլիտ «գիշերային» ջոբները 'drobite, զուգահեռ կուսակցություններին։

Արժեքի անտեսումը 'հետևեք small-ի, նյութափոխանակության, քվոտաների։

19) Գլոսարիա (հակիրճ)

ETL/ELT - ոլորտ/փոխակերպում/բեռնում (մինչև/բեռնումից հետո)։

CDC-ն փոփոխությունների գրավումն է։

SCD-ը մրցույթի պատմությունն է (I/II/III)։

WORM-ը հաշվետվական տեղեկատվության անփոփոխ պահպանումն է։

Time-travel-ը աղյուսակների պատմական տարբերակների ընթերցումն է։

20) Արդյունքը

Ժամանակակից ETL/ELT-ը ոչ թե ջութակներ են, այլ կառավարվող պլատֆորմ 'պայմանագրեր և DQ, idempotent directions/CDC, Bronze/Silver/Gold, դիտարկումը և SLO-ն, մասնավորությունը և տնտեսությունը։ Հետևելով այս առաջնորդությանը ՝ դուք կստանաք վերարտադրված և ստուգված փոխակրիչներ, կայուն սնուցող հաշվետվություններ, ապրանքներ և մոդելներ մասշտաբով և առանց անակնկալների։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։