HBase読み取りデータ【hbase APIを含む一般的な操作アドレスは、参照のみ】
37913 ワード
記事のソース:http://www.yiibai.com/hbase/hbase_read_.data.html【hbase APIよくある操作】
getコマンドとHTable類のget()メソッドは、HBaseテーブルからデータを読み出すために使用されます.getコマンドを使用して、1行のデータを同時に取得できます.その文法は以下の通りです.
以下に文法を示します.get法を使って指定列を読みます.
一つのHBaseテーブルからデータを読み込むには、HTable類のget()方法を使います.この方法はGetクラスの一例を必要とする.次のように、HBaseテーブルからデータの与えられたステップを検索します.
第1ステップ:実装Configrationクラス
ConfigrationクラスはHBaseのプロファイルをそのオブジェクトに追加しました.HbaseConfigration類のcreate()方法を使用して、下図のようにオブジェクトを配置します.
HTableという種類があります.HBaseの中のTable類を実現します.このような単一HBase用のテーブルは通信します.このクラスの例では、パラメータとして設定オブジェクトとテーブル名が受け入れられます.HTable類を実例化し、下図のようにします.
HBaseテーブルからHTable類のget()方法を使ってデータを検索することができます.この方法は、与えられた行のセルを抽出します.パラメータとしてGet類のオブジェクトが必要です.下図のように作成します.
データを検索すると、IDによって1つの列を得ることができます.または、行のグループIDを得ることができます.または、テーブルまたは行のサブセット全体をスキャンします.
Getクラスのadd方法を使って、HBaseテーブルのデータを検索することができます.
特定のカラム族から指定の列を取得するには、次の方法があります.
取得結果は、GetクラスのインスタンスのHTableクラスのget方法によって行われる.この方法はResultクラスのオブジェクトを返します.要求された結果を保存します.以下に示すのはget()法の使用である.
Resultクラスは、getValue()方法を提供し、その例から値を読み出す.図のように、Resultインスタンスから値を読み出すために使用します.
getコマンドとHTable類のget()メソッドは、HBaseテーブルからデータを読み出すために使用されます.getコマンドを使用して、1行のデータを同時に取得できます.その文法は以下の通りです.
get ’<table name>’,’row1’
以下の例では、getコマンドの使い方を説明します.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
Java APIを使ってデータを読み取ります.一つのHBaseテーブルからデータを読み込むには、HTable類のget()方法を使います.この方法はGetクラスの一例を必要とする.次のように、HBaseテーブルからデータの与えられたステップを検索します.
第1ステップ:実装Configrationクラス
ConfigrationクラスはHBaseのプロファイルをそのオブジェクトに追加しました.HbaseConfigration類のcreate()方法を使用して、下図のようにオブジェクトを配置します.
Configuration conf = HbaseConfiguration.create();
ステップ2:HTableクラスの実装HTableという種類があります.HBaseの中のTable類を実現します.このような単一HBase用のテーブルは通信します.このクラスの例では、パラメータとして設定オブジェクトとテーブル名が受け入れられます.HTable類を実例化し、下図のようにします.
HTable hTable = new HTable(conf, tableName);
ステップ3:実装獲得クラスHBaseテーブルからHTable類のget()方法を使ってデータを検索することができます.この方法は、与えられた行のセルを抽出します.パラメータとしてGet類のオブジェクトが必要です.下図のように作成します.
Get get = new Get(toBytes("row1"));
ステップ4:データの読み込みデータを検索すると、IDによって1つの列を得ることができます.または、行のグループIDを得ることができます.または、テーブルまたは行のサブセット全体をスキャンします.
Getクラスのadd方法を使って、HBaseテーブルのデータを検索することができます.
特定のカラム族から指定の列を取得するには、次の方法があります.
get.addFamily(personal)
特定の列族のすべての列を得るには、次の方法があります.get.addColumn(personal, name)
ステップ5:結果の取得取得結果は、GetクラスのインスタンスのHTableクラスのget方法によって行われる.この方法はResultクラスのオブジェクトを返します.要求された結果を保存します.以下に示すのはget()法の使用である.
Result result = table.get(g);
ステップ6:Resultインスタンスから値を読む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