GH GambleHub

Տվյալների ամբողջականությունը

1) Ի՞ նչ է տվյալների ամբողջականությունը

Տվյալների ամբողջականությունը հատկությունների և վերահսկման մի շարք է, որը երաշխավորում է, որ տվյալները ճիշտ են, համաձայնեցված և հակասական են կյանքի բոլոր ցիկլերում 'աղբյուրներից և փոխակերպումներից մինչև վիտրին, API և ալյումինե։ Նպատակը այն է, որ նույն պնդումը նույն պատասխանը տա կրկնության ժամանակ, և ցանկացած փոփոխություն հետադարձ և ստուգելի է։


2) Ամբողջականության տեսակները և որտեղ են նրանք ապրում

Էժան (Entity) 'յուրահատուկ առաջնային բանալիներ, կրկնօրինակների բացակայություն։

Հղում (Referential) 'FK ճիշտ կապերը; «կախված» հղումների բացակայությունը։

Ուղղանկյուն (Domain) 'թույլատրելի միջակայքներ և շարժիչներ (տիպ, երկարությունը, տեղեկատուներ)։

Բիզնես կանոնները 'առարկայական ոլորտի ինվարանտներ (հավասարակշռություն 240, լարերի գումարը = 0 և այլն)։

Ժամանակավոր 'միապաղաղությունն ու համակարգումը, ճիշտ խաղահրապարակային գոտիները։

Հասանելիության քաղաքականությունները ՝ RFC/CLS-ը չեն խախտում տեսանելի տվյալների տրամաբանական համաձայնությունը։


3) Տվյալների և սխեմայի պայմանագրերը (ճշմարտության աղբյուրը)

Մենք ձևական պայմանագրեր ենք տալիս հավաքածուի և իրադարձությունների համար։ կիրառում ենք դրանք մուտքի մոտ և յուրաքանչյուր փոխակերպումից հետո։

Օրինակ (YAML, պարզեցված)

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) Գործարքային երաշխիքներ և մեկուսացում

ACID-ը OLTP-ի համար 'ատոմականություն, կոնսիստենտություն, մեկուսացում, երկարակեցություն։

Մեկուսացման մակարդակները ՝ Read Committed/Repeatable Read/Serializable, ընտրեք «կեղտոտ «/անպարկեշտ/ֆանտոմային ընթերցումների վտանգի տակ։

OLAP-ը և lakehouse-ը 'աղյուսակների ատոմային համայնքները (transaction log), idempotent sink և schema-evolution, որոնք վերահսկում են ձեռնարկությունները։

KPI բանաձևերի համաձայն ՝ սեմանտիկ շերտը մեկ ճշմարտություն է պարունակում կոդավորման և API-ի համար։


5) Բաշխված համակարգերը 'կարգը, կրկնությունը, գաղափարախոսությունը

Իրադարձությունների կարգը 'մենք օգտագործում ենք «event _ time» + «ingested _ at», watermarks և www.lateness; ագրեգատները հիմնվելով event time-ի վրա։

Կրկնվող առաքումը (at-leport-once) 'գլոբալ «event _ id», idempotency keys, ups.ru/merge-ը համապատասխան ձևով։

Out-of-order ՝ պատուհանների վերահաշվարկ, հետաձգման ռազմավարություն, փոխհատուցում։

Exactly-once իմաստը 'տեղափոխությունը կարող է լինել at-leport-once, ընդունիչը' idempotent։


6) Ամբողջականության վալիդացիան (DQ) յուրաքանչյուր շերտի վրա

Միացրեք ամբողջականության կանոնները CI/CD-ում և rantaim plins-ում

Աննոմալիա 'կրկնօրինակներ, ժամանակի ընդմիջումներ, բաշխման կտրուկ տեղաշարժեր։

Freshness/Completeness/Uniqueness/Valid Values/Referential Integrity.

KPI բանաձևի վերահսկումը 'մրցույթի տարբերությունը և թեստերը արդյունքների համընկնելու համար (golden sets)։

Էքսպորտի վերահսկումը 'ռուսական հավաքածուի արգելքը խախտումներով (quarantine)։

Օրինակ (Great Expectronics-ոճ)

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) Ֆինանսական և վիրահատական ամբողջականությունը

Double-entry (կրկնակի ձայնագրություն) 'դեբեթ/վարկ հավասարակշռության մեջ։ cut-off։

Հիբրիդային ինվարանտներ 'վճարումների գումարը = մարման գումարը + 108 + 108։

Վիրահատական ինվարանտները ՝ SLA/guardrail-մետրիերը չեն կոտրում բիզնես կանոնները (օրինակ, մեքենայի վերականգնումը չի ստեղծում կրկնօրինակներ)։


8) Լինեժը, աուդիտը և վերարտադրողականությունը

Գծեր ՝ աղբյուրից մինչև վիտրին/ֆիչ; փոխակերպման և սեփականատերերի տեսանելիությունը։

Աուդիտ-թրեյլերը 'ով փոխեց, որ երբ և ինչու։ սխեմաների/բանաձևերի/ջոբների տարբերակներ։

Ձյունանուշները/վերահսկողական կետերը 'անցյալ հաշվետվությունները հաշվելու և հաստատելու հնարավորությունը։

Repro 'նույն հարցումը նույն կտրման վրա նույն արդյունքն է (տարբերակները և շերտերը)։


9) Անվտանգությունն ու գաղտնիությունը առանց ամբողջականության կորստի

RSA/CLS: Տողերի/զանգերի ֆիլտրերը չպետք է խախտեն ինվարանտները (օրինակ, տեսանելի ընտրության գումարը պետք է համընկնի հայտարարվածի հետ)։

Դիմակավորում/տոկենիզացիա 'դետերմինացված ռազմավարություններ, որպեսզի դեդուպը և հանրաքվեական ամբողջականությունը պահպանվեն։

Կոդավորումը 'ջրանցքում և «112-ում» սեղմումից հետո։ բաների կառավարում և հասանելի աուդիտ։

DSAR/Retention: հեռացումը/անանունացումը չեն կոտրում կապը (կասկադային քաղաքականություն)։


10) Ինքնատիրապետում և վերանորոգման ավտոմատացում

Quarantine 'կասկածելի կուսակցությունների/մարտերի մեկուսացում; սպառողներին '«մաքուր» ճյուղը։

Replay/Backfill: Պատուհանի վերագտնումը անփոփոխ rox ամսագրից։

Reconcile: Շերտերի և համակարգերի խառնուրդ (rultioncurated no marts; աղբյուրը MSH)։

Dedup/Compaction/Rebuild: ինդեքսների/ագրեգատների վերականգնման ընթացակարգերը։

Policy-as-code: «Ի՞ նչ անոմալիա է ազդում ռուսական էսկալացիայի վրա»։


11) Մոդելավորման և պահեստավորման պրակտիկան

Կայուն բանալիներ 'surrogate PK (UUID/ULID), անփոփոխ բնական բանալիներ գրքերում։

Նորմալիզացիան բացատրում է դենորմալիզացիան. FK կապերը աղբյուրներում, դենորմալիզացված վիտրինները տրամաբանության տարբերակի վերահսկմամբ։

SCD1/SCD2 'կառավարվող պատմություն ռուսական համար։

Տեսակավորումը/կլաստերիզացիան 'բարելավում է RLE/zone-maps-ը և պարզեցնում է ծալքերը։

Հեշին և վերահսկողական գումարները 'ֆայլերի/կուսակցության ամբողջականության ստուգում։


12) Ժամանակի և հաշվետվությունների ամբողջականությունը

Բանաձևի տարբերակները '2025 թվականի հունվարին զեկույցը պետք է վերարտադրվի X- ի տարբերակի բանաձևը։

Cut-off-ը և «ռուսական ժամանակահատվածը» 'վիտրինի և արխիվային կտրվածքների սառեցումը։

Late arriving facts-ը 'վերամշակման մեխանիկա և կրկնօրինակներ, որոնք ցույց են տալիս զեկույցի տարբերակը։

Վերամարմնավորման փաստարկները 'ձեռքով ձեռնարկությունները միայն աուդիտի հետ են։


13) Մոսկվա և API

API պայմանագիրը 'սխեմաներ, տեսակներ, պարտադիր դաշտեր, սխալներ։ տարբերակումը (v1/v2)։

Մուտքի վալիդացիան 'reject վատ payload' a, չի «լռել»։

Idempotent POST 'idempotenty բանալին, խոհարարը անվտանգ է։

Էքսպորտը ֆայլերին 'կուսակցության, հեշի, ստորագրության համաձայնություն։


14) Անտիպատերնի

XXIII-ը պրոդ պահանջների և վյուխների մեջ կոտրվում է MINOR-էվոլյուցիայի ժամանակ։

FK «բառերով» 'հղումների իրական ստուգման բացակայություն։

Լուռ տվյալների ուղղումներ առանց տեղեկատվության և հաշվետվությունների։

TZ-ի խառնուրդը և ժամանակի ձևերը նույն հավաքածուի մեջ։

KPI-ի վերարտադրությունը առանց տարբերակների և ամսագրերի։

Դեդուպլիզացիայի միակ բանալին առանց պահեստային ռազմավարության։

DSAR-ի հեռացումը առանց կապերի կասկադի ստուգման։


15) Իրականացման ճանապարհային քարտեզը

1. Eurentory & քննադատություն 'հավաքածուի/իրադարձությունների քարտեզը, սեփականատերերը, ռիսկերը, ինվարանտները։

2. Պայմանագրեր և սխեմաներ 'ձևավորել տեսակներ/սահմանափակումներ/FK, CI-ստուգումներ։

3. DQ-ը ռուսական pline: Freshness/Completeness/Uniqueness/RI, quarantine, alerts։

4. Գործարքային հիմքը ՝ atomic-sink, ups.ru/merge, SCD-պատմություն, բանաձևերի տարբերությունը։

5. Լինեժը և աուդիտը 'կատալոգը, ուղեղը, change-logs, 71-logs։

6. Վերականգնման քաղաքականությունները 'replay/backfill/dedup/reconcile որպես կոդ։ runbook’и и SLO MTTR-data.

7. Անվտանգություն/priv: RSA/CLS, դիմակավորում, կոդավորում, DSAR գործընթացներ։

8. Հաշվետվություններ ՝ cut-off, freeze-srezs, KPI տարբերակների կառավարում։


16) Չեկի թուղթը նախքան հավաքածուի/վիտրինի թողարկումը

  • PK/FK և հիբրիդային սահմանափակումները տեղադրված են և անցնում են թեստեր։
  • Սխեմաների/բանաձևերի տարբերակումը ներառված է. schema-diff կանաչ է։
  • DQ կանոնները (թարմ/ամբողջական/եզակիություն/միջակայք/RI) կանաչ են։
  • Idempotent գրառումներ ՝ ups.ru/merge, idempotenty բանալին (իրադարձությունների համար)։
  • Ժամանակը '«event _ time» և «ingested _ at», TZ = UTC; քաղաքականությունն է։
  • Լինեժը և աուդիտը տեսանելի են. ներառում են quarantine և alerta։
  • RFC/CLS/դիմակավորումը չի խախտում ինվարանտները և RI-ը։
  • DSAR/Retention-ը փորձարկվել է; cut-off/արխիվը պատրաստ է։

17) Մինի ձևանմուշները

SQL ՝ Հղման ամբողջականության ստուգում

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/rep.ru (կեղծ-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"

SCD2 սխեման չափման համար

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

18) Արդյունքը

Տվյալների ամբողջականությունը ոչ թե միասնական ստուգում է, այլ երաշխիքների համակարգի միջոցով 'պաշտոնական պայմանագրեր և սահմանափակումներ, գործարքային և բաշխված ինվարանտներ, վալիդացիա և ավտոմատիկա վերանորոգման, վերելակ և աուդիտ, սեփականաշնորհում և իրավունք։ Երբ այս տարրերը միասին են աշխատում, տվյալները դառնում են որոշումների հուսալի, իսկ միջադեպերը հազվադեպ են, կարճ և կանխատեսելի։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։