GH GambleHub

მონაცემთა პაკეტის დამუშავება

1) დანიშნულება და ღირებულება

Batch კონვეიერები ქმნიან საიმედო ყოველდღიურ/საათობრივ ფანჯრებს:
  • მარეგულირებელი და ფინანსური ანგარიშგებები (GGR/NGR, გადასახადები, RG/AML რეესტრები).
  • BI და სასურსათო ანალიტიკოსები (კოჰორტები, LTV, კონვერსიული ძაბვები).
  • სიზუსტის შედუღება (OLTP) DWH, პროვაიდერები/PSP), ისტორიები (SCD).
  • Fiches- ისა და სასწავლო კომპლექტების მომზადება ML- სთვის.

ძირითადი თვისებები: პროგნოზირება, სისრულე, რეპროდუქცია, მონაცემთა ერთეულის დაბალი ღირებულება.

2) არქიტექტურა (რეფერენდუმი)

1. Ingest (raw capture): HTTP/gRPC, CDC OLTP- დან, პროვაიდერის გადმოტვირთვები Bronze.
2. Lakehouse: Bronze (raw, append-only) → Silver (clean/conform) → Gold (serve).
3. ორკესტრი: Airflow/Dagster/Prefect (DAG "და, დამოკიდებულია რელეზე, SLA).
4. დამუშავება: Spark/Trino/DBT/SQL ძრავები; განაწილება და ACID ფორმატები (Delta/Iceberg/Hudi).
5. DQ და კონტრაქტები: Schema Registry, DQ წესები (YAML/SQL), consumer-tests.
6. სერვინგი: BI/სემანტიკური ფენა, საანგარიშო ექსპორტები (CSV/PDF/JSON + hash), API/GraphQL.
7. დაკვირვება: paypline, lineage, logs, ღირებულება (cost/GB, cost/query).

3) სიხშირეები და SLAs

ყოველდღიური (D + 1 06:00 საათამდე ლოკი.) : GGR მოხსენებები, მარეგულირებელი გადმოტვირთვის, კრეკერების.
საათობრივი/კვაზირეალტიმი: ოპერატიული პანელები Ops/Finance.
ყოველკვირეული/ყოველთვიური: finconsolidation, მოდელები და რეტროპროცესები.

რეკომენდებული SLO:
  • ოქროს ყოველდღიური ფანჯრები მზად არის ადგილობრივი დროით 06:00 საათამდე.
  • Freshness Silver p95-15 წთ მიკრობატებისთვის/2 საათი დღისით.
  • Completeness ≥ 99. 5%, Validity (სქემა) - 99. 9%.

4) CDC

მიდგომები:
  • CDC (Change Data Capture): Debezium/log რეპლიკაცია - Bronze - შემცირება Silver- ში.
  • დროულად Watermark: 'განახლება _ at> max _ loaded _ ts'.
  • ჰეშის შედარება: 'md5 (wow)' დეტალური ცვლილებებისთვის.
  • Upsert/Merge: Silver/Gold idempotent განახლებები.
მაგალითი MERGE (Delta/Iceberg):
sql
MERGE INTO silver. payments AS s
USING staging. payments_delta AS d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

5) SCD (გაზომვის ისტორიალიზაცია)

SCD I: გადაწერა (მართლწერა, უმცირესობის კორექტირება).
SCD II: სრული ფუნქციონალური ისტორია ('valid _ from/valid _ to/is _ current').
SCD III: „ადრე/შემდეგ“ მოკლე შედარებისთვის.

SCD II (მაგალითი):
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. country <> u. country OR t. rg_status <> u. rg_status)
THEN UPDATE SET t. is_current = FALSE, t. valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED
THEN INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);

6) Backfill и Reprocessing

Backfill: პირველადი შევსება/ისტორიული დატვირთვა.
Reprocessing: ფანჯრების გადაანგარიშება ლოგიკის/მონაცემების კორექტირების შემდეგ.

პრინციპები:
  • Idempotence (MERGE/upsert), Bronze უცვლელი, ლოგიკის ვერსია.
  • Time travel განმეორებითი პროგონებისთვის; მეტამონაცემები.
  • Guardrails: დიაპაზონის, კვოტების და კონკურენტული ჯობის შეზღუდვა.
  • დოკუმენტაცია: runbook ნაბიჯებით და დასრულების კრიტერიუმებით.

7) ფენის მოდელირება

Bronze:
  • Append-only, წვეულებები 'event _ date', 'jurisdiction', 'tenant'.
  • შეინახეთ ორიგინალური payload (გაფართოებისთვის), ჩაწერეთ 'ingested _ at'.
Silver:
  • ნორმალიზაცია და სტანდარტიზაცია: FK/საცნობარო წიგნები, დედაპლატი, FX/ტაიმსონები.
  • ფაქტების/გაზომვების ცხრილები (3NF/BCNF), SCD ძირითადი გაზომვებისთვის.
Gold:
  • დენორმალიზებული ფანჯრები BI/მარეგულირებელი/ფინანსების ქვეშ, მზადყოფნის SLA.
  • აგრეგატების მატერიალიზაცია; მუდმივი ექსპორტის ნიმუშები (hash + WORM).

8) მონაცემთა ხარისხი (DQ კოდი)

YAML წესების მაგალითი Silver- ისთვის:
yaml table: silver. payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: unique_tx type: unique columns: [transaction_id]
severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical

რეაქციის პოლიტიკოსები: critical-fail job + DLQ; major/minor + ჭდე + ანგარიში.

9) სემანტიკური ფენა და მოხსენებები

მეტრიკის ერთიანი განმარტებები (GGR/NGR, ARPU, Retention) semantic-layer/metrics-store.
მეტრიკის ვერსია; ინტეგრაცია BI/საექსპორტო პაკეტებთან.
მოხსენებები: CSV/JSON/PDF + sha256, გადმოტვირთვის ჟურნალი და იურიდიული Hold, საჭიროების შემთხვევაში.

10) კონფიდენციალურობა, რეზიდენცია, უსაფრთხოება

PII მინიმიზაცია: მომხმარებლის ფსევდონიმი; mapping - ცალკეულ დაცულ წრეში.
მონაცემთა აღდგენა: ცალკეული კატალოგები/გასაღებები EEA/UK/BR; ჯვარედინი რეგიონალური join 'აკრძალვის გარეშე.
დაშიფვრა: TLS in-transit; KMS/CMK at-rest; ექსპორტის კონტროლი.
DSAR/RTBF: გამოთვლილი პროექციები, შერჩევითი რედაქტორები; დაშვების აუდიტი.
Legal Hold: WORM არქივები მარეგულირებელი არტეფაქტებისთვის.

11) პროდუქტიულობა და ღირებულება

განაწილება თარიღი/ბაზარი/ტენანტი; Z-order/cluster ხშირი პრედიკატებით.
ფორმატები: Parquet + ACID ცხრილი; კომპრესია/სტატისტიკა, OPTIMIZE/VACUUM.
მატერიალიზაცია: სტაბილური აგრეგაციები გოლდში; თავიდან აიცილოთ „მონოლითური“ ჯობი.
კვოტები/ბიუჯეტები: გუნდები; backfill/მძიმე მოთხოვნების შეზღუდვები.
დაგეგმვა: დაბალი დატვირთვის ფანჯრები (ღამე/შაბათ), რიგების პრიორიტეტები.

12) დაკვირვება და კონტროლი

payplines მეტრიკა: duration, success rate, retries, rows processed, cost/query.
DQ მეტრიკა: completeness, validity, uniqueness, FK შეცდომები, დრიფტი.
Freshness heatmap: დომენებსა და ბაზრებზე; SLA დაშბორდები.
ხაზები: წარმოშობა Bronze- დან მოხსენებამდე; ცვლილებებამდე impact ანალიზი.
ალერტები: SLO ბიუჯეტები, DQ დეგრადაცია, შეფერხებები, ღირებულების ზრდა.

13) SQL/მოდელების მაგალითები

ვალუტის ნორმალიზაცია:
sql
CREATE OR REPLACE TABLE silver. payments AS
SELECT p. transaction_id,
p. user_pseudo_id,
p. currency,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
p. market,
CAST(p. event_time AS TIMESTAMP) AS event_time
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time)
AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';
GGR (Gold) ყოველდღიური ვიტრინა:
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;
სისრულის კონტროლი (DQ SQL):
sql
SELECT market, event_date, COUNT() AS n
FROM silver. fact_bets
GROUP BY market, DATE(event_time) AS event_date
HAVING n = 0;

14) პროცესები და RACI

R (Responsible): Data Engineering (DAG 'და, Silver/Gold მოდელები), Data Platform (infre, სქემის რეესტრი, DQ).
A (Accountable): Head of Data / Chief Data Officer.
C (Consulted): Compliance/Legal/DPO (PII/retention), Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (ინფორმირებული): BI/პროდუქტი/მარკეტინგი/ოპერაციები.

15) გზის განხორციელების რუკა

MVP (4-6 კვირა):

1. Lakehouse Bronze/Silver (ACID ფორმატი), CDC/ნიშნები 2-3 დომენისთვის.

2. DQ-როგორც კოდი: 10-15 წესები Payments/Gameplay + CI.

3. პირველი ოქროს ვიტრინა (GGR Daily) SLA- დან 06:00 საათამდე; საანგარიშო ექსპორტი + hash.

4. დაშბორდები Freshness/Completeness/Cost, ძირითადი ალერტები.

ეტაპი 2 (6-12 კვირა):
  • SCD II для users/games/providers; დომენების გაფართოება.
  • სემანტიკური მეტრიკის ფენა; კრიპტები OLTP/პროვაიდერებთან (accuracy).
  • backfill/reprocessing, lineage და impact ანალიზი, რეგიონალიზაცია (EEA/UK).
ეტაპი 3 (12 + კვირა):
  • ცვლილებების ავტომატური სიმულაცია (dry-run), ბიუჯეტები/კვოტები, chargeback.
  • ავტომატური დოკუმენტაცია (მონაცემთა წარმოების პაკეტები), DR სავარჯიშოები და time travel აღდგენა.
  • ღირებულების ოპტიმიზაცია (კლასტერიზაცია, მატერიალიზაცია, TTL, ვაკუუმი).

16) ჩეკის სია გაყიდვამდე

  • კონტრაქტები და სქემები Registry- ში, თავსებადობის ტესტები მწვანეა.
  • ინკრეტული დატვირთვები/CDC მუშაობს, MERGE არის idempotent.
  • DQ წესები აქტიურია; critical → fail + DLQ; ანგარიში დარღვევების შესახებ.
  • SLA/დაშბორდები ახალი/სისრულე; ალერტები განწყობილნი არიან.
  • პოლიტიკოსები PII/DSAR/RTBF/Legal Hold დადასტურებულია Legal/DPO.
  • Runbook 'და backfill/reprocessing/DR ტესტირება.
  • ღირებულება კონტროლდება (cost/query, cost/GB, კვოტები).

17) ანტი-ნიმუშები და როგორ ავიცილოთ თავიდან

მონოლითური ღამის ჯობი: ამოიღეთ დამოუკიდებელი ნაბიჯები, პარალელურად წვეულებებზე.
Full-reload საჭიროების გარეშე: გამოიყენეთ შემცირება/CDC/მერჯი.
PII- ის ნაზავი ანალიტიკაში: ცალკე შეინახეთ mappings, გამოიყენეთ CLS/RLS.
DQ/ხაზის ნაკლებობა: შემოიტანეთ DQ კოდი და დააკვირდით წარმოშობას.
"სახელმძღვანელო" backfill ": ავტომატიზაცია და დოკუმენტაცია, შეზღუდეთ დიაპაზონი.
უკონტროლო ღირებულება: კლასტერიზაცია, მატერიალიზაცია, რეპროდუქციის პოლიტიკა.

18) გლოსარიუმი (მოკლედ)

CDC არის OLTP- ში ცვლილებების მიღება.
SCD - ნელა იცვლება გაზომვები (I/II/III).
Lakehouse - მონაცემთა lake + ACID ცხრილი.
MERGE/Upsert არის idempotent განახლების ოპერაციები.
Time-travel - ცხრილების ისტორიული ვერსიების კითხვა.
WORM - არტეფაქტების უცვლელი შენახვა.

19) შედეგი

პაკეტის დამუშავება არის პროგნოზირებადი, რეპროდუცირებული და კომპლაციური კონვეიერის დისციპლინა. Schema-first- ის პრინციპების, ჩანაწერების/CDC, SCD ისტორიების, DQ-on-code, დაკვირვებისა და ცნობიერი ეკონომიკის პრინციპების გათვალისწინებით, თქვენ მიიღებთ სტაბილურ ოქროს ფანჯრებს და მოხსენებებს, რომლებიც შემოწმებულია კრიკეტებით და მზად არიან აუდიოსთვის ნებისმიერ დროს.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.