Տվյալների լճերը և հոսքերի ագրեգացիան
1) Նշանակումն ու արժեքը
DirectLake/Lakehouse-ը երկար պահեստավորման և մեծ կարդալու օժանդակ շերտն է, որտեղ
Ապրանքների/խաղերի/վճարումների հոսքերը վայրէջք են կատարում Bronze-ում «ինչպես կա»։
Silver-ը նորմալիզացնում և հարստացնում է, ապահովելով ռուսական բանալիները և որակը։
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/market/tenae։ պահեստավորում wwww.payload.
3. Stream Comport: Flink/Spark/Beam - պատուհանի միավորներ, CEP, dedup, onome-lookups։
4. Silver (clean/wwww.orm) 'արժույթների/թայմզոնի նորմալացում, FK/հետազոտողներ, SCD հաճախորդների համար։
5. Serving/OLAP: ClickHouse/Pinot/Druid-ը կոդավորման համար նյութականացված րոպեներ/վայրկյան ագրեգատներ են։
6. Gold (serve) 'ցերեկային/ժամ վիտրիններ, կարգավորող կտրվածքներ, անփոփոխ հիբրիդային փաթեթներ (WORM)։
7. Կառավարման ուրվագծերը ՝ Schema Registry, DQ-կոդը, lineage, wwinds/KFC, RBAC/ABAC։
3) Պայմանագրեր և սխեմաներ
Schema-first: JSON/Avro/Protobuf; պարտադիր դաշտեր ՝ «event _ time» (UTC), «event _ id», «trace _ id», «user _ pseudo _ id», «market», «schema _ version»։
Էվոլյուցիա 'back-compatible-ն ավելացնում է nullable; breaking line '/v2 '+ կրկնակի ձայնագրություն։
Կատալոգը 'տիրույթի նկարագրությունը, սեփականատերը, SLA թարմ, DQ կանոնները, lineage։
4) Հոսքերի վայրէջք դեպի լիճ
Exactly-once-ի ներքևի մասում 'at-leport-once հրապարակումը + idempotent sink (MERGE/ups.ru' event _ id ")։
Dedup: stateful-ում + Silver-ում։
Ֆայլերի բաղադրատոմսեր ՝ small dies wwww.OPTIMIZE/VACUUM կարդալու և արժեքի համար։
Time-travel: ներառում է կարգաբերում, ռեփլեում և audit։
Iceberg կուսակցության (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-ը արգելափակված (քայլ <պատուհան) է «հարթ» մետրի համար։
Session-ը հանցագործության վարքագծային բացերն են։
Watermarks: Late Pro (սովորաբար 2-5 րոպե), dovision/2019 կանոնները։
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), պահպանում է dashbords և ռուսական վերլուծաբաններ։
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;
Gold-ը ցերեկային կտրվածք է (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) Silver 'նորմալացում և ստանդարտ։
Ժամանակը և արժույթը ՝ «event _ time (UTC)», «amount _ bert», «fx _ rate _ used», «fx _ source»։
Բանալիներ/գրողներ ՝ «user _ pseudo _ id», «game _ id», «provider _ id», «market»։
SCD II 'մրցույթի պատմականությունը (users/games/providers/RG/KYC)։
DQ կանոնները 'հաճախականության յուրություն, տեղեկատու, գումարների միջակայքներ, temensal-valin։
8) Ռուսաստանի ագրեգատներին և «ճիշտ» սահմանումները
Semantic Layer: GGR/NGR, տոկոսադրույքներ/հաղթանակներ, կոնվերսիա, ARPU, latency p95։
Մետրի տարբերակումը '«metric _ version» և «as-of» հաշվարկները։
Դոկ քարտերը 'owner, բանաձևը, աղբյուրները, SLA պատրաստակամությունը։
9) Exactly-once/idempotenty և կարգը
Շինա 'at-least-once + կուսակցության (տեղական կարգը)։
Մշակումը '«event _ id» (TTL 24-72ch), SER/պատուհանի վիրահատներ։
Sink 'գործարքային համայնքներ կամ idempotent ups.ru/merge։
Medibox/Inbox: OLTP-ի էքսպորտային իրադարձությունների հրապարակումը բանակի հետ։
10) Late Windows և Wind
Allowed lateness: 2-5 րոպե վիրահատական վիտրինի համար; Gold-ի համար ամենօրյա փոխանակումները։
Մոսկվա 'OLAP-ում դոցենտ և Gold (idempotent)։
Դրոշները ՝ "late = www.ord", "www.r.ru _ of =
11) Դիտարկումը և DQ-ը
SLI/SLO (ուղեցույցներ)
p95 ingest no 1 րոպե վիտրինը 242-5 c; Gold daily-ը պատրաստ է մինչև 06: 00 լոկ։
Completeness ≥ 99. 5%; Schema validity ≥ 99. 9%; Trace coverage ≥ 98%.
Metriki plins: lag/throughput/busy time/state size, late-ratio, dup-rate։
DQ-dashbords: Freshness/Completeness/Validity, ձագար, «տաք» քարտեզ։
Lineage 'Bronze-ից մինչև Gold/line; impact-վերլուծություն փոփոխությունների ժամանակ։
12) Սեփականատիրությունը, բնակությունը, անվտանգությունը
PII-նվազեցումը 'կեղծանունացում, առանձին պաշտպանված մապինգ։
Residency: EFC/UK/III - առանձին կոմպոզիցիաներ և բանալիներ։ cross-տարածաշրջանային ջոինի արգելքը առանց հիմքերի։
Կոդավորումը ՝ TMS in-transit; KMS/CMK at-rest; օրինագծերի ստորագրությունները + WORM կարգավորող ժամանակ։
DSAR/RTBF/Legal Hold: Ընտրովի խմբագրություններ, հեռացման սառեցում, հաշվարկված հասանելի։
13) Արտադրողականությունը և արժեքը
Կուսակցությունը 'ամսաթվով/շուկա/տենանտա; կլաստերիզացիա/Z-order հաճախակի ֆիլտրված կոդերով։
Կոմպակտիա: wwww.mall prones, OPTIMIZE/VACUUM։
Նյութականացում 'րոպե/վայրկյան - OLAP-ում; / օրը 'Gold-ում։
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):- Platform (Lakehouse/կատալոգը/ACID, կոմպակտիա),
- Streaming (CEP/dedup),
- Domain Analytics (metrics/Gold)։
- A (Accountable): Head of Data/CDO.
- C (Consulted): Compliance/Legal/DPO (PII/residency/Legal Hold), Finance (FX/GGR), SRE (SLO/стоимость), Security.
- I (Informed): BI/ապրանք/Մարքեթինգ/Վիրահատություն։
16) Իրականացման ճանապարհային քարտեզը
MVP (3-5 շաբաթ)
1. Lakehouse Bultze/Silver (ACID աղյուսակներ), ingest Kafka-ից, registry սխեմաներից։
2. Հիմնական հոսքային ագրեգատները (1-5 րոպե) OLAP-ում։ Վիտրինա Գոլդ։ ggr _ daily (D + 1 մինչև 06: 00)։
3. DQ-ի կոդը Payments/Gameplay-ի համար, Freshness/Completeness-ը։
4. Կոմպակտիա/OPTIMIZE, նվազագույն cost-metrics և ալտերտեր lag/late/dup։
Aleksanda 2 (5-10 շաբաթ)
Silver (SCD II users/games/providers), lineage և impact վերլուծության համար։
Ասինխրոն lookups (RG/KYC/ASN/BIN), late ուղղումների կառավարում։
Սեմանտիկ շերտը մետրիկ է, ածխաջրածինների կարգավորումը (WORM/ստորագրություն)։
Բրազիլիա 3 (10-16 շաբաթ)
Multi-տարածաշրջանը, DR/replay-սիմուլյատոր, 71-tuning պատուհաններ և watermarks։
Cost-dashbords, chargeback/քվոտաներ, tiered storage և արխիվացում։
Փաստաթղթերի ավտոմատ արտադրությունը վիտրինն է և պիտակը։
17) Չեկ թուղթ մինչև վաճառելը
- Սխեմաներ և պայմանագրեր գրանցամատյանում; back-compat թեստերը կանաչ են։
- Ներառված է dedup, watermark/allowed lateness, DLQ։
- Կոմպակտիա/OPTIMIZE/VACUUM-ը տեղադրված է ժամանակացույցի վրա։
- SLO: p95 ingest→minute-view, Gold до 06:00; Ալբերտ lag/late/dup/state size։
- DQ կանոնները ակտիվ են; lineage տեսանելի է Bronze-ից մինչև առյուծներ։
- RBAC/ABAC и KMS; նստավայրը և DSAR/RTBF/Legal Hold-ը փորձարկվել են։
- Վերահսկման արժեքը (cost/GB, cost/query, cold), limits։
18) Anti-patterns և ռիսկեր
Մեկ աղյուսակում հում և հաշվետվական տվյալների խառնուրդը խախտում է reproducibility։
Ընկերակցության բացակայությունը 'small medes-ի պայթյունը պատրաստեց թանկ հարցումներ։
FX հաշվարկը «հետևի թվին» 'կոտրում է պատմությունը և հաշվետվությունները։
Ոչ watermarks/late-քաղաքական.
Fultreload-ը առանց կարիքների 'օգտագործեք rements/MERGE և www.ru։
PII վերլուծության մեջ 'պահեք mapings առանձին, միացրեք CLS/RTS-ը։
19) Գլոսարիա (հակիրճ)
Lakehouse-ը www.lake + ACID աղյուսակն է և SQL շարժիչը։
Bronze/Silver/Gold - հում/նորմալացված/սերվինգային շերտեր։
Watermark-ը պատուհանների պատրաստման սահմանն է event-time-ով։
Materialized Express-ը կանխատեսելի վիտրինն է արագ կարդալու համար։
Time-travel-ը աղյուսակների պատմական տարբերակների ընթերցումն է։
WORM-ը հիբրիդային արտեֆակտների անփոփոխ պահպանումն է։
20) Արդյունքը
Ճիշտ հոսքի ագրեգացիայի հետ տվյալների լիճը շերտերի և շարժիչների կարգապահությունն է 'Bronze «ինչպես կա», Silver-ը նորմալիզացիայի և որակի համար, OLAP-ը րոպեների համար, Gold-ը վերարտադրվող կոմպոզիցիաների համար։ Կառավարելով պատուհանները և watermarks, dedup և կոմպակտացիա, մասնավորություն և արժեք, դուք ստանում եք արագ, ստուգված և կոմպլեկտիվ պատուհաններ ապրանքի, կոմպլանսի և գործառնական կառավարման համար։