მონაცემთა პაკეტის დამუშავება
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, მოდელები და რეტროპროცესები.
- ოქროს ყოველდღიური ფანჯრები მზად არის ადგილობრივი დროით 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 განახლებები.
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: „ადრე/შემდეგ“ მოკლე შედარებისთვის.
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'.
- ნორმალიზაცია და სტანდარტიზაცია: FK/საცნობარო წიგნები, დედაპლატი, FX/ტაიმსონები.
- ფაქტების/გაზომვების ცხრილები (3NF/BCNF), SCD ძირითადი გაზომვებისთვის.
- დენორმალიზებული ფანჯრები 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).
- ცვლილებების ავტომატური სიმულაცია (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, დაკვირვებისა და ცნობიერი ეკონომიკის პრინციპების გათვალისწინებით, თქვენ მიიღებთ სტაბილურ ოქროს ფანჯრებს და მოხსენებებს, რომლებიც შემოწმებულია კრიკეტებით და მზად არიან აუდიოსთვის ნებისმიერ დროს.