هندسة البيانات / الأساسي: العقود والدفعات القابلة للإعادة / الدرس 5
ETL وELT والتجهيز والنشر
اختر موضع التحويل من الحوكمة والقيود مع التحقق ومنشأ المدخل وحد نشر صريح.
في هذه الصفحة
أهداف الدرس
- تمييز ETL وELT دون أفضلية عامة.
- فصل المجهز والمرفوض وإصدارات المقبول.
لا يلغي موضع التحويل المسؤولية
تحول ETL البيانات قبل تحميل الوجهة المختارة، بينما تحمل ELT تمثيلاً ذا هوية ثم تحوله داخل بيئة الوجهة. يعتمد الاسمان على حد النظام المعلن. ليست إحداهما أكثر أمناً أو أقل كلفة أو أصح تلقائياً. اختر بحسب وصول المصدر وقدرات الوجهة والخصوصية والحجم وحاجة الإعادة. تحميل حقول خام حساسة لمنطقة واسعة الوصول ليس آمناً لمجرد أن الترشيح سيأتي لاحقاً. تظل الحاجة إلى التحقق والاحتفاظ المحدود والملكية وتعريف لحظة قبول البيانات المرئية للمستهلك قائمة.
سجل المدخل المقبول وإصدار الخرج المخطط
يحدد سجل التخطيط فترة مصدر اصطناعية واحدة ومخططاً وإصدار تحويل. ليس إعداداً لمجدول أو ادعاء بأن المهمة نجحت. ينبغي أن تستخدم الإعادة المدخل والتحويل المعلنين نفسيهما عند طلب قابلية إعادة الإنتاج، لا الملفات الأحدث مصادفة. احفظ المدخل الخام غير قابل للتغيير وفق الاحتفاظ والخصوصية، أو احتفظ بمرجع موثوق عندما لا يناسب حفظه كاملاً. مسار ملف وحده هوية ضعيفة إذا أمكن استبدال محتواه دون إصدار.
{
"run": "lab-batch-2026-10-01",
"inputVersion": "synthetic-source-v1",
"interval": "2026-10-01",
"schemaVersion": 1,
"transformVersion": "normalize-v1",
"publicationState": "staged-not-yet-accepted"
}
يصف المنشأ والحالة فقط دون مستودع أو مسار أو مهمة.
أظهر المرفوض وحدد فشل النشر
يمكن للتدفق رفض صفوف خاطئة منفردة، أو إفشال الدفعة كلها، أو نشر نتيجة جزئية موسومة، لكن هذه عقود مختلفة. حدد السياسة المسموحة قبل ظهور نتيجة غير مريحة. احفظ أعداد المقبول والمرفوض وهوية المصدر وأسباباً محددة. لا تكشف الحمولة الخاصة في السجلات العامة، ولا تحتفظ بكل رفض بلا نهاية دون قرار. يجب أن يعرف القارئ اكتمال الإصدار للفترة الموعودة، وهل تستبدل التصحيحات المتأخرة البيانات أم تلحق بها؛ ولا تشرح حالة اكتمال المهمة ذلك.
انشر الدفعة الاصطناعية المقبولة فقط
يتحقق النموذج المحلي من مجال صغير مقصود، ويجهز المقبول، ويرفض النشر عند وجود أي مرفوض. قد تسمح مجموعة أخرى بعزل المرفوض وفق سياسة بيانات جزئية صريحة؛ أما هنا فالقبول للدفعة كلها. لا تتحقق الدالة من كل حقل إنتاج ولا تنفذ تخزيناً ذرياً دائماً. توضح لماذا لا يجوز أن يختفي الصف الخاطئ بصمت قبل نتيجة نشر ناجحة. اختبر المسار السلبي مع الدفعة الصحيحة، واحفظ الأسباب اللازمة لتصحيح المصدر أو التحويل.
def stage(rows):
good = [r for r in rows if type(r.get('qty')) is int and r['qty'] >= 0]
rejected = len(rows) - len(good)
return good, rejected
good, rejected = stage([{'qty': 2}, {'qty': -1}])
assert good == [{'qty': 2}]
assert rejected == 1
assert not (rejected == 0) # this contract forbids publishing the partial batch
assert stage([{'qty': 2}])[1] == 0
ترفض السالبة وتمنع شرط النشر بالنموذج دون حفظ تخزين فعلي.
عامل النشر كآلية اتساق
في الملفات، قد يحدد وصف مكتمل أو لقطة جدول مجموعة الملفات المقبولة. وفي قاعدة البيانات، قد تنسق معاملة الصفوف المستهدفة والحالة المرتبطة عندما يقعان ضمن حدها المدعوم. لا يصنع اكتمال المهام الموزعة حفظاً ذرياً عبر أنظمة اعتباطية. يقرأ المستهلك الإصدار المقبول المعلن، ولا تتنكر المحاولة الفاشلة كإصدار جديد كامل. نمذج إعادة التشغيل والتنظيف قبل حذف آثار التجهيز، وراجع ضمان كل مخزن أو مستودع أو صيغة بإصدارها بدلاً من افتراض تطابق الحفظ بينها.
الأخطاء الشائعة وإصلاحها
يعتبر الخام آمناً لأن التحويل لاحق
- لماذا يحدث؟
- أُهمل التعرض قبل التحويل.
- كيف تصلحه؟
- حدد الوصول والاحتفاظ من العقد.
- كيف تتجنب تكراره؟
- راجع كل منطقة ونسخة.
تظهر دفعة جزئية كمجموعة كاملة
- لماذا يحدث؟
- لم يرتبط الظهور بقبول النشر.
- كيف تصلحه؟
- استخدم آلية إصدار مكتمل مدعومة.
- كيف تتجنب تكراره؟
- اختبر الفشل بين الأجزاء والنشر.
تقرأ الإعادة مصدراً أحدث مختلفاً
- لماذا يحدث؟
- كانت الهوية موقعاً متحركاً لا إصداراً.
- كيف تصلحه؟
- ثبت المدخل والفترة.
- كيف تتجنب تكراره؟
- احفظ منشأ المدخل والتحويل لكل تشغيل.
اختبر فهمك
1. هل تبيح ELT تحميل كل الحساس لمنطقة مشتركة؟
اعرض الحل المشروح
لا. ضمن هذا الحد يسبق التحميل التحويل، ولذلك قد يكشف الوصول والاحتفاظ بالخام البيانات قبل المرشحات اللاحقة. قلل التمثيل المناسب أو قيّد الوصول إليه، ووثق الاستخدامات المقبولة. يغير موضع التحويل المعمارية، لا واجب حماية كل نسخة من البيانات.
2. للدفعة99 مقبولاً وواحد مرفوض. هل تنشر كاملة؟
اعرض الحل المشروح
فقط عندما يعرف العقد المعلن مسبقاً هذه النتيجة كاملة، أو جزئية صراحة وفق قواعد مقبولة. وإلا منع الرفض النشر. احفظ عدد المدخل المتوقع والسبب وقرار المالك، بدلاً من إسقاط الصف غير المريح بصمت وادعاء تسليم مجتمع المصدر كاملاً.
أهم ما تعلمته
- لا يعوض الموضع التحقق والخصوصية.
- جهز واقبل وانشر بحد اتساق معلن.