سلامة البيانات
1) ما هي سلامة البيانات
سلامة البيانات هي مجموعة من الخصائص والضوابط لضمان صحة البيانات واتساقها واتساقها طوال دورة حياتها، من المصادر والتحولات إلى واجهات المتاجر وواجهات برمجة التطبيقات والصادرات. الهدف هو أن نفس البيان يعطي نفس الإجابة عند تكراره، وأي تغييرات يمكن تتبعها والتحقق منها.
2) أنواع النزاهة وأين تعيش
الكيان - المفاتيح الأساسية الفريدة، لا تكرار.
روابط FK المرجعية الصالحة عدم وجود روابط «معلقة».
نطاق-صالح النطاقات والتنسيقات (نوع، طول، أدلة).
قواعد الأعمال التجارية: ثوابت مجال الموضوع (الرصيد ≥ 0، ومبلغ المعاملة = 0، وما إلى ذلك).
مؤقت: الرتابة واتساق الطابع الزمني، مناطق زمنية صحيحة.
سياسات الوصول: لا تنتهك RLS/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) ضمانات المعاملات والعزلة
حمض OLTP: الذرة، الاتساق، العزلة، المتانة.
مستويات العزل: اقرأ القراءة الملتزمة/القابلة للتكرار/Serializable - اختر القراءات «القذرة «/الفريدة/الوهمية.
OLAP و lakehouse: ارتباطات ذرية للجداول (سجل المعاملات)، المغسلة الخفية وتطور المخطط مع التحكم في التوافق.
اتساق صيغ KPI: طبقة دلالية → حقيقة واحدة للتقارير وواجهات برمجة التطبيقات.
5) النظم الموزعة: النظام والتكرار والخصوصية
ترتيب الحدث: استخدام 'event _ time' + 'ingerested _ at' والعلامات المائية وتحمل التأخر ؛ على أساس وقت الحدث.
إعادة التسليم (مرة واحدة على الأقل): «حدث _ معرف» عالمي، جداول مفاتيح الخصوصية، مزعجة/مدمجة بمفتاح مستقر.
خارج النظام: إعادة حساب النوافذ، استراتيجية التأخير، التعويض.
مرة واحدة بالضبط في المعنى: يمكن أن يكون النقل مرة واحدة على الأقل، جهاز استقبال - غبي.
6) التحقق من النزاهة (DQ) في كل طبقة
ندرج قواعد النزاهة في CI/CD وفي وقت التشغيل:- النضارة/الاكتمال/التفرد/القيم الصالحة/النزاهة المرجعية.
- الشذوذ: رشقات نارية من التكرارات، وفجوات زمنية، وتحولات حادة في التوزيعات.
- التحكم في صيغ KPI: إصدار الحسابات والاختبارات لمطابقة النتائج (المجموعات الذهبية).
- مراقبة الصادرات - حظر إصدار مجموعات تتضمن انتهاكات (الحجر الصحي).
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) السلامة المالية والتشغيلية
القيد المزدوج: الخصم/الرصيد الدائن في الرصيد ؛ التسويات الموجزة في فترة التوقف.
مجموع الثوابت: مبلغ التعويض = مبلغ الشطب + الرسوم + التسويات.
الثوابت التشغيلية: مقاييس SLA/guardrail لا تنتهك قواعد العمل (على سبيل المثال، الإصلاح التلقائي لا يخلق نسخًا مكررة).
8) النسب ومراجعة الحسابات وقابلية الاستنساخ
الربط: المصدر للعرض/الخاصية ؛ إبراز التحولات والمالكين.
مسارات مراجعة الحسابات: من الذي غير ماذا ومتى ولماذا ؛ المخطط/الصيغة/نسخ الوظائف.
اللقطات/نقاط التفتيش: القدرة على إعادة حساب التقارير السابقة وتأكيدها.
ريبرو: نفس الاستعلام على نفس الشريحة → نفس النتيجة (الإصدارات والطبقات).
9) الأمن والخصوصية دون فقدان السلامة
RLS/CLS: يجب ألا تنتهك مرشحات الصف/العمود الثوابت (على سبيل المثال، يجب أن يتطابق مجموع العينة المرئية مع العينة المعلنة).
الإخفاء/الترميز: استراتيجيات حتمية لضمان الحفاظ على التخلص والسلامة المرجعية.
التشفير: في القناة و «على القرص» بعد الضغط ؛ الإدارة الرئيسية ومراجعة الدخول.
DSAR/الاحتفاظ: الحذف/إخفاء الهوية لا يكسر الاتصال (سياسة التتابع).
10) الخدمة الذاتية والإصلاح التلقائي
الحجر الصحي: عزل الأطراف/الدفعات المشبوهة ؛ المستهلكين - فرع «نظيف».
إعادة/ملء خلفي: يعيد تشغيل نافذة من سجل خام غير قابل للتغيير.
التسوية: التسويات بين الطبقات والنظم (raw↔curated↔marts ؛ istochnik↔DWH).
Dedup/Compaction/Rebuild: إجراءات النظام لإصلاح المؤشرات/المجاميع.
السياسة كرمز: «ما هو الشذوذ → عتبات → → التصعيد».
11) ممارسات النمذجة والتخزين
مفاتيح مستقرة: بديل PK (UUID/ULID)، مفاتيح طبيعية غير متغيرة في الكتب المرجعية.
Normalizatsiya↔denormalizatsiya: اتصالات FK في المصادر، معارض غير طبيعية مع التحكم في النسخة المنطقية.
SCD1/SCD2: التاريخ الموجه للأبعاد.
الفرز/التجميع: يحسن خرائط RLE/المنطقة ويبسط التسويات.
التجزئة والشيكات: التحقق من سلامة الملفات/الدفعات.
12) النزاهة بمرور الوقت وفي الإبلاغ
إصدارات الفورمولا: يجب أن يكون تقرير يناير 2025 قابلاً للتكرار مع صيغة الإصدار X.
قطع و «إغلاق الفترة»: تجميد نوافذ المتاجر وشرائح الأرشيف.
الحقائق المتأخرة: آليات إعادة التعبئة وإعادة الفرز مع علامة إصدار التقرير.
توثيق التجاوزات: التعديلات اليدوية - مراجعة الحسابات فقط.
13) التكامل وواجهات برمجة التطبيقات
عقد واجهة برمجة التطبيقات: المخططات والأنواع والحقول المطلوبة ورموز الخطأ ؛ (v1/v2).
التحقق عند المدخل: رفض الحمولات السيئة، لا «تصلح بصمت».
البريد اللطيف: مفتاح الغباء، إعادة المحاولة آمنة.
التصدير إلى الملفات: اتساق الدفعة، التجزئة، التوقيعات.
14) أنتيباترن
حدد في استفسارات المبيعات والعواصف الثلجية - ينهار مع تطور طفيف.
FK «بالكلمات»: لا يوجد فحص مرجعي حقيقي.
تصحيحات البيانات الصامتة دون مراجعة الحسابات والإبلاغ.
امزج TZ وتنسيقات الوقت في مجموعة واحدة.
«Grip» KPI يتجاوز بدون إصدارات وسجلات.
مفتاح تفريغ واحد بدون استراتيجيات احتياطية.
حذف DSAR دون التحقق من الرابط المتتالي.
15) خارطة طريق التنفيذ
1. المخزون والحرجية: خريطة المجموعة/الحدث، المالكون، المخاطر، الثوابت.
2. العقود والمخططات: إضفاء الطابع الرسمي على الأنواع/القيود/عمليات التحقق من التوافق بين المعارف والكيماويات.
3. DQ قيد الإعداد: نضارة/اكتمال/تفرد/ري، حجر صحي، تنبيهات.
4. أساس المعاملات: حوض ذري، اضطراب/دمج، تاريخ SCD، إصدار الصيغة.
5. النسب ومراجعة الحسابات: الدليل، والتتبع، وسجلات التغيير، وسجلات الدخول.
6. سياسات الإصلاح: إعادة التشغيل/الردم/التخلص/التوفيق كرمز ؛ runbook'и и SLO MTTR-data.
7. Security/prive: RLS/CLS, masking, encryption, DSAR process.
8. إعداد التقارير: قطع، تجميد الشرائح، إصدار KPI.
16) قائمة مرجعية/حالة عرض قبل الإصدار
- يتم تحديد قيود PK/FK والمجال واختبارات النجاح.
- تمكين التخطيط/الصيغة ؛ مخطط ديف الأخضر.
- قواعد DQ (النضارة/الاكتمال/التفرد/النطاقات/RI) خضراء.
- المدخلات الخاطئة: مضطربة/مدمجة، مفتاح الخصوصية (للأحداث).
- الوقت: 'حدث _ وقت' و 'ابتلع _ at'، TZ = UTC ؛ سياسة البيانات المتأخرة.
- النسب ومراجعة الحسابات ظاهرتان ؛ الحجر الصحي والتنبيهات.
- RLS/CLS/القناع لا ينتهك الثوابت و RI.
- اختبار DSAR/الاحتفاظ ؛ قطع/أرشيف جاهز.
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
سياسة الحجر الصحي/الإصلاح (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) خلاصة القول
سلامة البيانات ليست فحصًا واحدًا، ولكنها نظام ضمان من البداية إلى النهاية: العقود والقيود الرسمية، والمعاملات الثابتة وتوزيعها، والتحقق من صحة الإصلاحات وأتمتة، والنسب ومراجعة الحسابات، والخصوصية والحقوق. عندما تعمل هذه العناصر معًا، تصبح البيانات أساسًا موثوقًا للحلول، وتكون الحوادث نادرة وقصيرة ويمكن التنبؤ بها.