dbt / المتقدم: الأدلة والعزل والنشر القابل للتعافي / الدرس 17
التنسيق والخطافات والإخفاق الجزئي
نسّق نتائج البناء والنشر دون افتراض معاملة للمشروع كله أوأمان كل إعادة.
في هذه الصفحة
أهداف الدرس
- ميّز جدولة الرسم ومنع الاختبار وحالة الهدف المثبتة.
- راجع الخطافات والإعادة بعقود آثار صريحة.
يتبع البناء الاعتماديات ولا يمثل تثبيتاً عالمياً واحداً
يعالج build موارد مختارة ومدعومة بترتيب الرسم، ومنها النماذج والاختبارات والبذور واللقطات. قد يمنع اختبار فاشل بشدة error العمل اللاحق المعني وفق القواعد. لا يعني ذلك التراجع عن علاقة بُنيت أومنع كل فرع مستقل قبل المخرج. يحتاج الإصدار سياسة نشر مستقلة من نجاح العقد. قرر بقاء المستهلك على إصدار متحقق حتى كل الفحوص، واحفظ ما بُني أوفشل أوتُخطي عند الانقطاع.
احفظ النتيجة الجزئية بدلاً من اختزالها بالفشل
يحوي النموذج نجاح حقيقة وفشل تأكيد مفتاح وتخطي تقرير. ليس مخطط run_results الأصلي، لكنه يوضح قصور عبارة «فشل الأمر». قد تحتوي الحقيقة بيانات جديدة والتقرير منشوراً أقدم. حدد العملية وحالة الهدف قبل الإعادة. تختلف إعادة جدول حتمي من تكرار خطاف تراكمي أوإلحاق بلا مفتاح. احفظ النشر المتحقق السابق ونقطة المصدر في سجل التعافي.
{"scope":"local partial-build model","outcomes":{"fct_loans":"built","loan_id_unique":"failed","daily_branch_activity":"skipped"},"publication":"retain previous validated report until reconciliation"}
نموذج تعافٍ اصطناعي، لا مخرجات dbt ملتقطة أودليل تثبيت علاقة حقيقية.
تضيف الخطافات SQL وافتراضات خارج استعلام النموذج
قد ينفذ الخطاف SQL قبل المورد أوبعده. إدراج التدقيق أثر فعلي إذا شُغّل؛ لذا هو غير قابل للتشغيل ويستهدف علاقة مختبر خيالية فقط. قد تكرر المحاولات التدقيق دون هوية عملية أوبروتوكول يمنع التكرار. ويهم تراكم الخطافات وترتيب الحزمة والمشروع والمورد. تختلف المعاملات بالمحوّل؛ فلا تنقل مساعدات هدف معاملاتي لقاعدة بتثبيت مختلف. راجع SQL والصلاحيات لكل خطاف.
models:
- name: fct_loans
config:
post_hook:
- "insert into lab_audit.model_runs(model_name) values ('fct_loans')"
تكوين أثر توضيحي فقط؛ لا تُنشأ علاقة أويُكتب إليها، ولا يُعرض الإدراج بلا مفتاح كآمن للإعادة.
يخلق الإقرار المفقود عدم يقين عند الوجهة
قد تثبت القاعدة قبل فقد اتصال العميل أومهلته. لا تستنتج التراجع من النقل وحده. طابق هويات الهدف وسجلات العملية بالمسار المعتمد قبل تكرار تحديث أوبذرة أوإشعار. يحتاج المنسق ميزانية إعادة وملكية لتداخل التشغيلات المجدولة. قد تتعارض وظيفتان على الهدف رغم صحة كل رسم. وترتبط حالة المجدول بسجل قبول البيانات دون تطابقهما.
يجب التمرن على التعافي بدلالات الموارد الدقيقة
يشمل تمرين مستقل فشلاً بعد النموذج وقبل الاختبار وداخل الخطاف وبعد فقد إقرار التثبيت. تحقق من الهدف واحتفاظ المصدر وقرار النشر لكل حالة. تختلف إعادة تاريخ اللقطة والجدول التزايدي والبناء الكامل. لا تجعل التحديث الشامل علاجاً عاماً. لا تبدأ الدورة وظيفة أوتكتب تدقيقاً أوتعيد أمراً؛ تفحص JSON ونماذج إعادة نقية فقط، لا معاملات أوتنسيقاً أوتعافي مستودع.
الأخطاء الشائعة وإصلاحها
يُفترض أن فشل build يلغي كل نموذج سابق
- لماذا يحدث؟
- اختلطت الجدولة بمعاملة للمشروع كله.
- كيف تصلحه؟
- افحص نتائج الموارد والنشر الفعليين.
- كيف تتجنب تكراره؟
- افصل التعافي وتحويل المستهلك عن حالة الأمر.
تكرر الإعادة إدراج تدقيق بلا مفتاح
- لماذا يحدث؟
- لم تُصمم آثار الخطاف لتكرار المحاولة.
- كيف تصلحه؟
- استخدم مفتاح عملية أوبروتوكول تدقيق يمنع التكرار.
- كيف تتجنب تكراره؟
- راجع كل خطاف بسيناريو فشل وإعادة.
تُعامل مهلة الاتصال كدليل عدم الكتابة
- لماذا يحدث؟
- اختلط غموض النقل بنتيجة قاعدة معلومة.
- كيف تصلحه؟
- طابق المثبت قبل إعادة الأثر.
- كيف تتجنب تكراره؟
- احفظ هوية المصدر والعملية للتعافي.
اختبر فهمك
1. ما الذي قد يتعايش بعد نموذج البناء الفاشل المحلي؟
اعرض الحل المشروح
قد تكون الحقيقة جديدة والتأكيد فاشلاً والتقرير متخطى أوقديماً. حدد الهدف والنشر قبل الإعادة. يوضح JSON جزئية ممكنة لا ضمان تراجع ذري.
2. لماذا لا يكون خطاف التدقيق المعروض آمناً للإعادة وحده؟
اعرض الحل المشروح
يدرج صفاً دون هوية عملية أوقاعدة منع تكرار. قد تضيف المحاولة صفاً رغم ثبات النموذج. صمم البروتوكول وفق معاملات المحوّل ولا تفترض أن توقيت الخطاف يضمن أثراً واحداً.
أهم ما تعلمته
- قد يترك بناء الرسم حالة بيانات جزئية مهمة.
- تحتاج الخطافات والإعادة عقود آثار وتعافٍ صريحة.