it-swarm.asia

ما هي بعض الطرق لتنفيذ علاقة أطراف بأطراف في مستودع بيانات؟

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

ما هي بعض الطرق لتنفيذ علاقة أطراف بأطراف بين الأبعاد أو بين جدول الحقائق والأبعاد في مستودع البيانات وما هي الحلول التوفيقية التي يتسببون فيها فيما يتعلق بمستوى الدقة المطلوبة وأداء الاستعلام؟

26
Brian Ballsun-Stanton

في تجربتي ، فإن التسلسل الهرمي العودي هو الطريقة الأكثر عملية لمعالجة ذلك. يقدم المزايا التالية:

  1. عمق غير محدود.
  2. الدمج.
  3. المرونة.
  4. سرعة.

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

باستخدام الفهارس المفلترة ، يمكن أداء جدول كبير من الصلات الهرمية بسرعة فائقة للجداول المخصصة. والسبب هو أن كل صلة هي "الوالدين والطفل" فقط مقارنة "بربط الجدول بجدول البيانات". هذا الأخير لديه المزيد من الفهارس للمعالجة والتخزين.

لقد حاولت حل هذه المشكلة لسنوات عديدة. في الآونة الأخيرة ، هذا ما توصلت إليه.

17
IamIC

بعض السيناريوهات لعلاقات M: M في نموذج مستودع البيانات

معظم OLAP وأنظمة ROLAP لديها وسيلة للتعامل مع هياكل بيانات M: M الآن ، ولكن هناك بعض التحذيرات حول هذا الأمر التي ستحتاج إلى الانتباه إليها. إذا قمت بتنفيذ M: العلاقات M ستحتاج إلى مراقبة طبقة التقارير الخاصة بك والأدوات التي تريد دعمها.

السيناريو 1: البعد M: M في جدول الحقائق

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

الخيار 1 - M: M جدول جسر حقيقة السائق سيحتوي هذا على حجم كبير جدًا من البيانات ، حيث يحتوي على برامج تشغيل x صفوف المعاملات لسياسة معينة. يمكن لـ SSAS استهلاك بنية البيانات هذه مباشرة ، ولكن أبطأ في الاستعلام من خلال أداة ROLAP.

إذا كانت علاقتك M: M مبنية على كيانات خاصة بصف الحقائق (مثل السائقين في السيارة) فقد يكون ذلك مناسبًا لأداة ROLAP أيضًا ، فإن تقديم أداة ROLAP يدعم علاقات M: M (مثل استخدام السياقات في الأعمال شاء).

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

في هذه الحالة ، يمكنك إنشاء قائمة مميزة لمجموعات الرموز في كل حالة. قم بإنشاء جدول أبعاد مع صف واحد لكل تركيبة مميزة ، ولديك جدول ارتباط بين المجموعات والجداول المرجعية لرموز ICD نفسها.

يمكن أن يحتوي جدول الحقائق على مفتاح بُعد لبُعد "التوليفات" ، ويحتوي صف البُعد على قائمة مراجع إلى رموز ICD الفعلية. يمكن لمعظم أدوات ROLAP استهلاك بنية البيانات هذه. إذا كانت أداتك ستعمل فقط مع علاقة M: M الفعلية ، فيمكنك إنشاء طريقة عرض تحاكي علاقة M: M بين الحقيقة والجدول المرجعي للترميز. سيكون هذا هو النهج المفضل مع SSAS.

مزايا الخيار 1: - يمكن أن تكون الاستعلامات التي تتم فهرستها بشكل مناسب بناءً على اختيار صفوف جدول الحقائق ذات علاقة معينة من خلال الجدول M: M فعالة بشكل معقول.

  • نموذج مفاهيمي أبسط قليلاً

مزايا الخيار 2: - تخزين البيانات أكثر إحكاما

  • يمكنك محاكاة علاقة مستقيمة 1: M من خلال تقديم المجموعات بتنسيق يمكن للمستخدم قراءته ككود على بُعد "المجموعات". قد يكون هذا أكثر فائدة في أدوات الإبلاغ الغبية التي تفتقر إلى دعم علاقات M: M.

السيناريو 2: M: M العلاقة بين الأبعاد:

من الصعب التفكير في حالة استخدام ، ولكن يمكن للمرء أن يتصور شيئًا خارج الرعاية الصحية مع رموز التصنيف الدولي للأمراض مرة أخرى. في نظام تحليل التكاليف ، قد تصبح زيارة المرضى الداخليين بُعدًا ، وستكون لها علاقات M: M بين الزيارة (أو حلقة استشارية في NHS-talk) والترميزات.

في هذه الحالة ، يمكنك إعداد علاقات M: M ، وربما تدوين عرض يمكن قراءته بواسطة الإنسان على البعد الأساسي. يمكن إجراء العلاقات من خلال جداول وصلات M: M أو من خلال جدول "تركيبات" تجسير كما كان من قبل. يمكن الاستعلام عن بنية البيانات هذه بشكل صحيح من خلال كائنات الأعمال أو أدوات ROLAP ذات جودة أفضل.

من أعلى رأسي ، لا أستطيع أن أرى أن SSAS قادرة على استهلاك هذا دون نقل العلاقة مباشرة إلى جدول الحقائق ، لذلك ستحتاج إلى تقديم عرض لعلاقة M: M بين الترميز وجدول الحقائق صفوف لاستخدام SSAS مع هذه البيانات.

6
ConcernedOfTunbridgeWells

أود أن أعرف بالضبط أي نوع من العلاقات بين أطراف كثيرة تضعها في اعتبارك في نموذجك ، إما كما هو في نظام المعاملات أو أي نموذج بيانات موجود حاليًا.

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

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

5
Cade Roux

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

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

نمذجة التدرجات الهرمية البديلة باستخدام جدول جسر:

http://www.kimballgroup.com/wp-content/uploads/2012/05/DT62Alternative.pdf

ثلاثة خيارات للعديد من العلاقات (مرتبطة بتخصيصات الأسهم العددية - انظر التعليقات لبعض الأشياء المثيرة للاهتمام ذهابا وإيابا)

http://www.pythian.com/news/364/implementing-many-to-many-relationships-in-data-warehousing/

لسوء الحظ ، لم يعد لدى الكثير من مقالات أسبوع معلومات Kimball/DBMS mag روابط جيدة ...

5
Cade Roux

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

1
paranjai