تصميم مستودع البيانات مع أكثر من جداول حقيقة

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

  •  26-09-2020
  •  | 
  •  

سؤال

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

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

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

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

هل يعرف أي شخص بعض المراجع في هذا الجزء الدقيق من تصميم DW؟

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

المحلول

أخذ أسئلتك إلى الوراء.

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

من الكائنات التي ذكرتها:

استرداد حقيقة. الطابع الزمني هو البعد لحقيقة رد الاسترداد.

رسوم الاشتراك هي حقيقة. الطابع الزمني هو البعد لحقيقة رسوم الاشتراك.

استرداد يمكن أن يحدث أكثر من مرة. أنا أظن أن كل عميل لديه رسوم اشتراك واحدة. لذلك يبدو أن لدينا طاولان الحقائق حتى الآن، العملاء، واسترداد العملاء.

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

تذكر أيضا التأمين. يمكن للعميل الحصول على أكثر من سياسة واحدة. لذلك لدينا جدول الحقائق الثالثة.

يتم تصميم مستودع البيانات عادة باستخدام schema Star="noreferrer"> Star Schema مخطط Star هو أساسا جدول حقيقة واحدة متصلة بجداول ذات بعد واحد أو أكثر. من المحتمل أن يكون لديك أكثر من نجمة واحدة في مستودع بيانات، حيث أننا حددنا بالفعل 3 طاولات الحقائق.

نصائح أخرى

أدرك أنني أجب على وظيفة قديمة، لكنني غير راض عن أي من الإجابات المقدمة. أشعر أنه لا أجاب على السؤال.

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

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

ثلاث طرق للحفر عبر كريس أدامسون

و

يجب من المستودع - الحفر عبر Ralph Kimball

يمكنك الحصول على العديد من جداول الحقائق كما تريد.في مثالك قد يكون لديك شيء مثل:

href="https://i.stack.imgur.com/ul7fg.png" er="noreferrer">  Fact_ins_Transaction

dimproduct يسرد العديد من المنتجات - الاشتراك يجري أحد هؤلاء. dimtransactionype من شأنه إجراء المعاملات الممكنة (شراء واسترداد رسوم الاشتراك المتكررة ...)

لنفترض الآن أنك مهتم بإعداد اشتراك مبسط، يمكنك إضافة factsubscription مثل هذا:

 Fact_ins_subscription

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