GH GambleHub

მონაცემთა ტბები და ნაკადების აგრეგაცია

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

Data Lake/Lakehouse არის გრძელვადიანი შენახვისა და ფართომასშტაბიანი კითხვის დამხმარე ფენა, სადაც:
  • პროდუქტებიდან/თამაშებიდან/გადასახადებიდან ნაკადები დაეშვა Bronze- ში „როგორც არის“.
  • ვერცხლი ნორმალიზდება და ამდიდრებს, უზრუნველყოფს შეთანხმებულ გასაღებებს და ხარისხს.
  • Gold არის საერთო ფანჯრები (მათ შორის real/near-real-time) BI, მარეგულირებელი, ანტიფროდი/RG.

ნაკადების დაყოფა Lakehouse- ზე იძლევა: ანგარიშის დაბალი შეფერხება, პროგნოზირებადი ღირებულება, რეპროდუქცია და წინსვლა.

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

1. Ingest/Edge: HTTP/gRPC, OTel, batch endpoints → шина (Kafka/Redpanda).
2. Bronze (append-only): ობიექტის საცავი + ACID ცხრილი (Delta/Iceberg/Hudi), ნაწილი by date/barket/tenant; საწყისი payload- ის შენახვა.
3. Stream Compute: Flink/Spark/Beam - ფანჯრის განყოფილებები, CEP, დედაპლატი, ონლაინ-lookups.
4. Silver (clean/conform): ვალუტების/დროის ნორმალიზება, FK/საცნობარო წიგნები, SCD გაზომვებისთვის.
5. Serving/OLAP: ClickHouse/Pinot/Druid - მატერიალიზებული წუთიანი/წამიანი პანელის ერთეული.
6. Gold (serve): დღის/საათის ფანჯრები, მარეგულირებელი ნაჭრები, უცვლელი საექსპორტო პაკეტები (WORM).
7. საკონტროლო კონტურები: Schema Registry, DQ კოდი, ხაზოვანი, კატალოგები, საიდუმლოებები/KMS, RBAC/ABAC.

3) კონტრაქტები და სქემები

Schema-first: JSON/Avro/Protobuf; სავალდებულო ველები: 'event _ time (UTC)', 'event _ id', 'trace _ id', 'user _ pseudo _ id', 'barket', 'schema _ version'.
ევოლუცია: უკუკავშირი, დამატების არალეგალური; breaking '/v2 '+ ორმაგი ჩანაწერი.
კატალოგი: დომენის აღწერა, მფლობელი, SLA სიახლე, DQ წესები, ხაზები.

4) ტბაში ნაკადების დაშვება

Exactly-once ბოლოში: at-least-once გამოცემა + idempotent sink (MERGE/upsert 'event _ id').
Dedup: stateful ნაკადში + უნიკალურობა Silver- ში.
ფაილების შეჯამება: მცირე ფილმები - რეგულარული OPTIMIZE/VACUUM კითხვისა და ღირებულებისთვის.
Time travel: მოიცავს გამართვას, რეფლექსს და აუდიტს.

Iceberg Goneration- ის მაგალითი (DDL იდეა):
sql
CREATE TABLE bronze. payment_events (
event_id STRING, user_pseudo_id STRING, currency STRING,
amount DECIMAL(18,2), market STRING, event_time TIMESTAMP, payload STRING
)
PARTITIONED BY (days(event_time), market);

5) ნაკადის აგრეგაცია: ფანჯრები და watermarks

ფანჯრები:
  • Tumbling - ფიქსირებული (მაგალითად, 1 წთ/5 წთ) სტაბილური პანელებისთვის.
  • Hopping - გადახურვა (ნაბიჯი <ფანჯარა) „გლუვი“ მეტრიკისთვის.
  • სესია - ქცევითი ხარვეზები არააქტიურობისთვის.
  • Watermarks: მონაცემთა მენეჯმენტი (ჩვეულებრივ 2-5 წუთი), დამატებითი ემისიების/კორექტირების წესები.
Flink SQL - 1 წუთიანი დეპოზიტები ბაზრებზე:
sql
SELECT market,
TUMBLE_START(event_time, INTERVAL '1' MINUTE) AS ts_min,
COUNT() AS deposits_1m,
SUM(amount_base) AS sum_1m
FROM silver. payments
GROUP BY market, TUMBLE(event_time, INTERVAL '1' MINUTE);

6) აგრეგატების მატერიალიზაცია

OLAP ძრავა (ClickHouse/Pinot/Druid): ინახავს წუთიერ/წამიან დანაყოფებს დაშბორდებისა და ოპერატიული ანალიტიკისთვის.
Lakehouse Gold: ინახავს ყოველდღიურ/საათიან სექციებს მოხსენებისა და შედუღებისთვის (რეპროდუქცია).

ClickHouse - materialized ხედვა (ყოველ წუთს GGR):
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream. game_events
GROUP BY ts_min, market, provider_id;
გოლდი - დღის ნაჭერი (Lakehouse):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(event_time) AS event_date,
market, provider_id,
SUM(stake_base) AS stakes_eur,
SUM(payout_base) AS payouts_eur,
SUM(stake_base) - SUM(payout_base) AS ggr_eur
FROM silver. fact_game_financials
GROUP BY 1,2,3;

7) ვერცხლი: ნორმალიზაცია და კოორდინაცია

დრო და ვალუტა: 'event _ time (UTC)', 'amount _ base', 'fx _ rate _ used', 'fx _ source'.
გასაღებები/საცნობარო წიგნები: 'user _ pseudo _ id', 'game _ id', 'provider _ id', 'barket'.
SCD II: გაზომვის ისტორიები (users/games/providers/RG/KYC).
DQ წესები: გასაღებების უნიკალურობა, საცნობარო წიგნები, თანხების დიაპაზონი, temporal შესაბამისობა.

8) აგრეგატების რეესტრი და „სწორი“ განმარტებები

Semantic Layer: ერთიანი GGR/NGR ფორმულები, განაკვეთები/მოგება, კონვერტაცია, ARPPU, latence p95.
მეტრიკის ვერსია: 'metric _ version' და „as-of“ გამოთვლები.
Dock ბარათები: owner, ფორმულა, წყაროები, SLA მზადყოფნა.

9) Exactly-once/idempotence და წესრიგი

ავტობუსი: at-least-once + partination (ადგილობრივი წესრიგი).
დამუშავება: 'ღონისძიების _ id' (TTL 24-72ch), CER/ფანჯრის ოპერატორები კორექტირებით.
Sink: გარიგების კომუნები ან იდემპოტენტური უზბეკეთი/მერჯი.
Outbox/Inbox: დომენის მოვლენების გამოქვეყნება OLTP- დან გარანტიით.

10) გვიან მონაცემები და კორექტირება

Allowed lateness: 2-5 წუთი ოპერატიული ფანჯრებისთვის; ყოველდღიური გადაკეთება გოლდისთვის.
კორექტირება: ხელახალი გამოცემა OLAP- ში და ოქროს გადანერგვა (idempotent).
დროშები: 'late = true', 'correction _ of = event _ id> აუდიტისთვის.

11) დაკვირვება და DQ

SLI/SLO (სახელმძღვანელო):
  • p95 ingest - 1-წუთიანი ვიტრინა - 2-5 გ; Gold daily მზად არის 06:00 საათამდე.
  • Completeness ≥ 99. 5%; Schema validity ≥ 99. 9%; Trace coverage ≥ 98%.
  • paypline მეტრიკა: lag/throughput/busy time/state size, late-ratio, dup-rate.
  • DQ დაშბორდები: Freshness/Completeness/Validity, ზარალის ძაბვა, „ცხელი“ გასაღებების რუკა.
  • ხაზები: გზა Bronze- დან ოქროს/ექსპორტამდე; impact ანალიზი ცვლილებების დროს.

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

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

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

განაწილება: თარიღი/ბაზარი/ტენანტი; კლასტერიზაცია/Z შეკვეთა ხშირად ფილტრირებული ატრიბუტით.
კომპაქტური: მცირე ფილმების აღმოფხვრა, რეგულარული OPTIMIZE/VACUUM.
მატერიალიზაცია: წუთი/წამი - OLAP- ში; დღე/საათი - გოლდში.
Tiered storage: hot/warm/cold, SLA აღდგენა, გუნდების chargeback (cost/GB, cost/query).
წინამორბედი/ესკიზები: HyperLogLog/approx-distinct, სადაც მისაღებია.

14) მაგალითები (ფრაგმენტები)

Flink CEP - დეპოზიტების სტრუქტურა (10 წთ):
python if count_deposits(window=10MIN) >= 3 \
and sum_deposits(window=10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window_events):
emit_alert("AML_STRUCTURING", user_id, snapshot())
SQL - დედაპლატი Silver- ში დატვირთვისას:
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY event_time) rn
FROM bronze. payment_events p
) WHERE rn = 1;
Iceberg/Delta - MERGE idempotent:
sql
MERGE INTO silver. fact_bets s
USING stage. fact_bets_delta d
ON s. bet_id = d. bet_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

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

R (Responsible):
  • მონაცემთა პლატფორმა (Lakehouse/დირექტორია/ACID, კომპაქტური),
  • ნაკადი (დანაყოფები/CEP/dedup),
  • დომენის ანალიზები (მეტრიკა/ოქროს).
  • A (Accountable): Head of Data/CDO.
  • C (Consulted): Compliance/Legal/DPO (PII/residency/Legal Hold), Finance (FX/GGR), SRE (SLO/стоимость), Security.
  • I (ინფორმირებული): BI/პროდუქტი/მარკეტინგი/ოპერაციები.

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

MVP (3-5 კვირა):

1. Lakehouse Bronze/Silver (ACID ცხრილი), ingest from Kafka, registry სქემები.

2. ძირითადი ერთეული (1-5 წუთი) OLAP- ში; ვიტრინა გოლდი. ggr _ daily (D + 1 06:00 საათამდე).

3. DQ-როგორც კოდი Payments/Gameplay, Freshness/Completeness დაშბორდები.

4. კომპაქტური/OPTIMIZE, მინიმალური cost მეტრიკა და ალერტები lag/late/dup.

ეტაპი 2 (5-10 კვირა):
  • Silver- ის გაფართოება (SCD II users/games/providers), ხაზოვანი და იმპაქტიური ანალიზი.
  • ასინქრონული lookups (RG/KYC/ASN/BIN), late კორექტირების მენეჯმენტი.
  • სემანტიკური მეტრიკის ფენა, ექსპორტის რეგულირება (WORM/ხელმოწერები).
ეტაპი 3 (10-16 კვირა):
  • მულტფილმის რეგიონი, DR/replay სიმულატორი, auto-tuning ფანჯრები და watermarks.
  • Cost dashbords, chargeback/კვოტები, tiered სცენა და არქივი.
  • ფანჯრებისა და მეტრიკის ბარათების დოკუმენტაციის ავტომატური წარმოება.

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

  • სქემები და კონტრაქტები რეესტრში; საკონტროლო ტესტები მწვანეა.
  • შედის დედაპლატა, watermark/allowed lateness, DLQ.
  • კომპაქტური/OPTIMIZE/VACUUM დაგეგმილია გრაფიკით.
  • SLO: p95 ingest→minute-view, Gold до 06:00; ალერტები lag/late/dup/state size.
  • DQ წესები აქტიურია; ხაზები ჩანს Bronze- დან ექსპორტამდე.
  • RBAC/ABAC и KMS; რეზიდენტობა და DSAR/RTBF/Legal Hold ტესტირება.
  • ღირებულება კონტროლდება (cost/GB, cost/query, წილი cold), ბეჭდები.

18) ანტი შაბლონები და რისკები

ნედლეული და საანგარიშო მონაცემების ნაზავი ერთ ცხრილში: არღვევს reproducibility.
კომუნისტური პარტიის არარსებობა: მცირე ფილმების აფეთქება და ძვირადღირებული მოთხოვნები.
FX „რეტროაქტიულად“ გაანგარიშება: არღვევს ისტორიას და მოხსენებებს.
არ არსებობს watermarks/late პოლიტიკოსი: ფანჯრები და ალერტები „ბანაობენ“.
Full reload საჭიროების გარეშე: გამოიყენეთ ნიშნები/MERGE და კორექტირება.
PII ანალიტიკაში: ცალკე შეინახეთ mappings, ჩართეთ CLS/RLS.

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

Lakehouse არის მონაცემთა lake + ACID ცხრილი და SQL ძრავა.
Bronze/Silver/Gold არის ნედლეული/ნორმალიზებული/გოგირდის ფენები.
Watermark არის ფანჯრის მზადყოფნის საზღვარი ღონისძიების დროში.
Materialized View არის მიკერძოებული ვიტრინა სწრაფი კითხვისთვის.
Time-travel - ცხრილების ისტორიული ვერსიების კითხვა.
WORM არის საექსპორტო არტეფაქტების უცვლელი შენახვა.

20) შედეგი

სწორი ნაკადის მქონე მონაცემთა ტბა არის ფენების და კონტრაქტების დისციპლინა: Bronze „როგორც არის“, Silver ნორმალიზაციისა და ხარისხის, OLAP წუთიერი პანელებისთვის, Gold რეპროდუქციული მოხსენებებისთვის. ფანჯრებისა და watermarks- ის, ბაბუისა და კომპლექსის, კონფიდენციალურობისა და ღირებულების მართვისას, თქვენ მიიღებთ სწრაფ, შემოწმებულ და შესაბამისურ ფანჯრებს პროდუქტის, შესაბამისობისა და ოპერაციული მენეჯმენტისთვის.

Contact

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

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

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

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

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

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