تحويل قاعدة بيانات OLTP العلائقية إلى نموذج تخزين البيانات

StackOverflow https://stackoverflow.com/questions/868247

  •  22-08-2019
  •  | 
  •  

سؤال

ما هي أساليب التصميم الشائعة المتبعة في تحميل البيانات من نموذج قاعدة بيانات Entity-Relationship OLTP النموذجي إلى نموذج مستودع البيانات/Marts لمخطط Kimball Star؟

  • هل تستخدم منطقة التدريج لإجراء التحويل ثم تحميله إلى المستودع؟
  • كيف تربط البيانات بين المستودع وقاعدة بيانات OLTP؟
  • أين/كيف يمكنك إدارة عملية التحويل - في قاعدة البيانات مثل sprocs أو حزم dts/ssis أو SQL من كود التطبيق؟
هل كانت مفيدة؟

المحلول

أنا شخصياً أميل إلى العمل على النحو التالي:

  1. تصميم مستودع البيانات أولاً. على وجه الخصوص ، تصميم الجداول المطلوبة كجزء من DW ، متجاهلة أي طاولات التدريج.
  2. صمم ETL ، باستخدام SSIS ، ولكن في بعض الأحيان مع إجراءات SSIS إجراءات مخزنة في قواعد البيانات المعنية.
  3. إذا كانت هناك حاجة إلى أي جداول التدريج كجزء من ETL ، فلا بأس ، ولكن في الوقت نفسه ، تأكد من تنظيفها. يجب اقتطاع جدول التدريج المستخدم فقط كجزء من سلسلة واحدة من خطوات ETL بعد اكتمال هذه الخطوات ، مع أو بدون نجاح.
  4. لديّ حزم SSIS تشير إلى قاعدة بيانات OLTP على الأقل لسحب البيانات إلى جداول التدريج. اعتمادًا على الموقف ، قد يعالجون جداول OLTP مباشرة في مستودع البيانات. يتم تنفيذ جميع هذه الاستعلامات باستخدام (Nolock).
  5. وثيقة ، وثيقة ، وثيقة. توضيح ما يتم استخدام المدخلات بواسطة كل حزمة ، وحيث يذهب الإخراج. تأكد من توثيق المعايير التي يتم من خلالها اختيار المدخلات (آخر 24 ساعة؟ منذ النجاح الأخير؟ قيم الهوية الجديدة؟ جميع الصفوف؟)

لقد نجح هذا بشكل جيد بالنسبة لي ، على الرغم من أنني أعترف أنني لم أقم بالكثير من هذه المشاريع ، ولا أي مشاريع كبيرة حقًا.

نصائح أخرى

أنا أعمل حاليًا على دار بيانات صغيرة/متوسطة الحجم.نحن نعتمد بعض المفاهيم التي طرحها كيمبال، أي.مخطط النجوم مع جداول الحقائق والأبعاد.نحن نبنيه بحيث ترتبط الحقائق بالأبعاد فقط (وليس حقيقة بالحقيقة أو البعد ببُعد - ولكن هذا هو خيارنا، ولا نقول أن هذه هي الطريقة التي ينبغي أن يتم بها الأمر)، لذلك نقوم بتسوية جميع وصلات الأبعاد بجدول الحقائق.

نحن نستخدم SSIS لنقل البيانات من قاعدة بيانات الإنتاج -> قاعدة بيانات المصدر -> قاعدة البيانات المرحلية -> قاعدة بيانات التقارير (ربما كان بإمكاننا استخدام قواعد بيانات أقل، ولكن هذه هي الطريقة التي سقطت بها).

يعد SSIS أمرًا رائعًا حقًا لأنه يتيح لك تنظيم تدفقات البيانات الخاصة بك بشكل منطقي للغاية.نحن نستخدم مجموعة من مكونات SSIS والعمليات المخزنة، حيث إحدى الميزات الرائعة لـ SSIS هي القدرة على توفير أوامر SQL كتحويل بين تدفق البيانات المصدر/الوجهة.هذا يعني أنه يمكننا استدعاء procs المخزنة في كل صف إذا أردنا ذلك، وهو ما يمكن أن يكون مفيدًا (وإن كان أبطأ قليلاً).

نحن نستخدم أيضًا ميزة جديدة في SQL Server 2008 تُسمى تغيير التقاط البيانات (CDC) والتي تتيح لك تدقيق جميع التغييرات في الجدول (يمكنك تحديد الأعمدة التي تريد الاطلاع عليها في تلك الجداول)، لذلك نستخدم ذلك في قاعدة بيانات الإنتاج لمعرفة ما تغير حتى نتمكن من نقل تلك السجلات فقط إلى قاعدة البيانات المصدر للمعالجة.

أتفق مع الإجابة ذات التصنيف العالي ولكن اعتقدت أنني سأضيف ما يلي:

* Do you use a staging area to perform the transformation and then

تحميل في المستودع؟

يعتمد ذلك على نوع التحول سواء كان سيتطلب التدريج. يوفر التدريج فوائد لكسر ETL إلى أجزاء أكثر قابلية للإدارة ، ولكن يوفر أيضًا منطقة عمل تسمح بإجراء التلاعب على البيانات دون التأثير على المستودع. يمكن أن يساعد ذلك في (على الأقل) بعض عمليات البحث الأبعاد في منطقة التدريج التي تخزن المفاتيح من نظام OLTP ومفتاح أحدث سجل DIM ، لاستخدامه كبحث عند تحميل سجلات الحقائق الخاصة بك. يحدث التحول في عملية ETL نفسها ، لكنه قد يتطلب أو لا يتطلب بعض التدريج لمساعدته على طول الطريق.

* How do you link data between the warehouse and the OLTP database?

من المفيد تحميل مفاتيح الأعمال (أو المفاتيح الأساسية الفعلية إذا كانت متوفرة) في مستودع البيانات كمرجع إلى نظام OLTP. أيضًا ، يجب أن تسجل التدقيق في عملية DW نسب كل جزء من البيانات عن طريق تسجيل عملية التحميل التي قمت بتحميلها.

* Where/How do you manage the transformation process - in the

قاعدة البيانات مثل sprocs ، حزم DTS/SSIS ، أو SQL من رمز التطبيق؟

سيكون هذا عادةً في حزم SSIS ، ولكن غالبًا ما يكون من المفيد التحويل في استعلام المصدر. لسوء الحظ ، يجعل هذا الاستعلام المصدر معقدًا للغاية لفهمه وبالتالي الحفاظ عليه ، لذلك إذا لم يكن الأداء مشكلة ، فسيكون التحول في رمز SSIS هو الأفضل. عندما تقوم بذلك ، هذا سبب آخر لوجود منطقة انطلاق حيث يمكنك ذلك بعد ذلك يمكنك توصيل المزيد من الصلة في استعلام المصدر بين الجداول المختلفة.

شرح عملية جون سوندرز أمر جيد.

إذا كنت تتطلع إلى تنفيذ مشروع DataWarehouse في SQL Server ، فستجد جميع المعلومات التي تحتاجها لتسليم المشروع بأكمله ضمن النص الممتاز "مجموعة أدوات Microsoft Data Warehouse".

Funilly بما فيه الكفاية ، أحد المؤلفين هو رالف كيمبال :-)

قد ترغب في إلقاء نظرة على بيانات النمذجة قبو البيانات. يدعي حل بعض المشكلات ذات الأجل الوحيدة مثل تغيير السمات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top