जब हम डेटा वेयरहाउसिंग प्रोजेक्ट शुरू करते हैं, तो सबसे पहले हम डायमेंशनल टेबल को परिभाषित करते हैं। डायमेंशनल टेबल दिलचस्प बिट्स हैं, वह ढांचा जिसके चारों ओर हम अपना माप बनाते हैं। वे कई आकार और आकारों में आते हैं। इस लेख में, हम प्रत्येक प्रकार की आयामी तालिका पर करीब से नज़र डालने जा रहे हैं।
आयामी तालिकाएँ उन व्यावसायिक प्रक्रियाओं को संदर्भ प्रदान करती हैं जिन्हें हम मापना चाहते हैं। वे हमें वह सब बताते हैं जो हमें एक घटना के बारे में जानने की जरूरत है। चूंकि वे डेटा वेयरहाउस (डीडब्ल्यूएच) सिस्टम के मापन (अर्थात तथ्य सारणी) को सार प्रदान करते हैं, इसलिए हम परियोजना के किसी अन्य पहलू की तुलना में उनकी परिभाषा और पहचान पर अधिक समय व्यतीत करते हैं। तथ्य तालिका परिभाषित करें माप; आयामी तालिकाएं संदर्भ देती हैं। (तथ्य तालिकाओं के बारे में अधिक पढ़ने के लिए, डेटा वेयरहाउसिंग, स्टार स्कीमा, स्नोफ्लेक स्कीमा, और तथ्य तालिकाओं के बारे में तथ्यों पर ये पोस्ट देखें)।
आयाम तालिकाओं की मुख्य विशेषता उनकी विशेषताओं की बहुलता . है . विशेषताएँ वे स्तंभ हैं जिन्हें हम सारांशित करते हैं, फ़िल्टर करते हैं, या एकत्र करते हैं। उनके पास कम कार्डिनैलिटी है और आमतौर पर पाठ्य और अस्थायी होते हैं। आयामी तालिकाओं में अंतर्निहित व्यावसायिक कुंजी या सरोगेट कुंजी . के आधार पर एक प्राथमिक कुंजी होती है . यह प्राथमिक कुंजी आयाम तालिका को एक या अधिक तथ्य तालिकाओं से जोड़ने का आधार है।
तथ्य तालिकाओं की तुलना में, आयाम तालिकाएं आकार में छोटी, स्टोर करने में आसान और प्रदर्शन पर बहुत कम प्रभाव डालती हैं।
आइए अब उन कुछ आयाम तालिकाओं पर एक नज़र डालते हैं जो आपको डेटा वेयरहाउस परिवेश में मिलेंगी।
एक सामान्य आयाम तालिका:अनुरूप आयाम
हम एक बुनियादी प्रकार से शुरू करेंगे:अनुरूप आयाम। इनमें कई विशेषताएँ होती हैं, जिन्हें कई स्रोत तालिकाओं में संबोधित किया जा सकता है लेकिन जो एक ही डोमेन . को संदर्भित करती हैं (ग्राहक, अनुबंध, सौदा, आदि) अनुरूप आयामों का उपयोग कई तथ्यों के साथ किया जाता है और डेटा वेयरहाउस में अनाज/डोमेन मूल्य के लिए अद्वितीय होना चाहिए।
उदाहरण:
आइए एक विशिष्ट आयामी तालिका देखें, DIM_CUSTOMER
।
हम परिभाषित करते हैं:
id
– आयाम तालिका की प्राथमिक कुंजी.cust_natural_key
- ग्राहक के लिए स्वाभाविक कुंजी।first_name
- ग्राहक का पहला नाम।last_name
- ग्राहक का उपनाम।address_residence
- ग्राहक का आवासीय पता।date_of_birth
- ग्राहक की जन्मतिथि।marital_status
- क्या ग्राहक शादीशुदा है? Y (हाँ) या N (नहीं) के रूप में परिभाषित।gender
- ग्राहक का लिंग, एम (पुरुष) या एफ (महिला)।
आयाम तालिका विशेषताएँ व्यावसायिक आवश्यकता पर निर्भर करती हैं। हम उद्योग-विशिष्ट जानकारी (डिफ़ॉल्ट की तिथि, गतिविधि, आदि) रखने के लिए इस प्रकार की तालिका का विस्तार कर सकते हैं
विमीय तालिकाओं को धीरे-धीरे बदलना
जैसे-जैसे समय बीतता है, आयाम अपने मूल्यों को बदल सकते हैं। निम्नलिखित अनुच्छेदों में, हम ऐतिहासिक डेटा को संग्रहीत (या संग्रहीत नहीं) करने के तरीके के आधार पर वर्गीकृत आयामों की जांच करेंगे।
मान लें कि आपके पास एक ग्राहक आयाम है। ग्राहक के जीवनकाल में कुछ विशेषताओं के बदलने की संभावना है - उदा. फोन नंबर, पता, वैवाहिक स्थिति, आदि। इस प्रकार की तालिका को राल्फ किमबॉल धीरे-धीरे बदलते आयाम या एससीडी कहते हैं।
एससीडी कई प्रकार में आता है; उनमें से आठ काफी सामान्य हैं। इनमें से, आपको 0 से 4 प्रकार सबसे अधिक दिखाई देंगे; प्रकार 5, 6, और 7 पहले पाँच के संकर हैं। (नोट:इन एससीडी की नंबरिंग स्कीम 1 के बजाय 0 से शुरू होती है)
हाइब्रिड एससीडी अधिक लचीलापन और बेहतर प्रदर्शन प्रदान करते हैं, लेकिन सादगी की कीमत पर। हम इन तालिका प्रकारों का उपयोग तब करते हैं जब हमें वर्तमान . का विश्लेषणात्मक विश्लेषण करने की आवश्यकता होती है कुछ ऐतिहासिक . के साथ डेटा विचार।
SCD प्रकार 0:एक बार भरना
यह आयाम तालिका का सबसे बुनियादी प्रकार है:आप इसे एक बार भरते हैं और कभी नहीं इसे फिर से भरें। इसे संदर्भात्मक डेटा के रूप में मानें। इसका एक विशिष्ट उदाहरण दिनांक आयाम है। हमें इस आयाम को प्रत्येक DWH भार से भरने की आवश्यकता नहीं है। आयामी तालिका समय के साथ नहीं बदलती है। आप अधिक तिथियां प्राप्त नहीं कर सकते हैं या तिथियां नहीं बदल सकते हैं।
तथ्य तालिका आयाम की मूल विशेषताओं से जुड़ती है।
उदाहरण
आइए समय के आयाम को देखें:
संरचना बहुत सीधी है:
id
- सरोगेट कुंजीtime_date
- वास्तविक तिथिtime_day
- महीने का दिनtime_week
- वर्ष में सप्ताहtime_month
- साल में महीनाtime_year
- एक वर्ष का अंकीय प्रतिनिधित्व
SCD टाइप 1:डेटा को फिर से लिखना
जैसा कि नाम से पता चलता है, हम इस प्रकार की आयामी तालिका को प्रत्येक DWH लोड के साथ फिर से लिखते हैं। हमें उनका इतिहास रखने की आवश्यकता नहीं है, लेकिन हम उम्मीद करते हैं कि कुछ बदलाव होंगे।
टाइप 0 एससीडी और टाइप 1 के बीच का अंतर टेबल की संरचना में नहीं है। यह डेटा के रीफ्रेशिंग के साथ करना है। आप कभी भी टाइप 0 में डेटा रीफ्रेश नहीं करते हैं, लेकिन आप कभी-कभी टाइप 1 में करते हैं।
एक पुन:लिखने योग्य तालिका परिवर्तनों को संभालने का सबसे आसान तरीका है (हटाएं/सम्मिलित करें), लेकिन यह थोड़ा व्यावसायिक मूल्य जोड़ता है। एक बार जब आप इस तरह एक आयाम तालिका को परिभाषित करते हैं, तो ऐतिहासिक ट्रेसिंग स्थापित करना कठिन होता है।
तथ्य तालिका आयाम की वर्तमान विशेषताओं से जुड़ती है।
उदाहरण
आइए खाता आयाम देखें:
इसकी संरचना इस प्रकार है:
id
- टेबल की सरोगेट कुंजीaccount_name
- खाते का नामaccount_type
- खाते की श्रेणीaccount_activity
- विभिन्न प्रकार की गतिविधियों को चिह्नित करता है
अगर हम बदलाव से पहले के आंकड़ों को देखें, तो हमें यह दिखाई देगा:
यदि खाता प्रकार बदल गया है, तो डेटा को केवल ओवरराइट किया जाएगा:
SCD टाइप 2:ऐतिहासिक विशेषताओं को पंक्ति के आधार पर ट्रैक करना
यह DWH प्रणाली में ऐतिहासिक ट्रैकिंग का सबसे सामान्य रूप है। SCD प्रकार 2 तालिकाएँ आयामी विशेषताओं के प्रत्येक ऐतिहासिक परिवर्तन बीच के लिए नई पंक्तियाँ जोड़ती हैं DWH लोड होता है . इस प्रकार में, हम प्राथमिक कुंजी को एक सरोगेट कुंजी के रूप में परिभाषित करते हैं क्योंकि व्यावसायिक कुंजी में समय के साथ कई प्रतिनिधित्व होंगे। जब डेटा परिवर्तन को धारण करने वाली पंक्तियाँ बदलती हैं, तो हम सरोगेट कुंजी के लिए एक नया मान परिभाषित करते हैं जो तथ्य तालिका में मान से मेल खाती है। हमें कम से कम दो कॉलम जोड़ने होंगे, valid_from
और valid_to
, इतिहास को इस तरह से संग्रहित करने के लिए।
तथ्य तालिका सरोगेट कुंजी के माध्यम से आयाम की ऐतिहासिक विशेषताओं से जुड़ती है। एकत्रीकरण प्राकृतिक कुंजी . पर किया जाता है ।
उदाहरण
आइए पिछली ग्राहक आयाम तालिका देखें, जिसे अब दो दिनांक स्तंभों के साथ विस्तारित किया गया है:
आइए डेटा देखें:
विचार करने योग्य बातें:
- हम वर्तमान पंक्ति को कैसे फ़्लैग कर सकते हैं,
valid_to
? (आमतौर पर 31.12.9999, या NULL . के साथ ।) - हम पहली पंक्ति को कैसे फ़्लैग कर सकते हैं,
valid_from
? (आमतौर पर 01.01.1900, या पहली प्रविष्टि की तारीख के साथ)। - क्या आप एक समावेशी या अनन्य पंक्ति परिभाषित करते हैं? (ऊपर, हम एक समावेशी
valid_from
. का उपयोग करते हैं और एक विशिष्टvalid_to
)।
SCD प्रकार 3:कॉलम द्वारा ऐतिहासिक विशेषताओं को ट्रैक करना
टाइप 2 एससीडी के साथ, यह प्रकार ऐतिहासिक मूल्यों का प्रतिनिधित्व करने के लिए कुछ जोड़ता है। हालांकि, इस मामले में, हम नए कॉलम जोड़ रहे हैं। ये परिवर्तन से पहले एक आयामी पंक्ति विशेषता के मान का प्रतिनिधित्व करते हैं। आमतौर पर, हम विशेषता का केवल पिछला संस्करण ही रखते हैं।
ध्यान दें:इस SCD का उपयोग बहुत कम होता है।
तथ्य तालिका आयाम की वर्तमान और पूर्व विशेषताओं से जुड़ती है।
उदाहरण
आइए इस बार पिछले आवासीय पते के साथ ग्राहक आयाम देखें:
इस उदाहरण में, हमने एक नया कॉलम जोड़ा है, previous_address_residence
, ग्राहक के पुराने पते का प्रतिनिधित्व करने के लिए। यदि हम अपना प्रारंभिक उदाहरण देखें, तो इस तालिका में डेटा इस तरह दिखेगा:
ग्राहक के पिछले पते को छोड़कर, सभी ऐतिहासिक जानकारी खो जाती है।
SCD प्रकार 4:एक मिनी-आयाम जोड़ना
इस प्रकार का आयाम संरचनात्मक (प्रकार 3) या मूल्य (प्रकार 2) परिवर्तनों पर आधारित नहीं है। बल्कि, यह मॉडल में डिज़ाइन परिवर्तन पर आधारित है। यदि हमारी डायमेंशनल टेबल में अत्यधिक अस्थिर डेटा होता है - यानी डेटा जो बार-बार बदलता है - डायमेंशनल टेबल का आकार काफी बढ़ जाएगा।
इसे कम करने के लिए, हम अस्थिर विशेषताओं को मिनी-आयाम . में निकालते हैं . इन मिनी-आयामों को तब व्यावसायिक-प्रासंगिक स्तर पर एकत्रित किया जा सकता था। हालांकि, यह एकत्रीकरण नहीं होना चाहिए तथ्य एकत्रीकरण के साथ भ्रमित होना . उदाहरण इसे स्पष्ट कर देगा।
तथ्य तालिका आयाम की ऐतिहासिक विशेषताओं से जुड़ती है।
उदाहरण
आइए एक साधारण वित्तीय डेटा मार्ट से एक उदाहरण देखें। मान लीजिए कि आपको यह ट्रैक करने की आवश्यकता है कि कुछ ग्राहक अपने भुगतान में कितनी देर कर रहे हैं। आइए इस विशेषता को देय दिनों या डीपीडी कहते हैं। यदि हम टाइप 2 आयाम में हर दिन डीपीडी को ट्रैक करते हैं, तो तालिका का आकार जल्द ही प्रबंधनीय सीमा से आगे निकल जाएगा। इसलिए हम विशेषता निकालते हैं और डीपीडी की व्यावसायिक-प्रासंगिक अवधि पाते हैं - जैसे कि 30-दिन की वृद्धि (0-30 डीपीडी, 30-60 डीपीडी, 60-90 डीपीडी, आदि)
हम अन्य उच्च-अस्थिरता विशेषताएँ ले सकते हैं, जैसे कि आयु, और उनके लिए व्यवसाय-प्रासंगिक अवधियों का निर्माण भी कर सकते हैं (जैसे 20-30 वर्ष पुराना, 30-40 वर्ष पुराना, आदि)
यदि हम ग्राहक के मिनी-आयाम में डेटा को देखें, तो हमारे पास कुछ ऐसा होगा:
विशेषताएं हैं:
id
- सरोगेट प्राथमिक कुंजीDPD_period
- नियत अवधि के पिछले दिनDEM_period
- जनसांख्यिकी अवधि
साधारण तारा स्कीमा इस प्रकार दिखाई देगा:
ध्यान दें कि दोनों तालिकाओं की विशेषताओं पर कोई विश्लेषण करने के लिए, हमें उन्हें तथ्य तालिका के माध्यम से पाटना होगा।
SCD टाइप 5:रीराइटेबल एक्सटेंशन के साथ मिनी-डायमेंशन बनाना
यह हमारे हाइब्रिड आयामी तालिका निर्माणों में से पहला है। टाइप 5 एससीडी में, हम मिनी-डायमेंशनल डेटा के वर्तमान संस्करण को डायमेंशनल टेबल में जोड़ते हैं। हमें यह ध्यान रखना चाहिए कि हम केवल वर्तमान . जोड़ेंगे मुख्य आयाम के लिए मिनी-आयाम का प्रतिनिधित्व।
हम इस मिनी-डायमेंशन एक्सटेंशन को हर लोड (टाइप 1 "रीराइटेबल" एससीडी) के साथ फिर से भरते हैं।
हालांकि इस एक्सटेंशन के इतिहासीकरण से आकार संबंधी समस्याएं हो सकती हैं, लेकिन हमने उन्हें मिनी-आयाम तालिका के साथ पहले ही कम कर दिया है।
हम इस तकनीक का उपयोग तब करते हैं जब हम विश्लेषण करना चाहते हैं सीधे आयाम तालिकाओं पर।
उदाहरण
पिछले उदाहरण को वर्तमान मिनी-आयाम के साथ विस्तारित करते हुए, हम प्राप्त करते हैं:
dim_mini_customer_current
तालिका में नवीनतम विशेषता मान हैं जो dim_customer
टेबल। अब हम तथ्य तालिका (जो बहुत धीमी है) को पाटने के बिना ग्राहक-विशिष्ट विश्लेषण कर सकते हैं।
तथ्य तालिका आयाम की ऐतिहासिक विशेषताओं से जुड़ती है।
टाइप 6:टाइप 2 (ऐतिहासिक पंक्ति) आयाम एक पुनर्लेखन योग्य विशेषता के साथ
यह एक बहुत ही सामान्य आयामी निर्माण है। हम एक विशेषता जोड़ते हैं जो एक चीज़ को संग्रहीत करता है, आमतौर पर अंतिम ज्ञात मूल्य, जिसे हम हर लोड के साथ फिर से लिखते हैं। यह हमें सभी तथ्यों को उनके वर्तमान मूल्य के आधार पर समूहित करने में सक्षम बनाता है, जबकि ऐतिहासिक विशेषता डेटा को उसी रूप में प्रदर्शित करती है जैसा कि घटनाओं के समय था।
तथ्य तालिका अतिरिक्त वर्तमान आयामी मानों के साथ घटना-समय पर आयामी मूल्यों से जुड़ती है।
उदाहरण
आइए पिछली ग्राहक तालिका को current_address_residence
. के साथ विस्तृत करें स्तंभ।
अब हमारे पास एक विशेषता है जिसे हम प्राकृतिक कुंजी (cust_natural_key
) का उपयोग करके वर्तमान मान में अपडेट करेंगे। )।
टाइप 7:टाइप 2 (ऐतिहासिक पंक्ति) डाइमेंशन एक करंट मिरर के साथ
हम इस प्रकार का उपयोग तभी कर सकते हैं जब तालिका आयाम में कोई प्राकृतिक कुंजी हो। कुंजी नहीं बदलनी चाहिए इकाई के जीवनकाल के दौरान।
विचार सरल है:हम स्नोफ्लेक स्कीमा में आयामी तालिका का वर्तमान प्रतिनिधित्व जोड़ते हैं। फिर हम नए आयाम की प्राकृतिक कुंजी को तथ्य तालिका में सम्मिलित करते हैं। (ऐतिहासिक आयाम की सरोगेट कुंजी अभी भी मौजूद है।)
तथ्य तालिका घटना-समय पर आयामी मूल्यों और वर्तमान आयामी मूल्यों से जुड़ती है।
उदाहरण
आइए हमारे ग्राहक-खाता स्टार स्कीमा को देखें। हम नया आयाम जोड़ते हैं, dim_current_customer
, तथ्य तालिका के लिए। यह तालिका एक प्राकृतिक कुंजी, cust_natural_key
. के माध्यम से तथ्य तालिका से जुड़ी है ।
यह निर्माण हमें ग्राहक विशेषताओं के वर्तमान और ऐतिहासिक दोनों मूल्यों के साथ स्टार स्कीमा पर विश्लेषणात्मक प्रश्न करने में सक्षम बनाता है।
डोमेन आयाम
एक डोमेन आयाम आयामी तालिका का एक सरल रूप है। यह एक आयामी विशेषता के अंतर्निहित माप के डोमेन के बारे में जानकारी रखता है। ये टेबल विभिन्न कोड और व्याख्यात्मक मूल्यों को संग्रहित करते हैं।
उदाहरण
एक सरल उदाहरण एक मुद्रा तालिका होगी।
इस तालिका में, हम विभिन्न मौद्रिक इकाइयों के बारे में वर्णनात्मक जानकारी संग्रहीत करते हैं।
मेरी व्यक्तिगत राय में, डोमेन आयाम का सबसे अच्छा उपयोग उन डेटा मूल्यों के दस्तावेज़ीकरण में है जो हमें DWH सिस्टम में मिलते हैं।
जंक आयाम
ट्रांजेक्शनल सोर्स सिस्टम बहुत सारे संकेतक और झंडे उत्पन्न करते हैं। इन विशेषताओं को श्रेणीबद्ध डेटा माना जा सकता है, लेकिन वे व्यवसाय-प्रासंगिक या आत्म-व्याख्यात्मक नहीं हैं। हम इन सभी संकेतकों और झंडों को एक आयामी तालिका में दर्ज कर सकते हैं जिसे जंक आयाम . कहा जाता है . कबाड़ आयाम पतित आयामों का उपयोग करने का विकल्प है। यदि हम तथ्य तालिका को कई विकृत आयामों के साथ बोझ नहीं बनाना चाहते हैं, तो हम एक जंक आयाम बनाते हैं।
हमें ध्यान देना चाहिए कि हम संकेतकों और झंडों के सभी संभावित संयोजनों को नहीं भरते हैं। हम केवल वही भरते हैं जो स्रोत सिस्टम में मौजूद हैं।
उदाहरण
डायमेंशन टेबल डेटा वेयरहाउसिंग दुनिया के कंकाल हैं:सब कुछ उनके चारों ओर बनाया गया है। वे तथ्य सारणी जितने बड़े नहीं हैं, लेकिन उनकी संरचना अधिक जटिल हो सकती है।
आप कई प्रकार के आयाम तालिकाओं को एक साथ रख सकते हैं, यहां तक कि उन लोगों के अलावा भी जिनकी हमने अभी चर्चा की है। आपके व्यवसाय और उद्योग के बारे में क्या? अगर आपने डाइमेंशनल टेबल प्रकारों को किसी नई चीज़ में संयोजित किया है, तो हमें इसके बारे में बताएं!