მონაცემთა ტბები და ნაკადების აგრეგაცია
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: მოიცავს გამართვას, რეფლექსს და აუდიტს.
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 წუთი), დამატებითი ემისიების/კორექტირების წესები.
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: ინახავს ყოველდღიურ/საათიან სექციებს მოხსენებისა და შედუღებისთვის (რეპროდუქცია).
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/ხელმოწერები).
- მულტფილმის რეგიონი, 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- ის, ბაბუისა და კომპლექსის, კონფიდენციალურობისა და ღირებულების მართვისას, თქვენ მიიღებთ სწრაფ, შემოწმებულ და შესაბამისურ ფანჯრებს პროდუქტის, შესაბამისობისა და ოპერაციული მენეჯმენტისთვის.