Maglumatlaryň bitewiligi
1) Maglumatlaryň bitewiligi näme
Maglumatlaryň bitewiligi - maglumatlaryň ähli durmuş siklinde: çeşmelerden we özgerişlerden başlap, penjirelere, API-lere we eksportlara çenli dogry, utgaşdyrylan we gapma-garşylyksyz bolmagyny kepillendirýän häsiýetleriň we gözegçilikleriň toplumy. Maksat şol bir sözlemiň gaýtalananda birmeňzeş jogap bermegidir, islendik üýtgeşmeler bolsa yzarlanylyp we barlanylyp bilner.
2) Bitewiligiň görnüşleri we olaryň ýaşaýan ýeri
Esasy (Entity): özboluşly başlangyç açarlar, dublikatlaryň ýoklugy.
Salgylanma (Referential): Dogry baglanyşyklar FK; "asylan" baglanyşyklaryň ýoklugy.
Domain (Domain): Rugsat berilýän aralyklar we formatlar (görnüşi, uzynlygy, gollanmalary).
Işewürlik düzgünleri: predmet meýdanynyň üýtgemegi (balans ≥ 0, geçirimleriň jemi = 0 we ş.m.).
Wagtlaýyn: wagt bellikleriniň monotonlygy we sazlaşygy, dogry wagt zolaklary.
Giriş syýasaty: RLS/CLS görünýän maglumatlaryň logiki sazlaşygyny bozmaýar.
3) Maglumatlaryň şertnamalary we shemalary (hakykatyň çeşmesi)
Toplumlar we wakalar üçin resmi şertnamalary goýýarys; olary her üýtgeşmeden soň we girelgede ulanýarys.
Mysal (YAML, ýönekeýleşdirilen):yaml dataset: payments primary_key: txn_id foreign_keys:
- fk: user_id -> users. user_id schema:
- {name: txn_id, type: string, unique: true}
- {name: user_id, type: string, not_null: true}
- {name: amount, type: decimal(18,2), min: 0}
- {name: currency, type: string, in: [USD,EUR,TRY,UAH]}
- {name: event_time, type: timestamp, tz: UTC}
dq_rules:
- "duplicates(txn_id)=0"
- "ref_integrity(user_id, users. user_id)=true"
- "sum(amount) >= 0"
evolution:
semver: [MAJOR, MINOR, PATCH]
breaking_changes_require: approval:data-governance
4) Geleşik kepillikleri we izolýasiýa
OLTP üçin ACID: atom, yzygiderlilik, izolýasiýa, çydamlylyk.
Izolýasiýa derejesi: Read Committed/Repeatable Read/Serializable - "hapa "/üýtgeşik/fantom okamak töwekgelçiligi bilen saýlaň.
OLAP we lakehouse: laýyklyk gözegçiligi bilen tablisalaryň (transaction log), idempotent sink we schema-evolution atom jemleri.
KPI formulalarynyň sazlaşygy: semantik gatlak → hasabatlar we API üçin bir hakykat.
5) Paýlanan ulgamlar: tertip, gaýtalanmalar, idempotentlik
Wakalaryň tertibi: 'event _ time' + 'ingested _ at', watermarks we lateness kabul edişini ulanýarys; agregatlar event time esasynda.
Gaýtadan eltip bermek (at-least-once): global 'event _ id', idempotency keys, upsert/merge tablisalary durnukly açar boýunça.
Out-of-order: penjireleri gaýtadan hasaplamak, gijikdirmek, öwezini dolmak strategiýasy.
"Exactly-once" manysy boýunça: ulag at-least-once bolup biler, kabul ediji - idempotent.
6) Her gatlakda bitewiligi tassyklamak (DQ)
C/CD we payplaynlaryň kärendesine bitewilik düzgünlerini goşýarys:- Freshness/Completeness/Uniqueness/Valid Values/Referential Integrity.
- Anomaliýalar: dublikat partlamalary, wagt aralyklary, paýlanyşyň ýiti üýtgemeleri.
- KPI formulalaryna gözegçilik: hasaplamalaryň wersiýasy we netijeleriň gabat geliş synaglary (golden sets).
- Eksport gözegçiligi: düzgün bozulan toplumlaryň berilmegini gadagan etmek (quarantine).
yaml expect_column_values_to_be_unique: {column: txn_id}
expect_column_values_to_not_be_null: {column: user_id}
expect_column_values_to_be_in_set: {column: currency, value_set: [USD,EUR,TRY,UAH]}
7) Maliýe we amal bitewiligi
Double-entry (goşa ýazgy): balansdaky debet/karz; cut-off-da jemleýji barlyşyklar.
Jemleýji üýtgeşmeler: tölegleriň möçberi = hasapdan çykarmalaryň möçberi + komissiýalar + düzedişler.
Operasiýa üýtgemeleri: SLA/guardrail-metrikler iş düzgünlerini bozmaýar (mysal üçin, awto-abatlaýyş dublikat döretmeýär).
8) Lineedge, audit we köpeltmek
Linij: çeşmeden penjirelere/fiç; transformasiýalaryň we eýeleriň görünmegi.
Audit-treýler: kim üýtgedi, näme, haçan we näme üçin; shemalaryň/formulalaryň/joblaryň wersiýalary.
Snepşotlar/gözegçilik nokatlary: öňki hasabatlary gaýtadan sanamak we tassyklamak mümkinçiligi.
Repro: şol bir dilimde şol bir haýyş → şol bir netije (wersiýalar we gatlaklar).
9) Bitewiligi ýitirilmezden howpsuzlyk we gizlinlik
RLS/CLS: setirleriň/sütünleriň süzgüçleri üýtgewsizlikleri bozmaly däldir (mysal üçin, görnüp duran nusga boýunça mukdar aýdylanlara gabat gelmelidir).
Gizlemek/tokenizasiýa: dedupyň we referensial bitewiligiň saklanmagy üçin kesgitlenen strategiýalar.
Şifrlemek: kanalda we gysylandan soň "diskde"; açarlary dolandyrmak we giriş barlaglary.
DSAR/Retention: aýyrmak/anonimleşdirmek baglanyşygy bozmaýar (kaskad syýasaty).
10) Öz-özüne hyzmat etmek we abatlaýyş awtomatikasy
Quarantine: şübheli partiýalaryň/batçalaryň izolýasiýasy; sarp edijilere - "arassa" şahasy.
Replay/Backfill: üýtgewsiz raw-magazinedan penjiräni täzeden oýnamak.
Reconcile: gatlaklaryň we ulgamlaryň barlagy (raw, curated, marts; DWH çeşmesi).
Dedup/Compaction/Rebuild: indeksleri/agregatlary abatlamagyň ulgamlaýyn proseduralary.
Policy-as-code: "haýsy anomaliýa → haýsy hereket → bosagalar → ýokarlanmak".
11) Modellemek we saklamak tejribesi
Durnukly açarlar: surrogat PK (UUID/ULID), gollanmalarda üýtgewsiz tebigy açarlar.
Kadalaşdyrma denormallaşma: Çeşmelerdäki FK-baglanyşyklar, logikanyň wersiýasyna gözegçilik etmek bilen denormallaşdyrylan penjireler.
SCD1/SCD2: ölçemek üçin dolandyrylýan taryh.
Sortlamak/toplamak: RLE/zone-haritalary gowulandyrýar we barlagy aňsatlaşdyrýar.
Heşler we gözegçilik pullary: faýllaryň/toparlaryň bitewiligini barlamak.
12) Wagtyň we hasabatyň bitewiligi
Formulalaryň wersiýalary: 2025-nji ýylyň ýanwar aýyndaky hasabat X wersiýasynyň formulasy bilen gaýtalanmalydyr.
Kesmek we "döwri ýapmak": penjireleri we arhiw bölümlerini doňdurmak.
Late arriving facts: hasabatyň wersiýasynyň belligi bilen doldurmagyň we gaýtadan hasaplamagyň mehanikasy.
Gaýtadan kesgitlemeleri resminamalaşdyrmak: el bilen düzedişler - diňe audit bilen.
13) Integrasiýa we API
API şertnamasy: shemalar, görnüşler, hökmany meýdanlar, ýalňyşlyk kodlary; wersiýalaşdyrmak (v1/v2).
Girelgede tassyklama: reject erbet payload 'lar, "sessiz düzetmäň".
Idempotent POST: idempotentlik açary, gaýtalamak howpsuz.
Faýllara eksport etmek: partiýalaryň, heşleriň, gollaryň sazlaşygy.
14) Antipatternler
SELECT prod-soraglarda we çukurlarda - MINOR ewolýusiýasynda bozulýar.
FK "sözlerinde": salgylanmalaryň hakyky barlagynyň ýoklugy.
Auditsiz we hasabatsyz maglumatlaryň sessiz düzedilmegi.
TZ we wagt formatlaryny bir toplumda garyşdyrmak.
KPI-ni "ruçkalar" bilen wersiýalar ýa-da magazinesurnallar bolmazdan täzeden kesgitlemek.
Ätiýaçlyk strategiýasyz ýeke-täk duplikasiýa açary.
Aragatnaşyklary kaskad barlamazdan DSAR-dan aýyrmak.
15) Durmuşa geçirmegiň ýol kartasy
1. Inventory & Kriticity: toplumlaryň/wakalaryň kartasy, eýeler, töwekgelçilikler, üýtgemez.
2. Şertnamalar we shemalar: görnüşlerini/çäklendirmelerini/FK, CI-laýyklyk barlaglaryny resmileşdirmek.
3. DQ paýlaýjyda: Freshness/Completeness/Uniqueness/RI, quarantine, alertler.
4. Geleşik esaslary: atomic-sink, upsert/merge, SCD-taryhy, formulalaryň wersiýasy.
5. Lineedge we audit: katalog, tracking, change-logs, access-logs.
6. Bejeriş syýasaty: replay/backfill/dedup/reconcile kod hökmünde; runbook’и и SLO MTTR-data.
7. Howpsuzlyk/priv: RLS/CLS, gizlemek, şifrlemek, DSAR prosesleri.
8. Hasabat: kesmek-kesmek, freeze-kesmek, KPI wersiýalaryny dolandyrmak.
16) Toplum/vitrin goýberilmezinden öň çek-sanawy
- PK/FK we domen çäklendirmeleri berilýär we synagdan geçirilýär.
- Shemalary/formulalary wersiýalaşdyrmak; schema-diff ýaşyl.
- DQ düzgünleri (täzelik/doly/özboluşlylyk/diapazonlar/RI) ýaşyl.
- Idempotent ýazgylary: upsert/merge, idempotent açary (wakalar üçin).
- Wagt: 'event _ time' we 'ingested _ at', TZ = UTC; late data syýasaty.
- Lineedge we audit görünýär; quarantine we alertler goşuldy.
- RLS/CLS/gizlemek invariantlary we RI bozmaýar.
- DSAR/Retention synagdan geçirildi; cut-off/arhiw taýýar.
17) Kiçi şablonlar
SQL: Baglanyşyk bitewiligini barlamak
sql select count() as orphans from fact_payments f left join dim_users u on f. user_id = u. user_id where u. user_id is null;
-- expect orphans = 0
quarantine/repair syýasaty (psevdo-YAML)
yaml policy: payments_integrity detect:
- rule: duplicates(txn_id) > 0
- rule: ref_integrity(user_id, users. user_id) = false auto_actions:
- quarantine_partition: {date: today}
- trigger_replay: {window: "last_2h"}
escalate_if:
- condition: violations_persist>30m page: "oncall-data"
Ölçemek üçin SCD2 shemasy
sql
-- dim_user_status (SCD2)
user_id, status, valid_from, valid_to, is_current
18) Jemleýji
Maglumatlaryň bitewiligi ýeke-täk barlag däl-de, eýsem kepillikleriň ahyrky ulgamy bolup durýar: resmi şertnamalar we çäklendirmeler, geleşik we paýlanan üýtgeşmeler, abatlaýyş walidasiýa we awtomatika, lineedj we audit, gizlinlik we hukuklar. Bu elementler bilelikde işlänlerinde, maglumatlar çözgütler üçin ygtybarly esas bolýar we hadysalar seýrek, gysga we öňünden aýdyp bolýar.