أنشأت حزمة SQL Server Integration Services (SSIS) لتنفيذ خط ETL موثوق لإدارة بيانات (Students/HR). يعمل الـControl Flow كما يلي:
Truncate Student Table
تهيئة بيئة التحميل بإفراغ جدول الوجهة (truncate) داخل معاملة لضمان عدم تكرار البيانات.
Load Student Data
تحميل الداتا من المصدر (Excel/SQL/CSV) إلى جدول الوجهة باستخدام Data Flow مع:
تحويلات تنظيف (Trim/Null handling/Type Casting).
تدقيق قيود الأعمال (IDs فريدة، نطاقات التواريخ، القيم المرجعية).
تقسيم الأخطاء إلى Error Output مع تسجيل الصفوف غير الصالحة في جدول أخطاء.
Back Up Database Task
بعد نجاح التحميل، يتم إنشاء نسخة احتياطية كاملة لقاعدة البيانات مع تسمية ديناميكية بالوقت والتاريخ (yyyyMMdd_HHmm) والاحتفاظ بعدد محدد من النسخ.
Script Task (On Failure)
في حالة فشل أي خطوة، يتم تفعيل مسار الفشل (بالخط الأحمر) لتشغيل سكربت C# يرسل تنبيه بريد/Slack ويسجّل تفاصيل الخطأ (Message, Step, Duration) في جدول تشغيلات (ExecutionLog).
ربط المهام: استخدمت Precedence Constraints (أخضر=نجاح، أحمر=فشل) لضمان أن النسخ الاحتياطي لا يعمل إلا بعد التحميل الناجح، وأن السكربت يعمل فقط عند الإخفاق.
Connection Managers (أسفل الصورة) تُعرِّف مصادر ووجهات متعددة وتم ضبطها بمتغيرات وConfigurations لتبديل البيئات (Dev/Test/Prod) دون تعديل الحزمة.
الأداء: تفعيل Fast-Load مع BatchSize وCommitSize مناسبين، وفهارس مبدئية على مفاتيح البحث لتسريع الإدراج والتحقق.
التشغيل المجدول: تم نشر الحزمة على SSISDB وتفعيل SQL Server Agent Job للتشغيل اليومي مع إعادة محاولة تلقائية (Retries) وتتبع عبر SSIS catalog reports.
النتيجة
زمن التحميل أقل، صفر ازدواجية، تتبّع كامل للأخطاء، ونسخ احتياطي تلقائي يحمي البيانات بعد كل تشغيل ناجح.