उत्तर आंशिक रूप से सही है। सच नहीं: hbase तीन संस्करणों को स्टोर करता है। सबूत नीचे देखें। यह सच है: आप के माध्यम से
alter 'marketdata', NAME => 'field', VERSIONS => 100
संस्करणों की अधिकतम राशि जो HBase रिटर्न सेट कर सकते हैं लेकिन अभी मान लेते हैं, मैं संस्करण वेरिएबल नहीं बदला।
मैं 9. करने के लिए अपने HBase में दस प्रविष्टियों, 0 से टाइमस्टैम्प के साथ है सबसे वर्तमान टाइमस्टैम्प है:
hbase(main):025:0> get 'marketdata', 'instrument1', {COLUMN => 'field:ask'}
COLUMN CELL
field:ask timestamp=9, value=0.9940174211042572
1 row(s) in 0.0590 seconds
hbase(main):026:0>
टाइमस्टैम्प 1 से 5 मान दिखाए जाते हैं कि इस प्रकार हैं:
hbase(main):027:0> get 'marketdata', 'instrument1', {COLUMN => 'field:ask', TIMERANGE => [0,5], VERSIONS=>5}
COLUMN CELL
field:ask timestamp=4, value=0.530618878519702
field:ask timestamp=3, value=0.051028316270589014
field:ask timestamp=2, value=0.11949750640509116
3 row(s) in 0.0130 seconds
hbase(main):028:0>
... और जब मैं अपना अंत टाइमस्टैम्प 10 पर सेट करता हूं, तब भी यह केवल अंतिम तीन संस्करणों को दिखाता है जो उस टाइमस्टैम्प से पहले और पूर्व को दबा देता है:
hbase(main):028:0> get 'marketdata', 'instrument1', {COLUMN => 'field:ask', TIMERANGE => [0,10], VERSIONS=>5}
COLUMN CELL
field:ask timestamp=9, value=0.9940174211042572
field:ask timestamp=8, value=0.6941263513176372
field:ask timestamp=7, value=0.1814043435754933
3 row(s) in 0.0400 seconds
hbase(main):029:0>
प्रतीक्षा करें, तो यदि आप केवल 3 संस्करणों को संग्रहीत कर रहे हैं तो आप संस्करण 4,3,2 और 9,8,7 कैसे देख सकते हैं? शायद शेल केवल 3 लौट रहा है, किसी भी कारण से, लेकिन ऐसा लगता है कि आपके पास 'साबित' है कि और अधिक संस्करण हैं। असली जवाब भी अधिक जटिल है क्योंकि hbase संस्करणों को हटा देता है: यह वास्तव में नहीं है। यदि आप स्पष्ट रूप से डेटा हटाते हैं तो यह एक कबूतर जोड़ देगा और आपको कबूतर से पहले कोई डेटा नहीं दिखाई देगा। अन्य सभी डेटा उपलब्ध होंगे (और सभी डेटा संग्रहीत किए जाएंगे) जब तक कि अगली बड़ी कॉम्पैक्शन जो स्टोर फ़ाइल को फिर से लिखेगी और केवल संस्करणों की सही संख्या को बनाए रखेगी। – David
हाय डेविड, आप कोडिंगफू द्वारा संपादित प्रतिक्रिया के आधार पर डाउनवॉटेड हैं। – user1052080
यह उत्तर अभी भी थोड़ा भ्रामक है। आप जो खो रहे हैं वह कॉम्पैक्शन समस्या है। जब HBase एक मान संग्रहीत करता है, तो यह इसे फ़ाइल में जोड़ता है। यह डेटा को कभी हटा नहीं देता है।हटाने को लागू करने के लिए, वे एक मकबरे को जोड़ते हैं जो अनिवार्य रूप से कहता है कि एक मूल्य को अनदेखा किया जाना चाहिए। अब, जब एक कॉम्पैक्शन के साथ आता है, तो फ़ाइल फिर से लिखी जाएगी, और न तो पुराने संस्करण या हटाए गए संस्करण नई फ़ाइल में फिर से लिखे जाएंगे। तो, एक समय खिड़की है जब आप पुराने संस्करणों को देखने में सक्षम होंगे, लेकिन उस समय की खिड़की सीमित है और आपको वहां पुराने संस्करणों पर भरोसा नहीं करना चाहिए। – David