बड़े डेटा सेट को पुनर्स्थापित करने के लिए सबसे अच्छी रणनीति क्या है?


9

मैं एक प्रोजेक्ट का नेतृत्व कर रहा हूं जहां हम मेट्रिक्स डेटा रिकॉर्ड करेंगे। मैं वर्षों से डेटा बरकरार रखना चाहता हूं। हालांकि, मैं प्राथमिक तालिका को डेटा के साथ ब्लोएटेड होने से भी रोकना चाहूंगा, जबकि दीर्घकालिक प्रवृत्ति के लिए जरूरी है, अल्पकालिक रिपोर्टिंग के लिए आवश्यक नहीं है।

इस स्थिति को संभालने के लिए सबसे अच्छी रणनीति क्या है? बस पुराने डेटा को किसी अन्य तालिका में संग्रहीत करें? या डेटा के कुछ समेकन के माध्यम से "इसे रोल करें" (और फिर उसे एक अलग तालिका में स्टोर करें)? या पूरी तरह से कुछ और?

अतिरिक्त जानकारी: हम एसक्यूएल सर्वर का उपयोग कर रहे 2005

4

हम अपने काम पर दोनों विधियों का उपयोग करते हैं, लेकिन थोड़ा अलग, हम 30 दिनों के लिए प्राथमिक तालिका में सभी बिक्री डेटा रखते हैं, फिर रात में (रात की नौकरियों का हिस्सा) दिन की बिक्री सारांश में बढ़ जाती है (एन qty रिपोर्टिंग कारणों के लिए एक अलग तालिका में आज xct बेचा गया एक्स उत्पाद), और 30 दिनों से अधिक बिक्री एक अलग डेटाबेस में संग्रहीत की जाती है, फिर साल में एक बार (हम टैक्स साल पर जाते हैं) एक नया संग्रह डेटाबेस शुरू होता है। बिल्कुल सही नहीं है ..

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

केवल वास्तविक समस्या हमारे पास है, विस्तृत डेटा है कि कई डेटाबेस तक फैला तक पहुँच रहा है जोड़ने और के रूप में रखती धीमी है, और विश्लेषण एसक्यूएल बजाय कोड में किया जा सकता है


1

उन विकल्पों में से किसी भी उत्कृष्ट हैं, लेकिन यह वास्तव में समस्या डोमेन पर निर्भर करता है। नकद शेष या सांख्यिकीय डेटा जैसी चीजों के लिए, मुझे लगता है कि रिकॉर्ड रोल करना और उन्हें समेकित करना सबसे अच्छा तरीका है, फिर आप लुढ़का हुआ रिकॉर्ड को समानांतर संग्रह तालिका में ले जा सकते हैं, जिससे उन्हें इस तरह से कुंजी मिलती है कि आप "अनलॉक" कर सकते हैं ज़रूरी। यह आपकी प्राथमिक डेटा तालिका को साफ और त्वरित रखता है, लेकिन आपको ऑडिटिंग या जो भी हो, के लिए अतिरिक्त डेटा बनाए रखने की अनुमति देता है। मुख्य सवाल यह है कि, आप "रोल-अप" प्रक्रिया को कैसे कार्यान्वित करते हैं। या तो स्वचालित रूप से, एक ट्रिगर या सर्वर साइड प्रक्रिया के माध्यम से, या आवेदन स्तर पर उपयोगकर्ता हस्तक्षेप द्वारा?


4

आप एसक्यूएल सर्वर 2005 का उपयोग कर रहे हैं, तो यह, partitioned tables का उपयोग करने के लिए एक अच्छा उम्मीदवार हो सकता है।


2

@ जेसन - मुझे नहीं लगता कि सादे पुरानी पाठ फ़ाइलों में डेटा को रखने से आप डेटा पर आसानी से दीर्घकालिक रुझान विश्लेषण कर सकते हैं।

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


2

बजट, आदि जैसी बाधाओं के आधार पर, यह ध्वनि डेटा वेयरहाउस एप्लिकेशन के लिए एक आदर्श उम्मीदवार की तरह है। यह आमतौर पर डेटा वेयरहाउस के रूप में उपयोग के लिए एक नया सर्वर पेश करेगा। SQL सर्वर 2005 बॉक्स के बाहर इस गतिविधि का बहुत से समर्थन करता है, आगे आप अपने उपयोगकर्ताओं को अतिरिक्त मूल्य प्रदान करने के लिए अतिरिक्त SQL सर्वर सेवाओं (जैसे विश्लेषण सेवाएं, रिपोर्टिंग सेवाएं) का उपयोग करने में सक्षम हो सकते हैं। (देखें http://www.microsoft.com/technet/prodtechnol/sql/2005/dwsqlsy.mspx)