मैं उत्सुक हूं अगर किसी ने भी नोएसक्यूएल प्लेटफ़ॉर्म (उदा।, दंगा) पर बनाए गए किसी भी बिटमैपोरल डेटाबेस को लागू या यहां तक कि जानता है।क्या बिटमैपोरल नोएसक्यूएल डेटाबेस के लिए कोई डिज़ाइन पैटर्न हैं?
उत्तर
विकिपीडिया से:
"द्विशंखी डेटा एक अस्थायी डेटाबेस में इस्तेमाल एक अवधारणा है, तब यह मान्य समय और डेटा के लेन-देन समय दोनों को दर्शाता है एक डेटाबेस तालिका द्विशंखी डेटा अक्सर चार अतिरिक्त तालिका का प्रतिनिधित्व करती है में।। -कॉलम्स स्टार्टवीटी और एंडवीटी, स्टार्ट टीटी और एंडटीटी। प्रत्येक बार अंतराल अपनी निचली बाउंड पर बंद होता है, और इसकी ऊपरी सीमा पर खुलता है। "
तो आप इन चार मानों को अपने डेटा पर नहीं डाल सकते हैं?
मुझे किसी भी नोएसक्यूएल डेटास्टोर के बारे में पता नहीं है जो विशेष रूप से अस्थायी डेटा को संभालने के लिए डिज़ाइन किया गया है।
{ मेटा: एक संरचना इस तरह मेटाडाटा धारण कर सकते हैं के साथ अपने दस्तावेज़ों/मूल्यों लपेटें
: आदेश Riak में डेटा पर वैध और लेन-देन समय अवधि डाल करने में आप के लिए या तो की आवश्यकता होगी: { मान्य: ["2001-11-08", "2001-11-09"], लेनदेन: ["2011-01-29 10:27:00", "2011-01-29 10:28:00" "] } पेलोड:" यह वास्तविक दस्तावेज/मूल्य है जिसे मैं स्टोर करना चाहता हूं! " }
प्रत्येक दस्तावेज़ के लिए "मेटा-दस्तावेज़" बनाएं और उन्हें जोड़ने के लिए Riak Links का उपयोग करें।
मुझे लगता है कि यह थोड़ा सा क्लीनर है लेकिन यदि आपको इन बार अक्सर पुनर्प्राप्त करने की आवश्यकता है तो यह विधि बहुत धीमी हो सकती है।
आप समय से दस्तावेजों को पुनः प्राप्त करना चाहते हैं तो मुझे नहीं लगता कि Riak (या किसी अन्य कुंजी/मान डेटा संग्रहों है कि मैं के बारे में पता) सही डेटासंग्रह उपयोग करने के लिए किया जाएगा है। एसक्यूएल या संभवतः कुछ बिगटेबल सिस्टम आपका एकमात्र अच्छा विकल्प हो सकता है।
मैं एक छोटे से द्विशंखी, खुला स्रोत डेटाबेस परत MongoDB के आधार पर लिखा है:
https://github.com/1123/bitemporaldb
जब स्काला या जावा वस्तुओं के भंडारण, वस्तु द्विशंखी मेटा जानकारी के साथ एक सामान्य द्विशंखी वस्तु में लपेटा जाता है (वैध समय, लेनदेन का समय)। इसके बाद इसे जोंसन को क्रमबद्ध किया गया और मोंगोडीबी में बीएसओएन के रूप में संग्रहीत किया गया।
यह पारदर्शी रूप से वस्तुओं के लिए अस्थायी और गैर-अस्थायी अद्यतनों को संभालता है। Bitemporal संदर्भ द्वारा खोज संभव है।
बिटुमपोरल डेटा के लिए दस्तावेज़ उन्मुख डेटाबेस फायदेमंद हैं, क्योंकि दस्तावेज़ उन्मुख भंडारण डेटा पुनर्प्राप्ति के लिए जुड़ने की संख्या को कम कर देता है। एक बिटमैपोरल संदर्भ में शामिल हो सकता है हाथ से कोड के लिए अक्षम और कठिन हो सकता है।
प्रतिक्रिया, योगदान और सुविधा-अनुरोधों का बहुत स्वागत है।
बिटमैपोरल (या टेम्पोरल डीबी मॉडल) का समर्थन करने के लिए, आपको दो बार आयामों (वैध/प्रभावी समय और लेनदेन/सिस्टम समय) पर रिकॉर्ड अपडेट करने और रिकॉर्ड करने के लिए उचित डीएमएल करने के लिए एसिड लेनदेन की आवश्यकता होती है। अस्थायी मॉडलिंग पर See for details।
उदाहरण के लिए, कैसंड्रा, मोंगोडीबी, कोचबेस जैसे लोकप्रिय नोएसक्यूएल डेटाबेस में बिटमैपोरल रिकॉर्ड मैनिपुलेशन का समर्थन करने के लिए आवश्यक आवश्यक रिकॉर्ड अपडेट/डालने के संचालन करने के लिए एसीआईडी समर्थन नहीं है। अस्थायी और बिटकोपोरल डेटाबेस रिकॉर्ड के साथ कभी भी ओवरलैप नहीं होना चाहिए और मान्य/लेनदेन समय रिकॉर्ड सफल होने पर रिकॉर्ड को ठीक से समाप्त कर दिया जाना चाहिए।
मार्कलोगिक नोएसक्यूएल डेटाबेस बिटमैपोरल के लिए समर्थन का दावा करता है, लेकिन कभी कोशिश नहीं की और यह खुला स्रोत नहीं है। लेकिन आप एसीआईडी डेटाबेस का उपयोग करके अपना खुद का समाधान रोल कर सकते हैं जो प्रभावी रूप से वैध/लेनदेन समय ट्रैकिंग जर्नल के रूप में कार्य करता है और फिर वास्तविक डेटा स्टोर के लिए NoSQL का उपयोग करता है। इस approach here के उच्च-स्तरीय विवरण देखें।
यह मेटाडेटा जोड़ना केवल आंशिक समाधान है। इस मेटाडेटा का स्वचालित प्रबंधन आवश्यक है। किसी दिए गए वैध समय (वर्ष 2015) के लिए केवल लॉजिकल ऑब्जेक्ट के अपडेट पर विचार करें। फिर एक बिटमैपोरल डेटाबेस यह सुनिश्चित करेगा कि 2015 से पहले और 2015 के बाद मूल मूल्य छूटे रहेंगे। इसके अलावा यह एक बिटमैपोरल संदर्भ से पूछताछ करने की अनुमति देगा: वर्ष 2015 में लॉजिकल आईडी 777 के साथ ऑब्जेक्ट की स्थिति के बारे में 2013 में मेरा ज्ञान क्या था? – user152468