Назорати сифати маълумот
1) Мақсад ва принсипҳо
Чаро: гузоришҳои боэътимод (GGR/андозҳо), моделҳои зидди қаллобӣ ва RG, боркунии мувофиқат, маҳсулот ва фардикунонӣ.
Принсипҳо:- Схема-аввал ва шартномаҳо: Аз ҳамаи манбаъҳо талаб карда мешавад, ки маълумоти шартномаро нашр кунанд.
- DQ-as-code: қоидаҳо дар анбор, версияҳо, санҷишҳо ва баррасиҳо.
- Мушоҳидаҳо бо нобаёнӣ: ченакҳо/воридшавӣ/хат.
- Тарроҳии махфият: ҳадди аққали PII, ниқоб ва RLS/CLS.
- Хароҷот: афзалияти қоидаҳои муҳим, намунаҳои оқилона.
2) Таксономияи андозагирии сифат
Пуррагӣ - Фоизи майдонҳо/сатрҳои зарурӣ.
Намудҳои/диапазонҳо/маълумотномаҳо.
Ягонагӣ: калид/рӯйдодҳои такрорӣ нест.
Мутобиқат: тамомияти истинод, инвариантҳои тиҷорат
Дақиқӣ-Равишҳо ба манбаи "ҳақиқӣ" (мусолиҳаҳои мухтасар).
Вақт/тару тоза - Таъхири мавод.
Беайбии насл: нигоҳ доштани пайдоиш/версияҳои тағирот.
Сифат ва танқиди KPI (интиқодӣ/асосӣ/хурд) барои ҳар як домен муайян карда мешавад.
3) Шартномаҳо ва нақшаҳо (манбаи ҳақиқат)
Шартномаҳои иттилоотӣ: JSON Schema/Avro/Open
Устуворӣ: тағиротҳои ба қафо мувофиқ - илова кардани беэътибор; шикастани - версияи нав + вуруди дугона.
Пайгирӣ: дар ҳодисаҳо - 'event _ id', 'trace _ id', 'schema _ version', 'манбаъ'.
4) DQ-as-code: сохтори артефакт
Қоидаҳоро дар Git ва қубурҳо нигоҳ доред:
/dq/
rules/
silver. payments. yaml gold. ggr_daily. yaml checks/
sql/
python/
policies/
severities. yaml notifications/
routes. yaml
Қоидаҳо: декларативии YAML/SQL;
Вазнинӣ: харитасозӣ → каналҳои ҳушдор/сатҳи шиддат;
CI: линтерҳои ноҳиявӣ, санҷишҳои мутобиқат, хушккунӣ/симулятор.
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 (вақти воқеӣ)
Санҷиши воридшавӣ: тасдиқи схема, маҳдудиятҳои андоза, намудҳо ва энум.
Санҷишҳои ҷараён: dedup '(event_id, манбаъ)', дурустии иҷозат, дурустии асъор/маблағ.
Сарҳадҳо: хатогиҳои интиқодӣ → DLQ + ҳушдор; на теги интиқодӣ, балки гузаред (бо парчами 'dq _ flag').
Нишондиҳандаҳо: пуррагӣ/ақибмонӣ/dup-rate аз ҷониби ҳизб.
8) Идоракунии хатогиҳо ва истисноҳо
DLQ/Карантин: Сабтҳои бемор барои ислоҳ дастрасанд.
Сабтҳои истисноӣ: корти истисноӣ (соҳиб, сана, сабаб, минтақа).
Худтаъминкунӣ: Тасвири охирини дурусти ҳолати намоишро истифода баред.
Пӯшидани SLA: интиқодӣ - ≤ 24-48 соат; асосӣ - ≤ 5 рӯзи коргарӣ.
9) Ҳамоҳангсозӣ бо дахолатнопазирӣ ва мувофиқат
Кам кардани PII: PII-и "хом" -ро дар қабатҳои таҳлилӣ тафтиш накунед; Алифборо истифода баред.
RLS/CLS-Checks дар асоси ниқоби саҳроӣ гузаронида мешавад.
Минтақасозӣ: Қоидаҳо 'юрисдиксия' -ро ба назар мегиранд (EEA/UK/BR).
Нигоҳдории ҳуқуқӣ: Навиштани бойгонӣ ҳамчун як қисми нигоҳдорӣ нест.
10) Мушоҳида, SLI/SLO ва огоҳиҳо
SLI/SLO-ҳои тавсияшуда:- Тару тоза p95 (нуқра): ≤ 15 дақиқа
- Пуррагӣ (намудҳои интиқодӣ): ≥ 99. 5%.
- Эътибор (схема): ≥ 99. 9%.
- Меъёри такрорӣ: ≤ 0. 1%.
- Ҳодисаи DQ MTTR: ≤ 24-48 ч.
Огоҳиҳо: пейджер барои тирезаҳои интиқодӣ, зидди бегона, нигоҳдорӣ.
11) Панели панелҳо (маҷмӯи ҳадди аққал)
Тару тоза/Харитаи гармидиҳӣ аз рӯи домен ва бозор.
Ҷадвалҳои Top N аз рӯи сатҳи ҳодиса ва арзиши ислоҳот.
Ғалтаки DQ: inest → нуқра → тилло (талаф/ислоҳ).
Харитаи Linedge барои гузоришҳои интиқодӣ (танзимкунанда/GGR/RG/AML).
Харитаи схемаҳои "меросӣ" ва мизоҷон (версияҳои SDK/схема).
12) Равандҳо ва RACI
R (Масъул): Муҳандисии маълумот (қоидаҳо дар ҷадвалҳо), Соҳибони домейн (семантика).
A (Ҳисоботдиҳанда): Роҳбари маълумот/CDO.
C (Машварат): Мувофиқат/Ҳуқуқӣ/DPO, Меъморӣ, SRE.
Ман (Маълумот): BI/Продукт/Маркетинг/Финансы/Операции.
Давраи ҳаёти қоида: пешниҳод → баррасии → "давиши торик" → фарогирӣ → мониторинг → ретроспективӣ.
13) Созиш ва дақиқӣ
Санҷишҳо/амалиётҳо: анбор бо OLTP/провайдерҳо (PSP/KYC).
Муқоисаи ду давр: лӯлаи мустақил барои санҷиши интихобӣ.
Таҳаммулпазирӣ ҳадди фоизӣ аз рӯи нишондиҳандаҳо мебошанд (масалан, Ихтилофи GGR ≤ 0. 2%).
Санадҳои ҳаррӯза: ҳисоботи мусолиҳаи аудит.
14) Арзиш ва афзалият
Қоидаҳои муҳимро бештар иҷро кунед (ҷараён/соат), ноболиғ - ҳар рӯз.
Барои ҷадвалҳои вазнин чекҳо ва чекҳои моддиро истифода баред.
Арзиш/дархост ва арзиш/ГБ-ро пайгирӣ кунед, кластер/индексатсияро татбиқ кунед.
Барои DQ дар заминаи дастаҳо буҷа ҷудо кунед (пардохт).
15) Қолабҳо барои дӯконҳои тиллоӣ (мисоли 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) Ҳодисаҳои сифат: Идоракунӣ ва иртибот
Билетҳо: худкори сохтани вазифаҳо бо интихоби замимашуда ва ченакҳо.
Қолабҳои Comm: огоҳ кардани соҳибони маҳсулот/танзимгарон ҳангоми таъсир.
Пас аз марг: Сабаби решавӣ (кашиши схема, хатои болооб, сарборӣ), амалҳои CAPA, назорати "бозгашти регрессия".
17) Харитаи роҳсозӣ
MVP (2-4 ҳафта):1. Феҳристи ҷадвалҳои интиқодӣ (Пардохтҳо, Gameplay, GGR, Мувофиқат).
2. Қоидаҳои YAML барои 10-15 санҷиши калидӣ + Санҷиши CI.
3. Панели тозагӣ/мукаммалӣ ва огоҳиҳо барои интиқодӣ.
4. DLQ/Карантин + ислоҳи дафтарчаи корӣ.
Марҳилаи 2 (4-8 ҳафта):- Тамдиди қоида (FK/дақиқӣ), тренажерҳои хушк, фарогирии A/B.
- Интегратсияи насл, механизмҳои истисноӣ ва SLA.
- Ҷараёни DQ оид ба ворид кардани манбаъҳои "ғавғо".
- Автогенератсияи ҳуҷҷатгузорӣ аз рӯи қоидаҳо, ченакҳои хароҷот.
- "Контурҳои назоратӣ" (мусолиҳаи мустақил), ретроспективаи ҳарҳафтаина.
- Платформаи Rule-as-Code SDK, феҳристи чекҳои стандартии домейн.
18) Рӯйхати санҷиши пеш аз фурӯш
- Шартномаҳо ва схемаҳо дар Феҳрист, санҷишҳои мутобиқат мегузаранд.
- Қоидаҳои YAML яхкардашуда, вазнинӣ/шиддат таъин карда шудаанд.
- Панели панелҳо ва огоҳиҳо фаъоланд; SLO-ҳо муайян ва мувофиқа карда шудаанд.
- DLQ/Карантин мавҷуд аст, дафтарчаҳо ҳуҷҷатгузорӣ карда мешаванд.
- Тартиботи истисноӣ/мусолиҳа, ки бо қонун/мувофиқат мувофиқанд.
- Андозагирии арзиши санҷишҳо ва маҳдудиятҳои дархостҳои вазнин.
19) Хатогиҳои зуд-зуд ва чӣ гуна аз онҳо канорагирӣ кардан
Маълумоти хом бидуни шартнома: схемаи аввал ва санҷишҳои истеъмолиро ворид кунед.
Санҷишҳои "дастӣ": ба DQ-as-code ва CI тарҷума кунед.
Афзалият нест: каналҳои алоҳидаи интиқодӣ/асосӣ/хурд ва ҳушдор.
DLQ вуҷуд надорад: чизе барои кор бо хатогиҳо вуҷуд надорад - илова кардани карантин.
Арзишро нодида гиред: Дархостҳои профил, истифодаи материализатсия.
Не пас аз марг: хатогиҳо такрор карда мешаванд - ба CAPA ворид шавед ва назорати регрессия.
20) Сатри поён
Системаи назорати сифати маълумот маҷмӯи чекҳои пароканда нест, балки барномаи идорашаванда: шартномаҳо ва схемаҳо, DQ-as-code, мушоҳидаҳо ва SLO, интизоми ҳодисаҳо ва оштӣ. Бо риояи ин мақола, шумо маълумоти такроршаванда, санҷидашаванда ва камхарҷро мегиред, ки барои ҳисоботи танзимкунанда, ҳалли маҳсулот ва детекторҳои хавф дар вақти воқеӣ кофӣ мебошанд.