Building a Resilient ETL Pipeline: From Architecture to Error Handling
الـ Pipeline الاحترافي مش شغال بس، هو اللي بيوجه الأعطال .
اعتمدت مسار: DB (OLTP) » Staging «
» Data Warehouse (DWH).
بنقل البيانات للـ Staging As is _ Full Load حاله لو الجدول موجود بيتم حذفه اولا قبل التحديث.
(Drop+Insert)
الـTransformation بيتم من خلال Views لتحويل البيانات من Normalization إلى De-normalization.
الهدف؟ لو حصل أي عطل في المراحل الأولى، الـ DWH بيفضل محتفظ بآخر نسخة سليمة، و التقارير مش بتتأثر.
بدل الرن اليدوي، عملت لكل جدول Stored Procedure خاص به يقوم بعملية الـ TRUNCATE + INSERT.
- Main Procedure (RunFullETL)
استخدمت TRY...CATCH Blocks داخل البروسيجر لضمان معالجة أي خطأ فني فور حدوثه بدون ما الـ System ينهار.
بنيت نظام Metadata Logging في جدول ETL_LOG.
الجدول ده بيسجل (Batch ID, Start,End Time, Duration, Status). ده بيخليني أراقب الأداء وأعرف الـ Failure حصل فين بالظبط من خلال الـ ERROR_MESSAGE.
الخلاصة: هنا منقلناش الداتا بس.