2011-03-29 16 views
9

मुझे आश्चर्य है कि अगर किसी को एसएसआईएस की डीटीएसएक्स फाइलों को विलय करने पर कोई सलाह है। यहां उन समस्याओं को देखा गया है जो विलय को मुश्किल बनाते हैं:मैं एसएसआईएस पैकेज फ़ाइलों को कैसे मर्ज करूं?

  • वे एक्सएमएल हैं जो विलय के लिए पहले से ही दर्द हो सकता है।
  • वे सी # स्क्रिप्ट एम्बेड कर सकते हैं जिसमें वे सी # स्रोत कोड और डीएलएल फ़ाइल की बेस 64 एन्कोडेड स्ट्रिंग दोनों होंगे।
  • वे पैकेज में डेटा के प्रवाह के साथ-साथ आईडीई में तत्वों के लेआउट का वर्णन करते हैं।

यदि माइक्रोसॉफ्ट से कोई भी सुन रहा है, तो पैकेजों को एक फाइल के बजाय कई फाइलें बनाकर हल की गई हैं। एक डीटीएसएक्स प्रवाह का वर्णन करने वाला एक्सएमएल हो सकता है, एक एक्सएमएल लेआउट का वर्णन करता है, कुछ .cs स्रोत फाइलें, और कुछ डीएलएस। लेकिन ऐसा नहीं है कि यह कैसा है। मुझे आश्चर्य है कि कोई भी डीटीएसएक्स का उपयोग क्यों करता है।

एक गैर समाधान

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

उत्तर

7

मुक्त विजुअल स्टूडियो ऐड-इन BIDS Helper का उपयोग करके दो दुविधाओं में आपकी दुविधा में मदद मिल सकती है।

  1. BIML: BIML व्यापार खुफिया मार्कअप लैंग्वेज (BIML Reference) है। आप अपने एसएसआईएस पैकेज जेनरेट करने के लिए .biml फ़ाइलों का उपयोग कर सकते हैं। बीआईएमएल फाइलों को उनकी कठोर संरचना के कारण मर्ज ऑपरेशंस के साथ बेहतर काम करना चाहिए। हालांकि मुझे अभी तक विलय करने का कोई अनुभव नहीं है, फिर भी मैं एसएसआईएस यूआई की अनुमति से अपने एसएसआईएस पैकेजों को तेजी से बनाने के लिए बीआईएमएल फाइलों का उपयोग कर रहा हूं। यह समान डेटा प्रवाह की प्रतिलिपि बनाने और केवल अद्वितीय विशेषताओं को बदलने के साथ बहुत उपयोगी रहा है।

  2. Smart Diff: बीआईडीएस हेल्पर में आपके एसएसआईएस पैकेज में मतभेदों की तुलना में मदद करने के लिए एक स्मार्ट डिफ सुविधा भी बनाई गई है।यह ऑटो-विलय में मदद नहीं करेगा, लेकिन यह अंतर दिखाने से पहले लेआउट जानकारी को हटा देगा और एक्सएमएल को ऑर्डर करेगा। यह आपको दो एसएसआईएस पैकेजों के बीच वास्तविक कार्यात्मक अंतर दिखाएगा। फिर आप परिवर्तनों को मैन्युअल रूप से मर्ज करने के लिए उस जानकारी का उपयोग कर सकते हैं। revelator के जवाब पर अपनी टिप्पणी से अपने उदाहरण के लिए, आप स्मार्ट Diff का उपयोग 1.0 शाखा में अपने तय संस्करण के लिए अपने लघु उद्योगों के 1.0 संस्करण की तुलना करने के हैं, तो आप सिर्फ आवश्यक परिवर्तन है कि अपने 2.0 शाखा को मैन्युअल रूप से ठीक लागू करने के लिए देखना होगा।

+0

है, मैं वास्तव में अब एसएसआईएस सामान नहीं करता हूं। लेकिन यह एक सभ्य उत्तर की तरह लगता है। वह बीआईएमएल चीज दिखती है जैसे इसे अलग करना आसान होगा (जितना आसान हो सकता है उतना ही एक्सएमएल फाइल हो सकता है)। – ZombieDev

5

मैं हर कीमत पर विलय dtsx फ़ाइलों को विलय करने से बचने की सलाह दूंगा - यह दर्द की दुनिया होगी! जिस तरह से मैं आम तौर पर एसएसआईएस परियोजनाओं को विकसित करता हूं वह काम के प्रत्येक विशिष्ट टुकड़े को एक अलग पैकेज/डीटीएसएक्स फ़ाइल में विभाजित करना है, फिर इन्हें मास्टर पैकेज से कॉल करें। इसका मतलब है कि टीम में अलग-अलग लोग अलग-अलग पैकेजों पर काम कर सकते हैं, बिना किसी अन्य काम पर ओवरलैप किए। यह एक स्रोत नियंत्रित प्रणाली में बहुत अच्छी तरह से काम करता है। एक और फायदा यह है कि प्रत्येक घटक को स्वतंत्र रूप से निष्पादित या परीक्षण किया जा सकता है।

+0

हम छोटे पैकेज में कुछ बंटवारे है, लेकिन हमारे संकुल के सबसे बहुत विशिष्ट चीजें हैं जो खुद को उन्हें छोटे टुकड़ों में विभाजित करने के लिए अच्छी तरह से उधार नहीं करते। यहां तक ​​कि, यह केवल लोगों को एक ही शाखा में एक दूसरे के पैर की अंगुली पर कदम रखने के लिए काम करता है। मान लें कि हमारे पास एक विशेष फ़ाइल प्रारूप आयात करने के लिए कुछ पैकेज है। हमें एक बग मिलती है और इसे हमारे सॉफ़्टवेयर के संस्करण 1.0 में उस dtsx में ठीक किया जाता है। लेकिन import.dtsx के 2.0 शाखा भागों में बेहतर प्रदर्शन या कुछ पाने के लिए बदल दिया गया है। उन दो परिवर्तनों को विलय करना होगा या 2.0 जारी होने पर हम उस बग को फिर से प्राप्त करेंगे। – ZombieDev

0

एकमात्र तरीका है कि हम काम पर विलय कर रहे हैं, दोनों पैकेजों को खोलना, एक पैकेज से सबकुछ कॉपी करना, दूसरे में पेस्ट करना, फिर संघर्ष करने पर प्रत्येक स्क्रिप्ट कार्य को संकलित करना है।

छोटे पैकेजों के साथ काम करने की सलाह दी जाती है, क्योंकि वे अभी तेजी से प्रतिक्रिया देते हैं।

+0

एक dtsx की सामग्री को कॉपी कर रहा है एक और करने के लिए (यह स्रोत कॉल) (के उन्हे लक्षित कॉल) और बचत विलय नहीं है। यह केवल कुछ भी छोड़ रहा है जो लक्ष्य में बदल गया है। यदि दोनों स्रोत और लक्ष्य बदल गए हैं, तो आप चाहते हैं कि अंतिम परिणाम दोनों के परिवर्तनों का संयोजन हो। – ZombieDev

+0

मैं उस तरह विलय करने के बारे में सोच रहा था, फ़ाइल ए और बी मर्ज करें - स्रोत-नियंत्रण-सिस्टम-मार्ग में नहीं: | मेरी टिप्पणी को अस्वीकार करें – cairnz

0

यदि आपको वास्तविक विलय क्षमताओं की आवश्यकता है तो आपको पैकेज को मैन्युअल रूप से कोड करना होगा। एक्सएमएल में सभी तारों (वंशावली आईडी, आदि) और डिजाइनर विनिर्देशों के कारण डेटा प्रवाह या लेआउट को तोड़ने के बिना फ़ाइलों के बीच परिवर्तनों को मर्ज करने का कोई तरीका नहीं है।

+0

यह वही है जो मुझे लगता है। कि आप उन्हें मर्ज नहीं कर सकते हैं। मैं इसे उत्तर के रूप में चिह्नित करूंगा लेकिन यह वास्तव में समस्या की पुष्टि कर रहा है। मुझे नहीं पता कि ** ** ** एक उत्तर – ZombieDev

0

BIML ट्रांसफार्मर पर एक नज़र डालें। बीआईएमएल (बिजनेस इंटेलिजेंस मार्कअप लैंग्वेज) आपके एसएसआईएस पैकेजों को संपादित और नियंत्रित करने का एक आसान तरीका है। बस बिड्स सहायक को लोड करें और इस आलेख को देखें।

http://bimlscript.com/Walkthrough/Details/68

ट्रांसफॉर्मर भी आप SSIS पैकेज न सिर्फ मैन्युअल रूप से एक समय में एक का एक सेट के लिए एक ही परिवर्तन लागू करने की अनुमति।

चीयर्स

+0

वर्तमान में केवल एक विशेषता मिस्ट में उपलब्ध है। – Doc

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