HBase - डेटा पढ़ें
HBase शेल का उपयोग करके डेटा पढ़ना
get कमान और get() उसकि विधि HTableHBase में तालिका से डेटा पढ़ने के लिए कक्षा का उपयोग किया जाता है। का उपयोग करते हुएgetकमांड, आप एक बार में डेटा की एक पंक्ति प्राप्त कर सकते हैं। इसका सिंटैक्स इस प्रकार है:
get ’<table name>’,’row1’
उदाहरण
निम्न उदाहरण दिखाता है कि प्राप्त कमांड का उपयोग कैसे करें। की पहली पंक्ति को स्कैन करते हैंemp तालिका।
hbase(main):012:0> get 'emp', '1'
COLUMN CELL
personal : city timestamp = 1417521848375, value = hyderabad
personal : name timestamp = 1417521785385, value = ramu
professional: designation timestamp = 1417521885277, value = manager
professional: salary timestamp = 1417521903862, value = 50000
4 row(s) in 0.0270 seconds
एक विशिष्ट कॉलम पढ़ना
नीचे दिए गए एक विशेष कॉलम को पढ़ने के लिए सिंटैक्स दिया गया है get तरीका।
hbase> get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’}
उदाहरण
नीचे दिए गए उदाहरण HBase तालिका में एक विशिष्ट कॉलम पढ़ने के लिए है।
hbase(main):015:0> get 'emp', 'row1', {COLUMN ⇒ 'personal:name'}
COLUMN CELL
personal:name timestamp = 1418035791555, value = raju
1 row(s) in 0.0080 seconds
जावा एपीआई का उपयोग करते हुए डेटा पढ़ना
HBase तालिका से डेटा पढ़ने के लिए, का उपयोग करें get()HTable वर्ग की विधि। इस विधि के लिए एक उदाहरण की आवश्यकता हैGetकक्षा। HBase तालिका से डेटा पुनर्प्राप्त करने के लिए नीचे दिए गए चरणों का पालन करें।
चरण 1: कॉन्फ़िगरेशन क्लास को तुरंत
Configurationवर्ग HBase विन्यास फाइल को अपनी वस्तु में जोड़ता है। आप का उपयोग करके एक कॉन्फ़िगरेशन ऑब्जेक्ट बना सकते हैंcreate() की विधि HbaseConfiguration नीचे दिखाया गया है।
Configuration conf = HbaseConfiguration.create();
चरण 2: HTable कक्षा को तुरंत लिखें
आपके पास एक वर्ग है जिसे बुलाया गया है HTable, HBase में तालिका का कार्यान्वयन। इस वर्ग का उपयोग एकल HBase तालिका के साथ संवाद करने के लिए किया जाता है। इस वर्ग को त्वरित करते समय, यह कॉन्फ़िगरेशन ऑब्जेक्ट और तालिका नाम को मापदंडों के रूप में स्वीकार करता है। आप नीचे दिखाए गए अनुसार HTable वर्ग को देख सकते हैं।
HTable hTable = new HTable(conf, tableName);
चरण 3: क्लास को तुरंत प्राप्त करें
आप का उपयोग करके HBase तालिका से डेटा पुनः प्राप्त कर सकते हैं get() की विधि HTableकक्षा। यह विधि किसी पंक्ति से किसी सेल को निकालती है। यह एक की आवश्यकता हैGetपैरामीटर के रूप में क्लास ऑब्जेक्ट। इसे नीचे दिखाए अनुसार बनाएँ।
Get get = new Get(toBytes("row1"));
चरण 4: डेटा पढ़ें
डेटा पुनर्प्राप्त करते समय, आप आईडी द्वारा एकल पंक्ति प्राप्त कर सकते हैं, या पंक्ति आईडी के सेट द्वारा पंक्तियों का एक सेट प्राप्त कर सकते हैं, या संपूर्ण तालिका या पंक्तियों के सबसेट को स्कैन कर सकते हैं।
आप में ऐड मेथड वेरिएंट का उपयोग करके एक HBase टेबल डेटा प्राप्त कर सकते हैं Get कक्षा।
किसी विशिष्ट स्तंभ परिवार से एक विशिष्ट स्तंभ प्राप्त करने के लिए, निम्न विधि का उपयोग करें।
get.addFamily(personal)
किसी विशिष्ट स्तंभ परिवार से सभी कॉलम प्राप्त करने के लिए, निम्न विधि का उपयोग करें।
get.addColumn(personal, name)
चरण 5: परिणाम प्राप्त करें
अपना उत्तीर्ण करके परिणाम प्राप्त करें Get की विधि प्राप्त करने के लिए वर्ग उदाहरण HTableकक्षा। यह विधि लौटती हैResultक्लास ऑब्जेक्ट, जो अनुरोधित परिणाम रखता है। नीचे दिए गए का उपयोग हैget() तरीका।
Result result = table.get(g);
चरण 6: परिणाम उदाहरण से पढ़ना मान
Result वर्ग प्रदान करता है getValue()इसके उदाहरण से मान पढ़ने की विधि। मानों को पढ़ने के लिए नीचे दिखाए अनुसार इसका उपयोग करेंResult उदाहरण।
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
नीचे दिए गए एक HBase तालिका से मान पढ़ने के लिए पूरा कार्यक्रम है।
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
public class RetriveData{
public static void main(String[] args) throws IOException, Exception{
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(config, "emp");
// Instantiating Get class
Get g = new Get(Bytes.toBytes("row1"));
// Reading the data
Result result = table.get(g);
// Reading values from Result class object
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
// Printing the values
String name = Bytes.toString(value);
String city = Bytes.toString(value1);
System.out.println("name: " + name + " city: " + city);
}
}
उपरोक्त कार्यक्रम को संकलित और निष्पादित करें जैसा कि नीचे दिखाया गया है।
$javac RetriveData.java
$java RetriveData
निम्नलिखित आउटपुट होना चाहिए:
name: Raju city: Delhi