2010-05-04 8 views

उत्तर

10

मेरा मानना ​​है कि स्कैनर केवल एक आइटम को वास्तव में तब तक अनुरोध करता है जब तक कि आप कैशिंग सेट न करें। आप केवल यह सुनिश्चित करने के लिए जांच सकते हैं कि getCaching()

प्रत्येक बार जब आप ResultScanner # अगली() को कॉल करते हैं, तो यह अगले आइटम को पुनर्प्राप्त करेगा। आप एक समय में कई परिणामों को पुनर्प्राप्त करने के लिए ResultScanner # अगली (int) का भी उपयोग कर सकते हैं।

जब स्कैनर आप स्कैन # setCaching उपयोग कर सकते हैं अग्रिम में परिणाम पुनः प्राप्त करने की स्थापना http://hadoop.apache.org/hbase/docs/r0.20.4/api/org/apache/hadoop/hbase/client/Scan.html#setCaching(int)

संभावना अपने स्कैनर धीमी है क्योंकि आप केवल (जो वापस के सभी शामिल हैं एक समय में एक रिकॉर्ड पढ़ रहे हैं और आरपीसी प्रोटोकॉल और क्या नहीं)। तो यदि आप बहुत कुछ पढ़ना चाहते हैं, तो सिस्टम को आपके लिए कुछ परिणाम कैश करें।

4

आप फ़िल्टर एपीआई की भी जांच कर सकते हैं, जो आपको क्लाइंट को पंक्तियों या कक्षों का चयन करने की अनुमति देता है: http://hadoop.apache.org/hbase/docs/current/api/org/apache/hadoop/hbase/filter/package-summary.html

+2

निम्न URL भी फिल्टर के लिए उपयोगी है: http://hbase.apache.org/book/client.filter.html – David

0

आप scan.setMaxResultSize का उपयोग HBase से प्राप्त रिकॉर्ड्स को नियंत्रित करने के लिए कर सकते हैं। (यह मतलब यह नहीं है तो आप इस क्वेरी से कम परिणाम प्राप्त)

आप एसक्यूएल select top 100 from TABLE; की तरह परिणाम सीमित करना चाहते हैं आप उपयोग करने की आवश्यकता एक PageFilter^_^

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