Տվյալների փաթեթային վերամշակում
1) Նշանակումն ու արժեքը
Batch-փոխակրիչները ստեղծում են հուսալի օրական/ժամ տևողությամբ վիտրիններ
Կարգավորող և ֆինանսական հաշվետվությունները (GGR/NGR, հարկեր, RG/AML օրինակներ)։
BI և ապրանքային վերլուծաբանները (cogorts, LTV, ծրարային ձագեր)։
Սվինի ճշգրտությունը (OLTP NPH, պրովայդերներ/PSA), պատմություններ (SCD)։
ML-ի համար ավարտական և ուսուցողական հավաքածուներ պատրաստելը։
Հիմնական հատկությունները կանխատեսելիությունն են, ամբողջականությունը, վերարտադրողականությունը, տվյալների միավորի ցածր արժեքը։
2) Ճարտարապետություն (հանրաքվե)
1. Ingest (rance capture): HTTP/gRPC, CDC OLTP-ից, prodaider հեռացումը Bultze։
2. Lakehouse: Bronze (raw, append-only) → Silver (clean/conform) → Gold (serve).
3. Օրկեստրացիան ՝ Airflow/Dagster/Winf.ru (DAG 'և, կախված, retray, SLA)։
4. Մշակումը 'Spark/Trino/DBT/SQL շարժիչներ; Կուսակցությունը և ACID-2019 (Delta/Iceberg/Hudi)։
5. DQ և Պայմանագրեր ՝ Schema Registry, DQ կանոնները (YAML/SQL), consumer-tes.ru։
6. Սերվինգ ՝ BI/սեմանտիկ շերտ, հաշվարկային (CSV/PDF/JSON + hash), API/GraphQL։
7. Դիտարկումը 'մետրերը, lineage, logs, արժեքը (cost/GB, cost/query)։
3) Հաճախականությունը և SLAS-ը
Ամենօրյա (D + 1 մինչև 06: 00 լոկ.) 'GGR զեկույցներ, կարգավորող արտանետումներ, մուտքեր։
Ժամացույցի/quazirealtaim: Ops/Finance վահանակներ։
Շաբաթական/ամիս 'ֆինկոնսոլիդացիա, մոդելներ և ռետրո գործընթացներ։
SLO առաջարկվող
Gold-ամենօրյա վիտրինները պատրաստ են մինչև 06: 00 ռուբլիներ։
Freshness Silver p95-15 րոպե միկրոբատչերի/242 ժամ օրվա համար։
Completeness ≥ 99. 5%, Validity (սխեմա) 3699։ 9%.
4) Էքսպրեսենտալ բեռնումը և CDC-ը
Մոտեցումներ
CDC (Change Windows Capture): Debez.ru/log-redication no Bultze-ը Silver-ում։
Watermark-ը ժամանակի ընթացքում '«contated _ at> max _ loaded _ ts»։
Hash-համեմատություն '«md5 (row)» մանկական փոփոխության համար։
Ups.ru/Merge: Silver/Gold-ի գաղափարական թարմացումները։
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: վիտրինի վերահաշվարկումը տրամաբանության/տվյալների շտկումից հետո։
Սկզբունքները
Idempotention (MERGE/ups.ru), Bronze անփոփոխ, տրամաբանության տարբերակումը։
Time-travel-ը կրկնվող պրոթոնների համար։ մետատվյալների կեղտաջրերը։
Guardrails: Սահմանափակել միջակայքները, քվոտաները և մրցակցային ջոբները։
Տե՛ ս ՝ runbook քայլերով և ավարտական չափանիշներով։
7) Շերտերի մոդելավորում
Bronze:- Append-only, «event _ date», «jurisdiction», «tenae»։
- Աղբյուրի payload (ֆորոիդիկայի համար), մենք արձանագրում ենք «ingested _ at»։
- Նորմալացում և ստանդարտացում ՝ FK/տեղեկատու, dedup, FX/timzons։
- Փաստերի/ֆեդեգրերի աղյուսակները (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 profail job + DLQ; major/minor teg + զեկույց։
9) Սեմանտիկ շերտը և հաշվետվությունները
Մետրիկի միասնական սահմանումները (GGR/NGR, ARPU, Retention) semantic-layer/metrom-store-ում։
Մետրի տարբերակումը; ինտեգրումը BI/ստացիոնար փաթեթների հետ։
Հաշվետվությունները ՝ CSV/JSON/PDF + sha256, բեռնման ամսագիրը և Legal Hold-ը անհրաժեշտության դեպքում։
10) Սեփականատիրությունը, բնակությունը, անվտանգությունը
PII-նվազեցումը 'օգտագործողների կեղծանունացումը։ mapping - առանձին պաշտպանված բովանդակության մեջ։
Residency-ը 'EFC/UK/IV-ի առանձին կոդեր և/բանալիներ; Քրոս-տարածաշրջանային ջոների արգելքը առանց ռազմավարական հիմքի։
Կոդավորումը ՝ TMS in-transit; KMS/CMK at-rest; ածխաջրածինների վերահսկումը։
DSAR/RTBF 'հաշվարկային պրոյեկտներ, ընտրովի խմբագրություններ։ հասանելի աուդիտ։
Legal Hold: WORM արխիվները կարգավորող արտեֆակտների համար։
11) Արտադրողականությունը և արժեքը
Անջատումը ամսաթվով/շուկա/տենանտա; Z-order/cluster հաճախակի նախատիպերով։
Մոսկվա: Parquet + ACID աղյուսակներ; թեմը/վիճակագրությունը, OPTIMIZE/VACUUM։
Նյութականացում 'կայուն ագրեգացիաներ Gold-ում; խուսափել «մոնոլիտ» ջոբներից։
Քվոտաներ/բյուջեներ 'chargeback թիմերում; backfill/ծանր հարցումներ։
Պլանավորումը 'ցածր բեռի պատուհանները (գիշեր/շաբաթ), հերթերի առաջնահերթությունները։
12) Դիտողությունն ու կառավարումը
Metriks plins: duration, success rate, retries, rows processed, cost/query։
DQ-մետրիկները ՝ completeness, validity, uniqueness, FK սխալներ, drift։
Freshness heatmap 'ածխաջրածիններ և շուկաներ; SLA-dashbords։
Lineage: ծագումը Bronze-ից մինչև 1934; impact-վերլուծություն փոփոխություններից առաջ։
Ալերտներ ՝ SLO բյուջեներ, DQ դեգրադացիաներ, ուշացումներ, գնի բարձրացում։
13) SQL/մոդելների օրինակներ
Արժույթների նորմալացումը (Silver)
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): Windows Engineering (DAG 'i, Silver/Gold), Pro Platform (infra, սխեմաների գրանցում, 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 (Informed): BI/ապրանք/Մարքեթինգ/Վիրահատություն։
15) Իրականացման ճանապարհային քարտեզը
MVP (4-6 շաբաթ)
1. Lakehouse Bultze/Silver (ACID ձևաչափը), CDC/rements 2-3 օրինակների համար։
2. DQ-ի կոդը '10-15 կանոնները Payments/Gameplay + CI-ի համար։
3. Առաջին Gold-վիտրինը (GGR Daily) SLA-ից մինչև 06: 00; Ռուսական էքսպորտը + hash։
4. Dashbords Freshness/Completeness/Cost, հիմնական ալտերտերը։
Aleksanda 2 (6-12 շաբաթ)
SCD II для users/games/providers; ածխաջրածինների ընդլայնումը։
Սեմանտիկ շերտը մետրիկ է։ OLTP/պրովայդերների հետ (accuracy)։
Backfill/reprocessing, lineage և impact-վերլուծություն, (EFC/UK)։
Բրազիլիա 3 (12 + շաբաթ)
Փոփոխությունների ավտոսիմուլյացիան (www.y-run), բյուջեները/քվոտաները, chargeback-ը։
Ավտոմատ իրականացումը (Notront pages), DR ուսուցումները և Time-travel-վերականգնումը։
Արժեքի օպտիմիզացումը (կլաստերիզացիա, նյութականացում, TTL, վակուում)։
16) Չեկ թուղթ մինչև վաճառելը
- Պայմանագրերը և սխեմաները Registry-ում, թեստերը կանաչ են։
- Diremenal բեռնումը/CDC աշխատում են, MERGE idempotenten։
- DQ կանոնները ակտիվ են; critical → fail + DLQ; խախտումների զեկույցը։
- SLA/dashbords թարմ/լրիվ; ալերտները տրամադրված են։
- PII/DSAR/RTBF/Legal Hold-ի քաղաքականությունները ապացուցված են Legal/DPO-ի կողմից։
- Runbook "և backfill/reprocessing/DR փորձարկվել են։
- Վերահսկման արժեքը (cost/query, cost/GB, kwoots)։
17) Anti-pattern և ինչպես խուսափել
Մոնոլիտ գիշերային ջոբները 'անցեք անկախ քայլերին, զուգահեռ կուսակցություններին։
Fox-reload առանց կարիքների 'օգտագործեք rements/CDC/merji։
PII-ի խառնուրդը վերլուծության մեջ 'պահեք մապինգները առանձին, օգտագործեք CLS/RTS-ը։
DQ/lineage-ի բացակայությունը 'ներդրեք DQ-կոդը և հետևեք ծագումը։
«Ձեռքով» backfill 'a: Ավտոմատիզացրեք և փաստարկեք, սահմանափակեք միջակայքերը։
Չկառավարվող արժեք 'կլաստերիզացիա, նյութականացում, ռենտեն քաղաքականություն։
18) Գլոսարիա (հակիրճ)
CDC-ը OLTP-ից փոփոխությունների գրավումն է։
SCD-ը դանդաղ փոփոխվող չափումներ են (I/II/III)։
Lakehouse-ը www.lake + ACID աղյուսակն է։
MERGE/Ups.ru-ը վերականգնողական վիրահատություններ են։
Time-travel-ը աղյուսակների պատմական տարբերակների ընթերցումն է։
WORM-ը արտեֆակտների անփոփոխ պահպանումն է։
19) Արդյունքը
Փաթեթային բուժումը կանխատեսելի, վերարտադրված և կոմպլեկտիվ փոխակրիչների կարգապահությունն է։ Հետևելով schema-first-ի սկզբունքներին, որոնք համապատասխանում են/CDC, SCD-պատմաբանությանը, DQ-ի կոդին, դիտարկմանը և գիտակցված տնտեսությանը, դուք կստանաք կայուն Gold-vitrines և հաշվետվություններ, որոնք ստուգվում են կրկնօրինակներով և պատրաստ են ցանկացած պահի։