GH GambleHub

Maʼlumotlar yaxlitligi

1) Ma’lumotlarning yaxlitligi nima

Ma’lumotlarning yaxlitligi - bu ma’lumotlar to’g’ri, kelishilgan va butun hayotiy tsiklda: manbalar va transformatsiyalardan tortib vitrinalar, API va eksportlargacha bir-biriga zid emasligini kafolatlaydigan xossalar va nazoratlarning to’plamidir. Maqsad - bir xil ta’rif takrorlanganda bir xil javob berishi, har qanday o’zgarishlar esa izlanuvchan va tekshiruvchan bo’lishi.


2) Yaxlitlik turlari va ular yashaydigan joy

Asosiy (Entity): noyob birlamchi kalitlar, dublikatlar yo’qligi.
Referential: FKning to’g "ri aloqalari; «osilgan» havolalar mavjud emas.
Domen (Domain): ruxsat etilgan diapazonlar va formatlar (turi, uzunligi, maʼlumotnomalari).
Biznes-qoidalar: mavzu sohasining invariantlari (balans ≥ 0, o’tkazmalar summasi = 0 va h.k.).
Vaqtinchalik: vaqtinchalik belgilarning monotonligi va muvofiqligi, to’g "ri taym-zonalar.
Foydalanish siyosati: RLS/CLS koʻrinadigan maʼlumotlarning mantiqiy muvofiqligini buzmaydi.


3) Ma’lumotlar kontraktlari va sxemalar (haqiqat manbai)

To’plam va voqealar uchun rasmiy kontraktlar qo’yamiz; ularni kirish joyida va har bir transformatsiyadan keyin qo’llaymiz.

Misol (YAML, soddalashtirilgan):
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) Tranzaksion kafolatlar va izolyatsiya

OLTP uchun ACID: atomarlik, konsistentlik, izolyatsiya, chidamlilik.
Izolyatsiya darajalari: Read Committed/Repeatable Read/Serializable - «iflos «/noyob/fantom o’qish xavfi ostida tanlang.
OLAP va lakehouse: muvofiqlik nazorati bilan jadvallar (transaction log), idempotent sink va schema-evolution atomar kommitalari.
KPI formulalari muvofiqligi: semantik qatlam → hisobotlar va API uchun bitta haqiqat.


5) Taqsimlangan tizimlar: tartib, takrorlash, idempotentlik

Hodisa tartibi:’event _ time’+’ingested _ at’, watermarks va lateness’dan foydalaning; agregatlar event time asosida.
Qayta yetkazib berish (at-least-once): global’event _ id’, idempotency keys, upsert/merge jadvallari.
Out-of-order: oynalarni qayta hisoblash, kechikish strategiyasi, kompensatsiya.
Exactly-once ma’nosi bo’yicha: transport at-least-once, qabul qiluvchi idempotent bo’lishi mumkin.


6) Har bir qatlamda yaxlitlik validatsiyasi (DQ)

Butunlik qoidalarini CI/CD va payplaynlarning rantaymiga kiriting:
  • Freshness/Completeness/Uniqueness/Valid Values/Referential Integrity.
  • Anomaliyalar: dublikatlarning portlashi, vaqt uzilishi, taqsimotning keskin siljishi.
  • KPI formulalarini nazorat qilish: hisob-kitoblarning versiyasi va natijalarning mos kelishi uchun testlar (golden sets).
  • Eksportni nazorat qilish: buzilgan toʻplamlar (quarantine) ni berishni taqiqlash.
Misol (Great Expectations-style):
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) Moliyaviy va operatsion yaxlitlik

Double-entry (ikki marta yozuv): balansdagi debet/kredit; cut-off yig’ma solishtirishlar.
Yakuniy invariantlar: to’lovlar summasi = hisobdan chiqarish summasi + vositachilik haqi + tuzatishlar.
Operatsion invariantlar: SLA/guardrail-metriklar biznes qoidalarini buzmaydi (masalan, avto-ta’mirlash dublikat yaratmaydi).


8) Lineedj, audit va takrorlanuvchanlik

Linij: manbadan vitrinagacha/fich; transformatsiyalar va egalarining ko’rinishi.
Audit-treylar: kim o’zgartirdi, nima, qachon va nima uchun; sxemalar/formulalar/joblar versiyasi.
Snepshotlar/nazorat nuqtalari: oldingi hisobotlarni qayta hisoblash va tasdiqlash imkoniyati.
Repro: bir xil tilda bir xil talab → bir xil natija (versiya va qatlamlar).


9) Yaxlitligini yo’qotmagan holda xavfsizlik va maxfiylik

RLS/CLS: satrlar/ustunlar filtrlari invariantlarni buzmasligi kerak (masalan, koʻrinadigan tanlov summasi talabga mos kelishi kerak).
Kamuflyaj/tokenizatsiya: dedup va referensial yaxlitlikni saqlab qolish uchun determinizatsiya qilingan strategiyalar.
Shifrlash: kanalda va siqilgandan keyin «diskda»; kalitlarni boshqarish va kirish auditi.
DSAR/Retention: olib tashlash/anonimlashtirish aloqani buzmaydi (kaskad siyosati).


10) O’ziga xizmat ko’rsatish va ta’mirlash avtomatikasi

Quarantine: shubhali partiyalarni/batchalarni izolyatsiya qilish; iste’molchilarga - «toza» novda.
Replay/Backfill: oʻzgarmas raw jurnalidan oynani takrorlash.
Reconcile: qatlamlar va tizimlarni solishtirish (raw, curated, marts; (DWH manbai).
Dedup/Compaction/Rebuild: indeks/agregatlarni tuzatishning tizimli tartibi.
Policy-as-code: «qanday anomaliya → qanday harakat → ostona → eskalatsiya».


11) Modellashtirish va saqlash amaliyotlari

Barqaror kalitlar: surrogat PK (UUID/ULID), ma’lumotnomalardagi o’zgarmas tabiiy kalitlar.
Normal holatga kelish: manbalardagi FK-aloqalar, mantiq versiyasi nazorati bilan denorallashtirilgan vitrinalar.
SCD1/SCD2: o’lchash uchun boshqariladigan tarix.
Saralash/klasterlash: RLE/zone-maps ni yaxshilaydi va solishtirishni soddalashtiradi.
Xeshlar va nazorat summalari: fayllar/partiyalarning yaxlitligini tekshirish.


12) Vaqt va hisobotdagi yaxlitlik

Formulalar versiyasi: 2025-yil yanvar hisoboti X. versiyasi bilan takrorlanishi kerak.
Kesish va «davrni yopish»: vitrinalar va arxiv qismlarini muzlatish.
Late arriving facts: hisobot versiyasi belgisi bilan qayta hisoblash mexanikasi.
Qayta belgilashni hujjatlashtirish: qo’lda tuzatishlar kiritish - faqat audit bilan.


13) Integratsiya va API

API kontrakti: sxemalar, turlar, majburiy maydonlar, xato kodlari; versiyalash (v1/v2).
Kirish validatsiyasi: reject yomon payload’lar, «sukut saqlamang».
Idempotent POST: idempotentlik kaliti, takrorlash xavfsiz.
Fayllarga eksport qilish: partiyalar, xeshlar, imzolar muvofiqligi.


14) Antipatternlar

SELECT prod-so’rovlar va vyuxlarda - MINOR evolyutsiyasida buziladi.
FK «so’zlarda»: havolalarni haqiqiy tekshirishning yo’qligi.
Audit va hisobotsiz ma’lumotlarni sukut bilan tuzatish.
TZ va vaqt formatlarini bir toʻplamda aralashtirish.
KPI’ruchkalar’ni versiya va jurnallarsiz qayta belgilash.
Zaxira strategiyasiz deduplikatsiyaning yagona kaliti.
Aloqalarni kaskad tekshirmasdan DSAR orqali olib tashlash.


15) Joriy etish yo’l xaritasi

1. Inventory & tanqidiylik: to’plam/voqealar xaritasi, egalari, xatarlar, invariantlar.
2. Kontraktlar va sxemalar: turlarni/cheklashlarni/FK, CI-muvofiqlikni tekshirishni rasmiylashtirish.
3. DQ payplaynda: Freshness/Completeness/Uniqueness/RI, quarantine, alertlar.
4. Tranzaksion asos: atomic-sink, upsert/merge, SCD-tarix, formulalarning versiyasi.
5. Lineedj va audit: katalog, trassirovka, change-logs, access-logs.
6. Taʼmirlash siyosati: replay/backfill/dedup/reconcile sifatida kod; runbook’и и SLO MTTR-data.
7. Xavfsizlik/priv: RLS/CLS, niqoblash, shifrlash, DSAR jarayonlari.
8. Hisobot: cut-off, freeze-kesmalar, KPI versiyalarini boshqarish.


16) To’plam/vitrinani chiqarishdan oldingi chek-varaq

  • PK/FK va domen cheklovlari belgilangan va sinovdan o’tkaziladi.
  • Sxemalar/formulalar versiyasi kiritilgan; schema-diff yashil.
  • DQ qoidalari (yangilik/to’liqlik/noyoblik/diapazonlar/RI) yashil.
  • Idempotent yozuvlar: upsert/merge, idempotentlik kaliti (voqealar uchun).
  • Vaqt:’event _ time’va’ingested _ at’, TZ = UTC; late data siyosati.
  • Lineedj va audit ko’rinadi; quarantine va alertlar kiritilgan.
  • RLS/CLS/maskalash invariantlar va RI buzmaydi.
  • DSAR/Retention sinovdan o’tkazildi; cut-off/arxiv tayyor.

17) Mini-shablonlar

SQL: havola yaxlitligini tekshirish

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;
-- ожидаем orphans = 0

Quarantine/repair siyosati (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"

Oʻlchash uchun SCD2 sxemasi

sql
-- dim_user_status (SCD2)
user_id, status, valid_from, valid_to, is_current

18) Jami

Ma’lumotlarning yaxlitligi - bu bitta tekshiruv emas, balki uzluksiz kafolat tizimi: rasmiy kontraktlar va cheklovlar, tranzaksion va taqsimlangan invariantlar, validatsiya va ta’mirlash avtomatikasi, lineedj va audit, maxfiylik va huquqlar. Bu elementlar birgalikda ishlaganda, ma’lumotlar hal qilish uchun ishonchli asosga aylanadi va hodisalar kamdan-kam, qisqa va oldindan aytib bo’ladigan bo’ladi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.