2011-11-23 16 views
6

में लोड किए गए डेटासेट से डुप्लिकेट फ़िल्टर करें मैं कुछ आयामी डेटा सेट बनाने के लिए एसएसआईएस में कुछ ईटीएल कर रहा हूं। इनमें से एक तारीख है। आयाम के लिए तिथियों का एक सेट उत्पन्न करते समय मैं दिनांक आयाम में पहले से मौजूद एक लुकअप का उपयोग कर सकता हूं और विफल होने वाले किसी भी रीडायरेक्ट को रीडायरेक्ट कर सकता हूं, जिसे नई तिथियां माना जाता है और फिर तालिका में जोड़ा जाता है।एसएसआईएस

समस्या वह डेटासेट है जो मुझे मिल गया है, इसमें डुप्लिकेट तिथियां हो सकती हैं। यह आयाम तालिका में डालने पर अद्वितीय दिनांक कुंजी के साथ त्रुटियों का कारण बन जाएगा। इसलिए मैं एसएसआईएस पाइपलाइन में लोड किए गए डेटासेट के भीतर फ़िल्टर करने का एक तरीका ढूंढ रहा हूं।

मैं दिनांक की आरंभिक लोडिंग पर DISTINCT का उपयोग कर सकता हूं लेकिन इस मामले की तारीख एक DATETIME है। मुझे डेटा रूपांतरण रूपांतरण का उपयोग बाद में दिनांक घटक को लेकर DATE में बदलना होगा। मैं अद्वितीय दिनों की तलाश में हूं और एक DATETIME पर एक अलग मुझे यह नहीं देगा।

मैं एसएसआईएस लुकअप का उपयोग नहीं कर सकता क्योंकि मेरे पास पहले से कनेक्शन कनेक्शन है जो डेटाबेस को इंगित करता है।

मैं थोक प्रविष्टि का उपयोग न करने के लिए ओएलई डीबी गंतव्य को किसी भी त्रुटि को अनदेखा कर सकता हूं। यह मानता है कि केवल त्रुटियां डुप्लिकेट तिथियां होंगी।

मैं एसएसआईएस के लिए काफी नया हूं और एक रूपांतरण उपकरण नहीं ढूंढ पाया है जो मुझे सेट में अन्य पंक्तियों की तुलना करने की अनुमति देगा।

+0

क्या आपके पास उन इंडेक्स तक पहुंच है जो लागू करते हैं कुंजी? यदि ऐसा है, तो आप 'IGNORE_DUP_KEY' विकल्प को सक्षम कर सकते हैं जो त्रुटि उत्पन्न करने के बजाय डुप्लिकेट आवेषण को छोड़ देगा। – JNK

+1

जब आप डेटाटाइम स्टोर करते हैं, तो समय घटक शून्य हो जाता है या एक सामान्य मूल्य के लिए मजबूर होता है? '2011-10-10 00: 00: 00.000' और '2011-10-10 12: 12: 12.012' प्रक्रिया को केवल 2011-10-10 पंक्ति भेजनी चाहिए। क्या इससे कोई फर्क पड़ता है कि कौन सा चुना गया है? क्या हम समय घटक छोड़ सकते हैं? – billinkc

उत्तर

7

आप या तो सॉर्ट ट्रांसफ़ॉर्मेशन का उपयोग कर सकते हैं और डुप्लिकेट को हटा सकते हैं, या आप कुल परिवर्तन का उपयोग कर सकते हैं और केवल समूह का उपयोग कर सकते हैं (जो एक DISTINCT की तरह कम या कम होगा)। ध्यान दें कि ये ऑपरेशन एसिंक हैं, जिसका अर्थ यह है कि सभी पंक्तियों को जारी रखने से पहले इस कार्य को दर्ज करना होगा, क्योंकि सिंक कार्यों के विपरीत जो पंक्तियों के बफर को खाते हैं और थूकते हैं।

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