سؤال

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

لكنني لا أعرف أي شيء عن طرازات بيانات OLAP متعددة الأبعاد، واجهت صعوبة في العثور على أي معلومات مفيدة على الإنترنت.

كيف يتم تخزين المعلومات على القرص؟ ما هي هياكل البيانات التي تشمل المكعب؟ إذا لم يستخدم طراز Molap جداول، مع الأعمدة والسجلات، ثم ... ماذا؟ خاصة في البيانات عالية الأبعاد، ما هي أنواع هياكل البيانات التي تجعل طراز MOLAP فعال للغاية؟ هل تستخدم تطبيقات MOLAP شيئا مماثل لمؤشرات RDBMS؟

لماذا هي خوادم OLAP أفضل بكثير في معالجة الاستفسارات المخصصة؟ نفس أنواع التجمعات التي قد تتخذ ساعات لمعالجة في قاعدة بيانات علنية عادية، يمكن معالجة قاعدة بيانات MilliSeconds في مكعب OLTP. ما هي الميكانيكا الأساسية للنموذج الذي يجعل هذا ممكنا؟

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

المحلول

لقد قمت بتنفيذ بضعة أنظمة تحسيم ما تفعله مكعبات OLAP، وهنا زوجين فعلناه للحصول عليها للعمل.

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

2) غالبا ما تكون الصفيف الأساسي متنازع، لذا فقد تم إنشاؤنا لإزالة جميع الخلايا الفارغة لحفظ الذاكرة - الكثير من الحساب المؤشر الصلب الأساسي ولكنه يعمل.

3) كما كان لدينا هيرماريشيات من المفاتيح، يمكننا كتابة الروتين بسهولة بسهولة للحقام / حتى التسلسل الهرمي بسهولة. على سبيل المثال، سنقوم بالوصول إلى السنة من البيانات، من خلال ممارسة الشهور، والتي بدورها محددة إلى أيام و / أو أسابيع. في كل مستوى، سنقوم بتجميع البيانات كجزء من بناء حسابات مكعب أسرع بكثير.

4) لم ننفذ أي نوع من أنواع اللغات، لكننا ندعم التمرين على جميع المحور (حتى 7 مكعباتنا الأكبر)، وتم تحويلها مباشرة إلى UI الذي أعجبه المستخدمون.

5) نفذنا الأشياء الأساسية في C ++، ولكن هذه الأيام أحسب C # قد تكون سريعة بما يكفي، لكنني قلق بشأن كيفية تنفيذ صفائف متفرعة.

نأمل أن يساعد، تبدو مثيرة للاهتمام.

نصائح أخرى

الكتاب خدمات تحليل Microsoft SQL Server 2008 أطلقت العنان يوضح بعض خصوصيات SSAS 2008 بالتفصيل الكريم. ليس الأمر "هنا بالضبط كيفية عمل SSAS تحت غطاء محرك السيارة"، ولكن من المواجهة بشكل خاص، خاصة على جانب بنية البيانات. (ليس الأمر مفصلا / محددا تماما حول الخوارزميات الدقيقة.) عدد قليل من الأشياء التي أعاني منها، كهواة في هذا المجال، تجمعوا من هذا الكتاب. هذا كل شيء عن SSAS Molap:

  • على الرغم من كل الحديث عن مكعبات متعددة الأبعاد، لا تزال بيانات الحقائق (AKA EXTRY GROUP)، إلى تقريب أول، في نهاية المطاف في الجداول 2D أساسا، صف واحد لكل حقيقة. يبدو أن عددا من عمليات OLAP تتكون في النهاية من التكرار فوق الصفوف في الجداول 2D.
  • لا يحتمل أن تكون البيانات أصغر بكثير داخل Molap من داخل جدول SQL المقابل. خدعة واحدة هي أن كل سلسلة فريدة تخزن مرة واحدة فقط، في "متجر سلسلة". يمكن أن تشير هياكل البيانات بعد ذلك إلى السلاسل في شكل أكثر إحكاما (بواسطة معرف السلسلة، أساسا). تقوم SSAs أيضا بضغط الصفوف داخل متجر Molap في شكل ما. يتيح هذا تقلص أنني أفترض المزيد من البيانات في RAM في وقت واحد، وهو أمر جيد.
  • وبالمثل، يمكن أن تكرر SSAS في كثير من الأحيان أكثر من مجموعة فرعية من البيانات بدلا من مجموعة البيانات الكاملة. بعض الآليات في اللعب:
    • افتراضيا، يبني SSAs مؤشر تجزئة لكل قيمة ذات قيمة / سمة؛ وبالتالي فإنه يعرف "على الفور" التي تحتوي الصفحات على القرص على البيانات ذات الصلة، على سبيل المثال، السنة = 1997.
    • هناك بنية التخزين المؤقت حيث يتم تخزين مجموعات فرعية ذات صلة من البيانات في ذاكرة الوصول العشوائي منفصلة عن مجموعة البيانات بأكملها. على سبيل المثال، قد تكون قد أخبأت مؤقتا بقطعة فرعية تحتوي فقط على عدد قليل من الحقول الخاصة بك، وهذا يتعلق فقط بالبيانات من عام 1997. إذا كان الاستعلام يسأل فقط حوالي عام 1997، فسوف يتكرر فقط في تلك الفرعية، وبالتالي تسريع الأمور وبعد (ولكن لاحظ أن "الفرعية الفرعية" هي، إلى تقريب واحد، مجرد جدول ثنائي الأبعاد.)
    • إذا كنت قد تم تحديدها مجاميع محددة مسبقا، فيمكن أيضا أن تكون هذه المجموعات الفرعية الصغيرة مسبقا في وقت معالجة المكعب، بدلا من حساب / مؤقت فقط عند الطلب.
  • صفوف الجدول الحقائق SSAs هي حجم ثابت، الذي يفترض أنه يفترض في شكل ما. (في SQL، في قاطعة، قد يكون لديك أعمدة سلسلة عرض متغير.)
  • تعني هندسة التخزين المؤقت أيضا أنه بمجرد حساب تجميع، لا يحتاج إلى الدجد من القرص وإعادة حسابه مرارا وتكرارا.

هذه هي بعض العوامل في اللعب في SSAs على أي حال. لا أستطيع أن أدعي أنه ليس هناك أشياء حيوية أخرى أيضا.

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