Talal Almutiri
Talal Almutiri

@TALALSQL

16 تغريدة 1,390 قراءة Sep 02, 2020
سأتحدث عن ال Data warehouse من حيث المفاهيم الأساسية في عدة نقاط
⁃التعريف والخصائص
⁃الفرق بينها وبين قواعد البيانات
⁃الفرق بين OLTP و OLAP
⁃عمليات ال ETL
#علم_البيانات
مستودع البيانات DW هو قاعدة بيانات يتم إنشائها بهدف تحليل البيانات.
يتم تجميع البيانات من مصادر مختلفة قد تكون قواعد بيانات مثل اوراكل أو SQL Server أو ملفات أكسل وغيرها
ليس بالضرورة أن تكون من أكثر من مصدر قد يكون مصدر واحد ( عدة جداول في نفس قاعدة البيانات)
كمثال نريد تحليل بيانات متجر الكتروني يحتوي على ٣ جداول عملاء، منتجات، ومبيعات.
الفكرة هو أن ننشئ قاعدة بيانات جديدة كمستودع بيانات وهو مستقل عن قاعدة بيانات المتجر الأساسية.
ال DW تكون معزولة عن قاعدة البيانات ال live حتى لا تؤثر عليها أيضا يكون التحليل أسرع.
ال DW تصمم بشكل مقارب لDB الأصلية وقد يختلف حسب طبيعة التحليل.المهم أنها تكون ملخصة بمعنى إذا لدينا ١٠٠ سجل مبيعات في قاعدة البيانات الlive وهي مبيعات١٠ أيام. فتكون الDW فقط ١٠ سجلات حيث يتم تجميع مبيعات كل يوم في سجل واحد.
وهذا مفهوم الData granularity سنتحدث عنه في سلسلة مستقلة
يغلب على ال DW أنها تكون للبيانات المنظمة بمعنى جداول أو ملفات الاكسل. لكن جمع البيانات الغير منظمة مثلاً من تويتر تكون في dataset وتحفظ غالبا كملف اكسل او csv. ويغلب على ال DW انها للتحليل الوصفي تقارير و لوحات معلومات.
أما التحليل التنبؤي قد تسمى sandbox أو Data Lake
خصائص ال DW
⁃موضوعية التوجيه subject-oriented
⁃متكاملة Integrated
⁃متغيرة الوقت time-variant
⁃غير متغيرة أى متطايرة Non-volatile
نستعرض معنى هذه المصطلحات أفضل من الترجمة
Subject-oriented
إذا تم إنشاء DW لشركة مبيعات فيمكن لقسم المبيعات النظر لل DW من الموضوع الذي يهمه ويمكن لقسم التسويق النظر لها حسب احتياجه
بمعنى توفير البيانات حسب موضوع أو قسم محدد.
Integrated
تعني أنها مجمعة من مصادر مختلفة ومخزنة في مكان واحد بشكل منظم.
Time-variant
يمكن النظر للبيانات في أوقات مختلفة. مثلاً
المبيعات خلال شهر. سنة الخ
None-volatile
لا تتم على مستودع البيانات عمليات الإضافة أو التعديل أو الحذف. فقط قراءة ويتم تعبئة وتحديث ال DW عن طريق عمليات ETL
الفرق بين DB و DW
قاعدة البيانات تعمل على مبدأ Online transaction processing (OLTP) وهو يعني عمليات الاضافة والتعديل والحذف التي تتم بشكل real time
ال OLTP عكس Batch processing و BP يعني تجميع عدة عمليات ثم ارسالها دفعة وحدة لقاعدة البيانات هذا المفهوم خارج موضوع ال DW
أما ال DW تعمل على مبدأ Online analytical processing (OLAP) ويعني تطبيق queries معقدة على بيانات تاريخية بهدف تحليلها وعرضها من جوانب مختلفة كمثال ال cube
الصورة توضح كيف نرى المنتجات بألوانها المختلفة في أوقات مختلفة
قاعدة البيانات يتم بنائها بالتركيز على العلاقات وأنها تكون normalized ( نظرية التسوية) normalization
أما ال DW تكون على شكل schema ولها عدة أمثلة أشهرها star schema ( راح احاول أوضحها في سلسلة ثانية)
بعض الفروق الأخرى
عمليات ال ETL
ال Extraction, Transformation and Loading
هي خطوات تتم لنقل البيانات من قاعدة البيانات إلى ال DW
تبدأ بالاستخراج Extraction حيث يتم تحديد البيانات التي تحتاجها في التحليل وتكون من مصادر مختلفة أو من عدة جداول في نفس قاعدة البيانات.
ثم يتم التحويل Transformation تتأكد من اسماء الحقول ( خصوصا اذا كانت البيانات من مصادر مختلفة) مثلا تجد حقل customer_id في مصدر و cus_id في مصدر أخر
فتعمل على توحيد ودمج البيانات في هيئة واحدة format
أيضا تتأكد من أنواع البيانات data type مثلا حقول التاريخ والوقت وغيرها
للتوضيح أكثر مثلا بيانات العملاء في قاعدة البيانات مقسومة على جدولين يتم توحيدها في جدول واحد حسب الاحتياج في التحليل
الخطوة الأخيرة Loading هي نقل هذه البيانات إلى ال Data warehouse
ال ETL يمكن تنفيذها من خلال العديد من البرامج من أشهرها Oracle Data Integrator و SQL Server Integrated Services (SSIS)
و Kafka
وإن شاء الله الوقت يساعد ونتكلم عن SSIS ولو بشكل مبسط.
الخلاصة: ال DW تحتوي على تفاصيل كثيرة لذا فضلت أن تكون بعض المواضيع المتفرغة في سلسلة أخرى.
لكن المهم أنها قاعدة بيانات موحدة ويتم نقل البيانات لها عن طريق ETL

جاري تحميل الاقتراحات...