S-JIS[2010-07-11] 変更履歴

KeyValue

HBaseJava APIKeyValueクラスは、テーブルから取ってきたデータ(セル)を保持するクラス。


KeyValueから値を取得する方法

KeyValueから各要素を取り出すメソッドは、getBuffer()getXXXOffset()getXXXLength()から新しいバイト配列を生成して返している。[2010-03-01]
したがって、バイト配列のオフセットと長さを引数にとるメソッドに値を渡したいのであれば、直接オフセットと長さを使う方がいい。

//	String row = Bytes.toString(kv.getRow());
	String row = Bytes.toString(kv.getBuffer(), kv.getRowOffset(), kv.getRowLength());

KeyValueの内部では、各要素をそれぞれ個別に保持しているわけではない。
SplitKeyValue skv = kv.split()」は、各要素の値を各フィールドに保持したインスタンスとなる。
デバッガーで各要素の値を確認するのに便利ということらしい^^;

  値(バイト配列) オフセット 長さ 比較(equals) SplitKeyValue
ROW(キー) kv.getRow() kv.getRowOffset() kv.getRowLength() kv.matchingRow(r) skv.getRow()
family kv.getFamily() kv.getFamilyOffset() kv.getFamilyLength() kv.matchingFamily(f) skv.getFamily()
qualifier kv.getQualifier() kv.getQualifierOffset() kv.getQualifierLength() kv.matchingQualifier(q) skv.getQualifier()
column(項目) kv.getColumn()     kv.matchingColumn(c)
kv.matchingColumn(f, q)
 
value(値) kv.getValue() kv.getValueOffset() kv.getValueLength()   skv.getValue()
日時 kv.getTimestamp() kv.getTimestampOffset()     skv.getTimestamp()

その他のKeyValueのメソッド・フィールド

メンバー ver 備考 更新日
COLUMN_FAMILY_DELIMITER
COLUMN_FAMILY_DELIM_ARRAY
  familyとqualifierの区切り文字、すなわち「:」の定数。 2010-07-11
KeyValue.parseColumn(c)   カラム名をfamilyとqualifierに分離して返す。 2010-07-11
KeyValue.makeColumn(f, q) 0.89 familyとqualifierを結合したカラム名を返す。 2010-07-11
KeyValue.createKeyValueFromKey(byte[], offset, length)   バイト列からKeyValueを生成する。 2010-07-11
KeyValue.createKeyValueFromKey(byte[]) 0.89 バイト列全体からKeyValueを生成する。 2010-07-11
KeyValue.createKeyValueFromKey(ByteBuffer) 0.89 ByteBufferからKeyValueを生成する。 2010-07-11

KeyValueのタイプ

KeyValueでは、使用目的(putとかDeleteとか)に応じたタイプを保持しているらしい。[2010-03-01]

	KeyValue.Type type = KeyValue.Type.codeToType(kv.getType());
メソッド 備考 更新日
kv.isDelete() Delete・DeleteFamily・DeleteColumnかどうか。 2010-07-11
kv.isDeleteType() Deleteかどうか。 2010-07-11
kv.isDeleteFamily() DeleteFamilyかどうか。 2010-07-11

Java APIへ戻る / HBaseへ戻る / HBase変更点へ / Java目次へ行く / 技術メモへ戻る
メールの送信先:ひしだま