القائمة الرئيسية

الصفحات

التقنيه
انهارده هنتكلم عن الفرق بين ال ETL وال ELT
بس خلونا الأول نتكلم هو ايه ال ETL عموما وبنستعمله في انهي مرحلة من مراحل ال Data Management
كنا اتكلمنا قبل كده ان احنا عندنا تقارير بتطلع لل Management والتقارير ديه بتبقي الداتا بتاعتها جايه من مصادر مختلفه زي سيستم ال HR وسيستم المخازن وسيستم خاص بعمليات التصنيع وغيره
بجمع الداتا ديه كله في مكان واحد زي ال Data Warehouse او ال Data Lake
وبعد كده بنعمل عليها بعض العمليات عشان اقدر اطلع الداتا ديه في تقارير يقدر ال Management ياخد عليها القرارات اللي بتفيد الشركة
ف ال ETL ده عبارة عن نقل الداتا من مصادر الداتا المختلفه اللي موجوده في الشركه لل Data Warehouse او ال Data Lake بتاعتي
طب خلونا نعرف ايه معني ETL بالتفصيل شوية
كلمة ETL هي اختصار لتلات كلمات وهما Extraction و Transform و Load
هنمسك واحدة واحدة فيهم نتكلم عنها بالتفصيل ومن كذا منظور
اول حاجه ال Extraction
ديه زي ما قلنا اننا بنسحب فيها الداتا من ال Source System
بس خلينا ناخد مثال اننا في شركة اتصالات او في بنك وخلينا نفترض ان عندي حوالي 1000 عميل
هل ال 1000 عميل دول لازم يكونوا عملوا مكالمات او سحب او إيداع يوميا
طبعا مش لازم
فبالتالي انا مش محتاج اني اسحب الداتا بتاعت ال 1000 عميل كل يوم
انا محتاج اسحب الداتا بتاعت العملاء اللي عملوا عمليات بس
طب انا لو سحبت الداتا بتاعت ال 1000 عميل كلها اسمها Full Load
ولو سحبت الداتا بتاعت العملاء اللي عملوا العمليات بس واللي حصل عليها تغيير يبقي ديه عمليها اسمها Incremental Load
يبقي احنا كده اتكلمنا عن حاجه جوه ال Extraction
اسمها Extraction Types وهما زي ما قلنا
1- Full Load
2- Incremental
- طب هل متاح اني اسحب الداتا ديه في أي وقت من اليوم زي مانا عايز ؟
هقولك علي حسب
علي حسب احتياج البيزنس
وديه نقطه ممكن نسميها Extraction Timings
هل هو محتاج انه يشوف الداتا تكون معمولها تحديث لاقرب وقت ممكن اللي هو ممكن يكون اخر خمس دقايق او اخر ساعه
ولا ممكن يشوفها لحد امبارح وهو هيكون موافق علي حاجه زي كده
فيه بعض ال Source Systems مبيسمحش انك تعمل Hit لل Database بتاعته غير بعد الساعه 12 بالليل وبنسميها Extraction Window وكمان ممكن تخش علي ال Replica Database عشان يضمن انه يكون اقل وقت تكون ال Database بتاعته تكون Loaded فيها
وفيه اللي بيقولك انا هطلعلك الداتا اللي انت طالبها كل يوم علي File وانت تتصرف وتشتغل عليه بعد كده
الحاله اللي انت بتقدر تاخد الداتا Direct من الداتا بيز بنسميها اون لاين
والحاله اللي انت مبتقدرش تاخد الداتا غير في أوقات معينه من ال Replica او في صورة File بنسميها offline
كده خلصنا ال Extraction
تاني نقطه هي ال Transformation
وديه ببساطه انك بتعمل شوية تعديلات وتغييرات عالداتا اللي انت جايبها من ال Source System عشان تكون متوافقه مع شكل ال Target Model اللي انت هتحط فيه الداتا بتاعتك
مثال: انت عندك Source A و Source B و Source C
في الأول ال Gender عباره عن M و F
في التاني ال Gender عباره عن 1 و 2
في التالت ال Gender عباره عن Male و Female
وانت في ال Target Model او التقارير بتاعتك هتطلعها بشكل Male و Female
فطبعا مش هتيجي في التقارير تشوف احتمالات كل Male هتيجي بأشكال ايه فاحنا بنعمل الكلام ده واحنا بننقل الداتا من ال Source System واحنا رايحين بيها لل Target
طب ايه اشكال ال Transformations اللي ممكن تحصل علي الداتا
1- Cleaning
وده زي المثال اللي قلناه من شوية وهو انك بتحط Value 0 مكان Null او نوحد Male بشكل معين
2- Removing Duplicates
بنشيل ال records المكررة عشان متخشش عندنا في ال Target Model وتضرب التقارير
3- Format Unification
لو عندي Column فيه date بوحد الشكل فيه
لو عندي Column المفروض انه شايل فلوس فبتأكد اني ناقل الأرقام صح والكسور موجوده ومطارتش
4- Filtering
نفترض ان التقارير طالبة الطلبات المكتمله زي قرض او طلب كريديت كارد
ف في الحالة ديه ممكن نعمل تصفيه اني ماخدش الطلبات اللي الحاله بتاعتها غير مكتمل
5- Joining
لو عندي اكتر من Table في ال Source System وانا هاخد بيانات واحطها في Table واحد في ال Target Model ف في الحالة ديه بنعمل Join ونسحب الداتا مره واحده
6- Splitting
لو عندي Column بيشيل DateTime علي بعضه وكان فيه من ضمن الطلبات اني احط في ال Target Model ال Date في Column وال Time في Column ف في الحالة ديه هنستخدم Splitting
طبعا الTransformation مجال واسع وممكن نتكلم فيه كتير بس هنكتفي لحد هنا فيها ونكمل الباقي
والمرحلة التالته في ال ETL وهو ال Load
في المرحلة ديه بتنفذ الخطوتين اللي قبلها
بمعني اني لو سحبت الداتا بتاعت ال 1000 عميل كلهم يبقي هنا هينفذ ال Full Load
ولو سحبت الداتا بتاعت العملاء اللي حصل عليهم تغيير بس يبقي هنفذ Incremental Load
ف ال Load تتبع ما قبلها
- طيب ايه الفرق بين ال ETL وال ELT ؟
هو فرق الترتيب اول حاجه اني في عملية ال ETL بنفذ ال Extraction الأول وبعد كده ال Transformation وبعد كده ال Load
انما في التانيه في عملية ال ELT بيحصل تغيير في الترتيب وبنعمل Extraction الأول وبعد كده Load للداتا في ال Target Model وبعد كده بنعمل Transformation لو احتاجنا وبنحط تحتها كذا خط كلمة لو احتاجنا
- ايه الحالات اللي بنحتاج ننفذ فيها ETL وايه الحالات اللي بنحتاج ننفذ فيها ELT ؟
برده الاجابه علي حسب
يعني علي حسب انا شغال علي Data Warehouse ولا علي Data Lake ولا علي Cloud
لو عندي Data Warehouse وعندي المقدرة اني اجيب سيرفرات لل ETL Tool وعندي حد Expert يقدر يشتغل عليها وعلي حسب نوع الداتا خصوصا لو كانت Structured وحجمها لو كان متوسط مش مهول يبقي في الحاله ديه الاختيار الاحسن هو ETL
اما لو غير كده وانا شغال بحط الداتا بتاعتي علي Data Lake او Cloud يبقي في الحاله ديه الاحسن اني اشتغل ELT
أشهر ال ETL Tools اللي بتتعامل مع ال Data Warehouse
1- Informatica Powercenter
2- IBM Datastage
3- Talend
4- Microsoft SSIS
الخلاصة (الزيتونة) :
ال ETL هي العملية اللي كانت موجوده من بدري لكن نتيجه للتغييرات وال Technologies الجديده اللي ظهرت، ظهر الاحتياج اننا نغير فيها ونستخدم ELT
فكل واحده فيهم ليها استخدامات وكل واحده بنحتاجها في وقت ما اثناء عملية نقل الداتا من ال Source Systems لل Target Model بتاعنا
ال ETL ممكن تكون عملية معقده وبتاخد وقت وفلوس عشان تنفذها لكن بتتيح ليك انك تعمل تنظيف للداتا اثناء نقلها وانك متنقلش كل الداتا وتاخد منها المهم بس وكمان بتساعدك انك تنفذ بعض ال Standards المهمه زي Data Privacy and Data Governance
وال ELT اللي كتير بيفضلوها دلوقتي ممكن تكون عمليه ابسط واسرع وبتشوف نتايجها في وقت قليل لكن بتفتقد بعض ال Standards زي عملية ال Data Governance
لازم تشوف ايه هو ال Business Need عندك وعلي أساسه تقدر تقرر انت ممكن تمشي بأنهي طريقة فيهم.

تعليقات