2012-11-01 14 views
8

मैं एसक्यूएल 2008/एसएसआईएस में अपना पहला डाटावायरहाउस बना रहा हूं और मैं तथ्य सारणी लोड करने के आसपास कुछ बेहतरीन प्रथाओं की तलाश में हूं।एसक्यूएल/एसएसआईएस डेटावेयर हाउस तथ्य तथ्य लोडिंग, सर्वोत्तम प्रथाओं?

वर्तमान में मेरे डीडब्ल्यू में मेरे पास 20 आयाम (कार्यालय, कर्मचारी, उत्पाद, ग्राहक, आदि) हैं जो टाइप 1 एससीडी के हैं। मेरी DW संरचना में, वहाँ कुछ चीजें मैं पहले से ही आवेदन किया है कर रहे हैं:

  • नहीं Nulls
  • अज्ञात प्रमुख सदस्य में प्रत्येक आयाम (एस आईडी 0 आबादी (पाठ या 0 मंचन के दौरान सांख्यिक के लिए के लिए खाली के साथ प्रतिस्थापित)) चरण से उत्पादन मेज पर SCD प्रकार 1 लोड करने के लिए
  • Upsert
  • आयाम

मेरी तथ्य लोड हो रहा है लघु उद्योगों परियोजना में, वर्तमान पद्धति मैं लोड हो रहा है आयामों के लिए है की मेरी लोड करने के लिए DISTINCT का चयन करें प्रत्येक डीआईएम में एकाधिक लुकअप (20+) होने के बाद, डेटा के साथ FACT तालिका को पॉप्युलेट करना।

मेरी लुकअप के लिए मैं सेट:

  • पूर्ण कैश
  • "कोई मिलता-जुलता प्रविष्टियों के लिए" विफलताओं पर ध्यान न दें
  • "IsNull (surrogate_idkey) 0: surrogate_idkey" के साथ
  • व्युत्पन्न परिवर्तन प्रत्येक एसके के लिए इतना है कि यदि लुकअप विफल हो जाते हैं तो वे एसके आईडी 0 (अज्ञात सदस्य) के लिए डिफ़ॉल्ट होंगे।
  • मेरी आयाम लुकअप में से कुछ एक व्यापार कुंजी से अधिक है

इस का सबसे अच्छा तरीका है? ऊपर दिए गए विवरण के साथ मदद करने के लिए संलग्न चित्र।

enter image description here enter image description here enter image description here

उत्तर

5

ठीक लग रहा है। यदि आप प्रदर्शन समस्याओं में भागना शुरू करते हैं तो विकल्प हैं, लेकिन यदि यह स्थिर है (डेटा लोडिंग समय विंडो के भीतर समाप्त होता है, स्रोत सिस्टम संसाधनों से निकाला नहीं जा रहा है, आदि), तो मुझे बदलने का कोई कारण नहीं दिखता है।

कुछ संभावित मुद्दों पर नजर रखने के लिए ...

  1. होने 20+ अगर आपके आयाम आकार में वृद्धि पूर्ण कैश देखने-रूपांतरण एक समस्या पैदा हो सकता है ... लघु उद्योगों पर स्मृति की कमी के कारण प्रणाली ... लेकिन चूंकि वे टाइप 1 हैं, इसलिए मुझे चिंता नहीं होगी।
  2. पूर्ण कैश लुकअप "हाइड्रेट" पूर्व निष्पादन ... उनमें से 20 आप नीचे

एक सामान्य विकल्प (है कि आप ऊपर के लिए) को धीमा कर सकता होने से तथ्य तालिका डेटा निकालने के है स्रोत प्रणाली और एकल SQL कथन के माध्यम से आयाम कुंजी लुकअप करने से पहले इसे एक स्टेजिंग क्षेत्र में जमीन दें। कुछ विशेष रूप से इस उद्देश्य के लिए स्टेजिंग क्षेत्र में आयाम कुंजी मैपिंग टेबल का एक सेट भी रखते हैं। इससे स्रोत सिस्टम पर लॉकिंग/अवरुद्ध हो जाता है ... यदि आपके पास प्रत्येक लोड का बहुत अधिक डेटा है, और जब आप डेटा को चूसते हैं और उन 20+ लुकअप ट्रांसफॉर्म के माध्यम से चलाते हैं तो स्रोत सिस्टम को अवरुद्ध करना पड़ता है।

आपके पास बड़ी मात्रा में डेटा, बड़े आयाम, जटिल कुंजी मैपिंग (आमतौर पर एकाधिक स्रोत सिस्टम के कारण), और छोटी डेटा लोडिंग समय विंडो होने पर एक अच्छी स्टेजिंग क्षेत्र रणनीति अधिक महत्वपूर्ण हो जाती है।

+0

धन्यवाद बैंटन, वर्तमान में हम लोड हो रहे हैं (पूर्ण डंप) 4 मीटर रिकॉर्ड जिनमें 200 कॉलम होते हैं; और हर दिन नए रिकॉर्ड के बारे में 2k पंक्तियां; लोडिंग चरण काफी तेज़ है। प्रतिक्रिया के लिए धन्यवाद। – exxoid

+0

[कृपया का पालन करें, उपयोग और समर्पित बीआई साइट के लिए पहल साझा।] (Http://area51.stackexchange.com/proposals/70503/business-intelligence?referrer=EPHSm8-3avvaMxLjdRIeNg2)। मैंने पहली बार इस प्रश्न को उठाया [मेटा जब कोई बीआई साइट प्रस्ताव नहीं था।] (Http://meta.stackexchange.com/q/232414/201662) – bonCodigo

संबंधित मुद्दे