2012-09-17 14 views
12

सब, मुझे एक एकल डेटाबेस बनाना है जिसमें मूल स्कीमा है। यह डेटाबेस बड़ा (100 जीबी प्लस) होने जा रहा है, और डेटा गोदाम के रूप में उपयोग किया जाना है। अब, इस डेटाबेस का निर्माण वर्तमान में एक सी # कोड के माध्यम से 'एक-हिट' में किया जा रहा है; कई अलग-अलग स्रोतों से डेटा खींच रहा है। डेटा की तीव्र मात्रा के कारण, यह सृजन कुछ समस्याएं पैदा कर रहा है। यह निर्णय लिया गया है कि एक ही डेटाबेस में एक ही डेटाबेस बनाने के बजाय;एकल डेटाबेस में एकाधिक डेटाबेस मर्ज करें

  1. कोर डेटा टेबल वाले कई छोटे डेटाबेस बनाएं।
  2. छोटे डेटाबेस को एक बड़े डेटाबेस में मर्ज करें।
  3. स्कीमा बनाएं/प्रासंगिक बाधाओं को जोड़ें।

मेरा प्रश्न दो गुना है।

1. एकाधिक डेटाबेस (समान स्कीमा/टेबल संरचनाओं के साथ) को मर्ज करने का सबसे अच्छा तरीका क्या है?

2. क्या इस डेटा वेयरहाउस (बेहद बड़े डेटाबेस) बनाने के बारे में जाने का कोई बेहतर तरीका है?

आपके समय के लिए धन्यवाद।

+2

एक बड़ा डेटाबेस क्यों समस्या पैदा करता है, और कई छोटे डेटाबेस क्यों नहीं बनाएंगे, वही समस्याएं पैदा होती हैं? –

+0

'बड़ा' डेटाबेस बनाने के लिए छह घंटे + लेते हैं। इस डेटाबेस को बनाने के लिए इस डेटा का अधिकांश हिस्सा अन्य डेटाबेस से खींचा जाता है (कभी-कभी नेटवर्क के पार)। डेटा के अमाउंट के कारण हम इस डेटाबेस को बनाने वाले सर्वर इंस्टेंस पर लटक सकते हैं। यह कार्यवाही को संशोधित करने का प्रयास करने का कारण है, इसलिए जब कोई ड्रॉप आउट होता है तो हम भ्रष्ट डेटाबेस के साथ समाप्त नहीं होते हैं। – MoonKnight

उत्तर

7

आपके पहले प्रश्न के लिए: आपने समान स्कीमा और टेबल संरचना का उल्लेख किया है, उस स्थिति में, यह केवल एक डीबी तालिका (यानी छोटे डीबी) से दूसरे डेटा (यानी बड़े डीबी) से डेटा ले जा रहा है। इस के लिए

1) (डेटा का कोई डुप्लिकेट नहीं थी कम से कम पी क्षेत्र)

2) इस कदम से एक डाटाबेस से दूसरे में एसक्यूएल सर्वर के लिए डेटा में उल्लेख सुनिश्चित करना होगा

Transfer data from one database to another database

4

सोला का जवाब अच्छा है और काम करेगा। यहां एक और विकल्प है: बिलकुल विलय न करें। आपके आयात द्वारा बनाए गए एकाधिक बेस टेबल के शीर्ष पर एक संघ-सभी दृश्य बनाएं। यह आपको बहुत सारे डेटा आंदोलन बचाता है। इस तरह के एक दृश्य को partitioned view कहा जाता है।

+0

मुझे विभाजित विचारों से अवगत है, हालांकि, डेटा वेयरहाउस डेटाबेस स्टैंड-अलोन होना चाहिए। यह डेटाबेस क्लाइंट को एक डेटाबेस इकाई के रूप में प्रदान किया जाना चाहिए (संभवतः एकाधिक .ndf आदि में फैला हुआ है)।मुझे डेटाबेस बनाने की प्रक्रिया को स्वचालित करने में सक्षम होना चाहिए, इस प्रकार @ सोला द्वारा सुझाई गई विधि वह नहीं है जिसका मैं उपयोग कर सकता हूं। आपके समय के लिए धन्यवाद। – MoonKnight

6

एसक्यूएल-हब (http://sql-hub.com) आपको एक ही डेटाबेस में एक ही स्कीमा के साथ एकाधिक डेटाबेस मर्ज करने देगा। एक नि: शुल्क लाइसेंस है जो आपको यूआई से ऐसा करने देगा, हालांकि यदि आप प्रक्रिया को स्वचालित रूप से चलाने के लिए शेड्यूल करना चाहते हैं तो आपको लाइसेंस के लिए भुगतान करना पड़ सकता है। हालांकि, यदि डेटा की बहुत बड़ी मात्रा है तो आप जो हासिल करना चाहते हैं उसके लिए थोड़ा धीमा साबित हो सकता है - हालांकि आप इसे आजमा सकते हैं।

कुछ लेख here भी हैं जो इस तरह की समस्या के लिए कुछ अन्य विकल्पों को देखते हैं।

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