ما هو أفضل أسلوب للانتقال من قاعدة بيانات OLTP العلائقية إلى مكعب OLAP؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

لدي قاعدة بيانات OLTP قياسية إلى حد ما وأدركت أنني بحاجة إلى إجراء بعض الاستعلامات المعقدة والمتوسطات والانحرافات المعيارية عبر أبعاد مختلفة في البيانات.

لذا فقد لجأت إلى SSAS وإنشاء مكعبات OLAP.

ومع ذلك، لإنشاء المكعبات، أعتقد أن بنية مصدر البيانات الخاصة بي يجب أن تكون في تكوين "نجمة" أو "ندفة ثلج" (وهو ما لا أعتقد أنه موجود الآن).

هل الإجراء العادي هو استخدام SSIS للقيام بنوع من عمليات ETL على قاعدة بيانات OLTP الأساسية الخاصة بي إلى قاعدة بيانات علائقية أخرى موجودة في التكوين "النجمي" المناسب مع الحقائق والأبعاد، ثم استخدام قاعدة البيانات هذه كمصدر بيانات لمكعبات OLAP؟

شكرًا

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

الجواب هو:نعم ولكن.

يحتوي البعد في SSAS على علاقات بين السمات التي يمكن استخدامها في سلسلة من الحقول لتصفية الشريحة حسب.يمكن أن تكون هذه العلاقات هرمية (أكثر من مستوى واحد - يمكن أن تحتوي إحدى السمات على أحد الوالدين وأبناء.يمكنك أيضًا إنشاء مسارات للتنقل لأسفل (تسمى التسلسلات الهرمية في SSAS) تعمل كالسمات ولكنها تحتوي على تنقل موجه للأسفل.

للقيام بذلك، يجب أن يكون لديك مفاتيح متاحة في قاعدة البيانات والتي تعيش في علاقة هرمية صارمة (أي:لا يمكن أن تحتوي المفاتيح على علاقات غامضة حيث يمكن أن يكون للطفل أكثر من والد واحد).لاحظ أن هذه ليست القصة بأكملها ولكنها قريبة بدرجة كافية من الواقع في الوقت الحالي.

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

ندفة الثلج عبارة عن مخطط 3NF-ish (ليس من الضروري أن يكون 3NF بشكل صارم - يمكنك تسوية أجزاء منه عمليًا) وله علاقات 1:M فقط.يمكن أن تدعم SSAS بعض هياكل الأبعاد الأخرى مثل الوالدين والطفل (علاقة الوالدين والطفل مع صلة ذاتية متكررة) وأبعاد M:M (علاقات M:M - بالضبط ما تبدو عليه).تعتبر أبعاد هذا النوع أكثر تعقيدًا ولكنها قد تكون مفيدة لك.

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

إذا لم يسمح لك البائع أو الأطراف الأخرى بإضافة طرق عرض إلى قاعدة بيانات المصدر الخاصة بك، فقد تتمكن من استخدام طريقة عرض مصدر البيانات بدلاً من ذلك.يمكن أن تحتوي DSV على جداول افتراضية تسمى "الاستعلامات المسماة" والتي يتم ملؤها من استعلام قاعدة البيانات.

تنضم جداول الحقائق إلى الأبعاد.في SSAS2005+، يمكنك الانضمام إلى جداول حقائق مختلفة بحبيبات مختلفة ضمن بُعد ما.عادةً لا أستخدم هذا كثيرًا في مستودع البيانات، ولكن قد تكون هذه الميزة مفيدة إذا كنت تحاول استخدام البيانات المصدر دون الحاجة إلى تدليكها بشكل مكثف.

إذا لم ينجح هذا، فقد يتعين عليك كتابة عملية ETL لملء مخطط النجمة أو ندفة الثلج.

بعض الشروط:

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

  2. بخصوص (i)، ربما لن تتمكن من استخدام المكعبات كمصدر بيانات للشاشات في تطبيقك.إذا كنت بحاجة إلى حساب المتوسطات لشيء يريد المستخدم رؤيته على الشاشة، فمن المحتمل أن تضطر إلى حسابه في إجراء مخزن خلف الشاشة.

  3. إذا قمت بذلك، قم بإعداد قاعدة بيانات منسوخة وملء المكعب منها.قم بتحديث قاعدة البيانات هذه بشكل دوري، بحيث يمكن تشغيل عملية ETL الخاصة بك من مجموعة بيانات متسقة داخليًا.إذا قمت بالتشغيل من قاعدة بيانات مباشرة، فإنك تخاطر بملء بعض العناصر لاحقًا بناءً على السجلات التي تم إنشاؤها بعد تشغيل العملية المقابلة.

    يمكن أن يكون لديك الموقف الذي تقوم فيه بتشغيل تحميل البعد، ثم يتم إدخال بيانات جديدة في النظام.عند تشغيل تحميل جدول البيانات الفعلية، فإنه يحتوي الآن على بيانات تعتمد على بيانات الأبعاد التي لم يتم تحميلها.سيؤدي هذا إلى كسر المكعب ويتسبب في فشل عملية التحميل.سيؤدي التحديث الدفعي لقاعدة بيانات منسوخة لتشغيل ETL أو تحميل المكعب إلى تخفيف هذه المشكلة.

    إذا لم يكن لديك خيار قاعدة بيانات منسوخة، فيمكنك إعداد المزيد من سياسات السماح للبيانات المفقودة.

  4. إذا كانت بيانات الإنتاج الأساسية الخاصة بك بها مشكلات كبيرة في جودة البيانات، فسوف تنعكس في المكعبات.جيجا.

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