Տվյալների որակի վերահսկումը
1) Նշանակումներ և սկզբունքներ
Ինչու 'հուսալի հաշվետվություններ (GGR/հարկեր), հակաֆրոդ և RG մոդելներ, կոմպլեքս-արտանետումներ, ապրանքներ և կերպարներ։
Սկզբունքները
Schema-first & Medrac.ru: Բոլոր աղբյուրները պետք է հրապարակեն պայմանագրի տվյալները։
DQ-ի կոդը 'ավանդի, տարբերակների, թեստերի և խանդի կանոնները։
Observability-by-international։
Privacy-by-design: առնվազն PII, դիմակավորում և RFC/CLS։
Cost-a.ru 'կրիտիկական կանոնների գերակայություն, խելացի նմուշներ։
2) Taksonomia հատկություն
Completeness (Լիխտա) 'պարտադիր դաշտերի/տողերի մասը։
Validity (Ընդունելիություն) 'տիպերի/միջակայքերի/տեղեկատուների համապատասխանությունը։
Uniqueness (Uniqueness) 'կրկնօրինակների բացակայություն 2019/իրադարձությունների։
Consistency (Համաձայնություն) 'վերֆերենտ ամբողջականություն, բիզնես ինվարանտներ։
Accuracy (Ճշգրտություն) 'մոտենալ «իրական» աղբյուրին (ծծմբի)։
Timeliness/Freshness (Ժամանակին) 'նյութի ուշացում։
Lineage Integrity 'վերափոխման ծագման/տարբերակների պահպանում։
Յուրաքանչյուր տիրույթի համար որոշվում է KPI որակը և քննադատությունը (critical/major/minor)։
3) Պայմանագրեր և սխեմաներ (ճշմարտության աղբյուրը)
Տվյալների պայմանագրերը ՝ JSON Schema/Avro/OpenAPI/AsyncAPI, տեղադրված են Registry-ում։
Տե՛ ս ՝ backward-համատեղ փոփոխություններ 'nullable ավելացում; breaking-ը նոր տարբերակը + կրկնակի գրառում է։
Այսպիսով, իրադարձություններում '«event _ id», «trace _ id», «schema _ version», «source»։
4) DQ-ի կոդը 'արտեֆակտների կառուցվածքը
Պահեք կանոնները Git-ում, ինչպես նաև դելֆինների հետ
/dq/
rules/
silver. payments. yaml gold. ggr_daily. yaml checks/
sql/
python/
policies/
severities. yaml notifications/
routes. yaml
Կանոնները ՝ հայտարարող YAML/SQL;
Լուրջ 'mapping medalert ալիքներ/էսկալացիայի մակարդակներ;
CI 'սխեմաների ոսպնյակներ, թեստեր, «www.y-run «/սիմուլյատոր։
5) Կանոնների օրինակներ (YAML)
yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive severity: critical type: range column: amount min: 0. 01
- name: currency_in_whitelist severity: major type: in_set column: currency set: [EUR, USD, GBP, TRY, BRL]
- name: unique_tx severity: critical type: unique columns: [transaction_id]
- name: fk_user_exists severity: critical type: foreign_key column: user_pseudo_id ref_table: dim. users ref_column: user_pseudo_id
- name: ts_monotonicity severity: minor type: temporal expression: "ts between date_sub(now(), interval 90 day) and now()"
6) SQL թեստեր (նմուշներ)
Եզակիությունը
sql
SELECT transaction_id, COUNT() AS c
FROM silver. payments
GROUP BY transaction_id
HAVING COUNT() > 1;
Պարտադիր դաշտերի ամբողջականությունը
sql
SELECT COUNT() AS nulls
FROM silver. payments
WHERE amount IS NULL OR currency IS NULL OR ts IS NULL;
Ուղեցույցներ/խորհրդատվություն
sql
SELECT p. currency
FROM silver. payments p
LEFT JOIN ref. currencies r ON p. currency = r. code
WHERE r. code IS NULL;
7) Հոսքային DQ (real-time)
Ingest-validation 'schema validation, size-limits, տեսակներ և enum' a։
Ստուգման on-stream '(event _ id, source) ", allowed lateness, վալենտների/գումարների վալիդիում։
Սահմանները 'քննադատական սխալներ www.DLQ + alert; ոչ թե կրիտիկական, այլ բաց թողնել (դրոշով «dq _ flag»)։
Metriks: completeness/lag/dup-rate կուսակցություններում։
8) Սխալների և բացառությունների հետ աշխատելը
DLQ/Quarantine: «հիվանդ» ձայնագրությունները պահվում են, հասանելի են ուղղման համար։
Expeption records: Բացառության քարտը (owner, ժամանակահատվածը, պատճառը, տարածքը)։
Express-fallback-ը 'վերջին ճիշտ վիտրինի կեղևի օգտագործումը։
SLA փակումը 'կրիտիկական' 2424-48 ժամ; major - 245 ծառա։ օրեր։
9) Գաղտնիության և հաճույքի հետ
PII-նվազեցումը 'մի ստուգեք «հում» PII-ը վերլուծական շերտերում։ օգտագործեք կեղծանուններ։
RSA/CLS: Ստուգումները կատարվում են, հաշվի առնելով դաշտերի դիմացումը։
Ռեգիոնալացում. Կանոնները հաշվի են առնում «jurisdiction» (EFC/UK/III)։
Legal Hold: Արխիվների վերաշարադրման արգելքը պահպանման շրջանակներում։
10) Դիտարկումը, SLI/SLO և ալերտները
Առաջարկված SLI/SLO։
Freshness p95 (Silver): 3515
Completeness (critical types): ≥ 99. 5%.
Validity (schema): ≥ 99. 9%.
Duplicate rate: ≤ 0. 1%.
DQ incident MTTR: ≤ 24–48 ч.
Ալերտներ 'լուրջ (pager critical), հարթեցում (alerts), «maintenae windows»։
11) Dashbords (նվազագույն հավաքածու)
Freshness/Completeness-ի ջերմային քարտեզը ածխաջրածինների և շուկաների վրա։
Լավագույն N աղյուսակները incident rate-ով և ուղղման արժեքով։
Վորոնկա DQ: ingest silver nogold (կորուստ/ուղղում)։
Գծային քարտեզը կրիտիկական պարամետրերի համար (կարգավորիչ/GGR/RG/AML)։
«Հնացած» սխեմաների և հաճախորդների քարտեզը (MSK/սխեմաների տարբերակը)։
12) Գործընթացներ և RACI
R (Responsible): Direct Engineering (աղյուսակի կանոնները), Domain Owners (սեմանտիկա)։
A (Accountable): Head of Data/CDO.
C (Consensed): Compliant/Legal/DPO, Ճարտարապետություն, DRE։
I (Informed): BI/ապրանք/Մարքեթինգ/Ֆինանսներ/Վիրահատություն։
Կյանքի կանոնների ցիկլը 'առաջարկությունը հակադրվում է «մութ գործարկմանը»։
13) Սվերկին և ճշգրտությունը (Accuracy)
Վերահսկիչ գումարներ/գործարքներ 'OLTP/պրովայդերների հետ (PSA/KYC)։
Երկու կետային համեմատություններ 'անկախ pipeline ընտրության համար։
Թույլ տվեք, որ չափումների տոկոսադրույքները (օրինակ, GGR 240 տարբերությունը։ 2%).
Ամենօրյա ակտերը ՝ զեկույցները, որոնք նախատեսված են։
14) Արժեքը և գերակայությունը
Քննադատական կանոնները ավելի հաճախ սկսեք (streaming/ժամ), minor-daily։
Օգտագործեք նմուշներ և materialized կոդեր ծանր սեղանների համար։
Հետևեք cost/query և cost/GB, օգտագործեք կլաստերիզացիա/ինդեքսավորում։
Հատկացրեք բյուջեն DQ-ում թիմերի կտրվածքում (chargeback)։
15) Gold-վիտրինի համար (օրինակ GGR Daily)
yaml table: gold. ggr_daily owner: fin-analytics slo:
ready_by_local_time: "06:00"
rules:
- name: ggr_not_negative severity: critical type: range column: ggr min: 0. 0
- name: market_known severity: major type: in_set column: market set_ref: ref. markets
- name: fx_source_present severity: major type: not_null column: fx_source
- name: completeness_by_market severity: critical type: completeness partition_keys: [event_date, market]
expected_rows_expression: "ref. expected_activity(event_date, market)"
16) Որակի պատահարներ 'կառավարում և հաղորդակցություն
Ticketing 'Auto-ի խնդիրներ, որոնք կցված են նմուշներով և մետրերով։
Կոմմ ձևանմուշներ 'ապրանքի/կարգավորիչի սեփականատերերի ծանուցում ազդեցության ժամանակ։
Post-mortem: արմատական պատճառը (schema drift, upstream bug, 2019), CAPA-ի գործողությունները, «ռեգրեսիայի վերահսկումը»։
17) Ճանապարհային քարտեզը
MVP (2-4 շաբաթ)
1. Կրիտիկական աղյուսակների կատալոգը (Payments, Gameplay, GGR, Compliance)։
2. YAML կանոնները 10-15 հիմնական ստուգումների համար + CI-վալիդացիա։
3. Dashbord Freshness/Completeness-ը և critical-ի ալտերտերը։
4. DLQ/Quarantine + runbook ուղղումներ։
Aleksanda 2 (4-8 շաբաթ)
Կանոնների ընդլայնումը (FK/acuracy), «www.y-run», A/B ներառությունների սիմուլյատոր։
Ինտեգրումը lineage, բացառությունների և SLA-ի հետ։
Հոսող DQ-ը ingest-ի վրա «աղմկոտ» աղբյուրների համար։
Բրազիլիա 3 (8-12 շաբաթ)
Փաստաթղթերի ավտոմատ արտադրությունը կանոններով, արժեքի չափումները։
«Ստուգման ուրվագծեր» (independent reconciliation), weekly հետադարձ հայացքներ։
Rule-as-Code-ը պլատֆորմային MSK-ն է, որը համապատասխանում է տիրույթի ստանդարտ ստուգումներին։
18) Չեկ թուղթ մինչև վաճառելը
- Պայմանագրերը և սխեմաները Registry-ում, թեստերը կատարվում են։
- YAML կանոնները մահացու են, severity/շարժասանդուղքները նշանակված են։
- Dashbords և alerta ակտիվ են; SLO-ն որոշված և համաձայնեցված է։
- DLQ/Quarantine հասանելի է, runbooks-ը տեղադրված է։
- Բացառման/գործողությունների ընթացակարգերը համաձայնեցված են Legal/Compliance-ի հետ։
- Ստուգումների արժեքը և սահմանները լուրջ հարցումների համար։
19) Հաճախակի սխալներ և ինչպես խուսափել դրանցից
Հում տվյալները առանց պահանջների 'ներդրեք շեմա-first և consumer-tes.ru։
Ստուգումները «ձեռքով» 'թարգմանեք DQ-կոդը և CI-ը։
Առաջնահերթություն չկա 'բաժանեք critical/major/minor և ալտերի ալիքները։
Բացակայում է DLQ 'սխալների հետ աշխատելու ոչինչ չկա, ավելացրեք կարանտինը։
Արժեքի անտեսումը 'ավելացրեք հարցումները, օգտագործեք նյութականացումը։
Չկա փոստ-մորտեմներ, սխալները կրկնվում են 'ներմուծեք CAPA-ը և վերահսկեք ռեգրեսիան։
20) Արդյունքը
Տվյալների որակի վերահսկման համակարգը ոչ թե ցրված ստուգումների հավաքածու է, այլ կառավարվող ծրագիր 'պայմանագրեր և սխեմաներ, DQ-կոդը, դիտարկումը և SLO-ն, կոդավորման և սուլֆատի կարգապահությունը։ Այս հոդվածում դուք կստանաք վերարտադրված, ստուգված և տնտեսական տվյալներ, որոնք բավարար են կարգավորող հաշվետվության, սննդի լուծումների և ռիսկի դետեկտորների համար։