डायमेंशनल डेटा जो धीरे-धीरे या अप्रत्याशित रूप से बदलता है, उसे स्लोली चेंजिंग डाइमेंशन (एससीडी) विश्लेषण में कैप्चर किया जाता है। डेटा वेयरहाउस वातावरण में, एक आयाम तालिका में एक प्राथमिक कुंजी होती है जो प्रत्येक रिकॉर्ड और जानकारी के अन्य टुकड़ों की विशिष्ट रूप से पहचान करती है जिन्हें आयामी डेटा के रूप में जाना जाता है।
विभिन्न SCD प्रकारों के लिए सभी अद्यतन विधियों को IRI CoSort में SortCL प्रोग्राम का उपयोग करके पूरा किया जाता है। IRI Voracity में SortCL प्रोग्राम चलाते समय उपयोग की जाने वाली SCD जॉब स्क्रिप्ट बनाने में सहायता करने के लिए एक विज़ार्ड है। अधिकांश एससीडी प्रकार मूल डेटा स्रोत से रिकॉर्ड का मिलान करने के लिए एक पूर्ण बाहरी जुड़ाव का उपयोग करते हैं, जिसमें प्रत्येक से एक कुंजी की बराबरी के आधार पर अद्यतन स्रोत में रिकॉर्ड होते हैं। टाइप 4, हालांकि, एक सॉर्ट का उपयोग करके अपडेट को पूरा करता है।
टाइप 4 एससीडी
टाइप 4 मॉडल टाइप 2 के समान है। अंतर यह है कि 2 टेबल या फाइलें रखी जाती हैं:एक मौजूदा लागतों के लिए और एक लागत के लिए इतिहास रिकॉर्ड रखने के लिए। जब मास्टर में नए वर्तमान रिकॉर्ड जोड़े जाते हैं, तो ये नए रिकॉर्ड आमतौर पर उसी समय इतिहास में जोड़ दिए जाते हैं।
फ़ील्ड परिभाषाएँ अद्यतन, इतिहास और मास्टर फ़ाइलों या तालिकाओं में समान हैं। हम अपडेट और इतिहास के रिकॉर्ड को एक साथ सॉर्ट करेंगे। एक नया मास्टर बनाया जाएगा जिसमें प्रत्येक उत्पाद कोड . के लिए केवल एक रिकॉर्ड होगा और वह रिकॉर्ड सबसे वर्तमान होगा। इतिहास में प्रत्येक उत्पाद कोड . के सभी रिकॉर्ड होंगे अद्यतन स्रोत से वाले भी शामिल हैं।
शुरुआती मास्टर टेबल हमारे टाइप 1 के उदाहरण से शुरुआती मास्टर के समान होगी, जिसमें नीचे दिखाए गए मान होंगे।
| ProductCode | लागत | StartDate |
|---|---|---|
| C123 | 125.50 | 20110228 |
| F112 | 2365.00 | 20120101 |
| G101 | 19.25 | 20110930 |
| J245 | 450.50 | 20110430 |
| S022 | 98.75 | 20110515 |
सभी अद्यतन डेटा में सभी समान StartDate होंगे। Update.dat स्रोत में निम्न मानों वाले रिकॉर्ड हैं:
| ProductCode | लागत | StartDate |
|---|---|---|
| F112 | 2425.00 | 20120701 |
| J245 | 550.50 | 20120701 |
| M447 | 101.75 | 20120701 |
| S022 | 101.75 | 20120701 |
नीचे प्रारंभिक इतिहास स्रोत टाइप 2 में शुरुआती मास्टर की तरह है। तो टाइप 4 टाइप 1 और टाइप 2 का एक संयोजन है जहां मास्टर टाइप 1 मास्टर के समान है और इतिहास टाइप 2 मास्टर के समान है।
| ProductCode | लागत | StartDate |
|---|---|---|
| C123 | 125.50 | 20110228 |
| F112 | 2365.00 | 20120101 |
| G101 | 19.25 | 20110930 |
| G101 | 21.25 | 20110501 |
| J245 | 450.50 | 20110430 |
| J245 | 425.25 | 20101001 |
| J245 | 385.25 | 20100215 |
| S022 | 98.75 | 20110515 |
आईआरआई वर्कबेंच में, डायमेंशनल फाइल्स और टेबल्स को अपडेट करने के लिए स्क्रिप्ट के निर्माण में सहायता करने के लिए वोरासिटी विजार्ड है। यह विज़ार्ड नेविगेशन बार पर वोरसिटी ड्रॉपडाउन में स्थित है। सबसे पहले आप SCD टाइप को चुनें। फिर वह विंडो जहां आप उन स्रोतों का चयन करते हैं जिनका उपयोग अद्यतन को संसाधित करने के लिए किया जाता है, प्रदर्शित होता है।

अगली स्क्रीन वह है जहां आप कुंजियों का चयन करके सॉर्ट सेट करते हैं। 2 कुंजियाँ हैं:उत्पाद कोड फिर प्रारंभ दिनांक . हम ProductCode . के आधार पर समूह बना रहे हैं , लेकिन हमें StartDate . के अनुसार अवरोही क्रम में भी छाँटना होगा प्रत्येक उत्पाद कोड . के भीतर समूहन ऐसा इसलिए है ताकि हम प्रत्येक उत्पाद कोड . के लिए नवीनतम रिकॉर्ड को फ़िल्टर कर सकें नए मास्टर के लिए समूह।

प्रारंभ दिनांक . बनाने के लिए एक कुंजी जो अवरोही क्रम में क्रमबद्ध होती है, उस कुंजी का चयन करें और फिर कुंजी संपादित करें का चयन करें . यह निम्न स्क्रीन लाएगा:

दिशा . के लिए ड्रॉपडाउन में अवरोही select चुनें ।
इस प्रकार की कार्य स्क्रिप्ट इस प्रकार है:
/INFILE=C:/IRI/CoSort95/workbench.orig/workspace/SCD/SCD4/history4.dat
/PROCESS=DELIMITED
/ALIAS=history4
/FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
/FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
/FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')
/INFILE=C:/IRI/CoSort95/workbench.orig/workspace/SCD/update.dat
/PROCESS=DELIMITED
/ALIAS=update
/FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
/FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
/FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')
/SORT
/KEY=(PRODUCTCODE, TYPE=ASCII)
/KEY=(STARTDATE, DESCENDING, TYPE=ASCII)
/OUTFILE=history4.dat
# This file will contain all the records from both inputs
/PROCESS=DELIMITED
/FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
/FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
/FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')
/OUTFILE=master4.dat
# Include only one record for each ProductCode
/PROCESS=DELIMITED
/FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
/FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
/FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')
/INCLUDE WHERE PRODUCTCODE नीचे SortCL का उपयोग करके उपरोक्त जॉब स्क्रिप्ट को चलाकर अपडेट किया गया मास्टर है। मान वही हैं जो टाइप 1 अपडेट में उत्पन्न होते हैं।
| ProductCode | लागत | StartDate |
|---|---|---|
| C123 | 125.50 | 20110228 |
| F112 | 2425.00 | 20120701 |
| G101 | 19.25 | 20110930 |
| J245 | 550.50 | 20120701 |
| M447 | 139.25 | 20120701 |
| S022 | 101.75 | 20120701 |
इतिहास फ़ाइल में पिछले सभी रिकॉर्ड और अद्यतन फ़ाइल के नए रिकॉर्ड शामिल हैं।
| ProductCode | लागत | StartDate |
|---|---|---|
| C123 | 125.50 | 20110228 |
| F112 | 2425.00 | 20120701 |
| F112 | 2365.00 | 20120101 |
| G101 | 19.25 | 20110930 |
| G101 | 21.25 | 20110501 |
| J245 | 550.50 | 20120701 |
| J245 | 450.50 | 20110430 |
| J245 | 425.25 | 20101001 |
| J245 | 385.25 | 20100215 |
| M447 | 101.75 | 220120701 |
| S022 | 101.75 | 20120701 |
| S022 | 98.75 | 20110515 |