Hbase独自のtable/Data操作
出典: LunaBiblos
Software > DataBase > KeyValueストア > Hbaseの利用 > Hbase独自のtable/Data操作
目次 |
概要
Sampleで作ったDataを利用して、Hbase独自のData構造と利用方法の解説です。
今回はHbaseの仕様を解説していますが、BigTableをはじめとする主要なKeyValueストアはこれに近いData構造を持っています。
なお利用するTableの情報は大きな図になってしまうので別ページHbase解説用Data図に纏めてあります。
要点
- 基本的にRow(Key)のみ検索が可能
- ColumnFamilyとColumnの違いを理解する
- create文で作る事が出来るのはColumnFamilyである
- 今回はColumnFamily+Columnを便宜的に項目と呼ぶ
- ColumnはPut文(Data登録時)に指定する
- Columnの有無を利用して検索は可能
Data取得
Case1
利用Hbase Shell:get 'TEST_TYPE','KEY00001', {COLUMN => 'ColumnFamilyA:'}
timestamp=1254899183419, value=k1_cfA0 timestamp=1254898804238, value=k1_cfA_c1 timestamp=1254898807266, value=k1_cfA_c2 timestamp=1254898811462, value=k1_cfA_c3 timestamp=1254902678018, value=OnlyKEY1
Case2
利用Hbase Shell:get 'TEST_TYPE','KEY00001', {COLUMN => ['ColumnFamilyA:','ColumnFamilyB:']}
ColumnFamilyA: timestamp=1254899183419, value=k1_cfA0 ColumnFamilyA:Column1 timestamp=1254898804238, value=k1_cfA_c1 ColumnFamilyA:Column2 timestamp=1254898807266, value=k1_cfA_c2 ColumnFamilyA:Column3 timestamp=1254898811462, value=k1_cfA_c3 ColumnFamilyA:OnlyKEY1 timestamp=1254902678018, value=OnlyKEY1 ColumnFamilyB: timestamp=1254899186434, value=k1_cfB0 ColumnFamilyB:Column1 timestamp=1254898814592, value=k1_cfB_c1 ColumnFamilyB:Column2 timestamp=1254898817548, value=k1_cfB_c2 ColumnFamilyB:Column3 timestamp=1254898820692, value=k1_cfB_c3
Case3
利用Hbase Shell:get 'TEST_TYPE','KEY00001', {COLUMN => ['ColumnFamilyA:','ColumnFamilyB:Column1']}
ColumnFamilyA: timestamp=1254899183419, value=k1_cfA0 ColumnFamilyA:Column1 timestamp=1254898804238, value=k1_cfA_c1 ColumnFamilyA:Column2 timestamp=1254898807266, value=k1_cfA_c2 ColumnFamilyA:Column3 timestamp=1254898811462, value=k1_cfA_c3 ColumnFamilyA:OnlyKEY1 timestamp=1254902678018, value=OnlyKEY1 ColumnFamilyB:Column1 timestamp=1254898814592, value=k1_cfB_c1
Case4
利用Hbase Shell:get 'TEST_TYPE','KEY00001', {COLUMNS => ['ColumnFamilyA:Column1','ColumnFamilyB:Column1']}
ColumnFamilyA:Column1 timestamp=1254898804238, value=k1_cfA_c1 ColumnFamilyB:Column1 timestamp=1254898814592, value=k1_cfB_c1
Case5
利用Hbase Shell:get 'TEST_TYPE','KEY00001', {COLUMN => 'ColumnFamilyA:Column1'}
timestamp=1254898804238, value=k1_cfA_c1
検索
Case1
利用Hbase Shell:scan 'TEST_TYPE',{COLUMNS => 'ColumnFamilyA:Column1'}
KEY00001 column=ColumnFamilyA:Column1, timestamp=1254898804238, value=k1_cfA_c1 KEY00002 column=ColumnFamilyA:Column1, timestamp=1254898840631, value=k2_cfA_c1 KEY00003 column=ColumnFamilyA:Column1, timestamp=1254898876787, value=k3_cfA_c1
Case2
利用Hbase Shell:scan 'TEST_TYPE',{COLUMNS => 'ColumnFamilyA:OnlyKEY1'}
KEY00001 column=ColumnFamilyA:OnlyKEY1, timestamp=1254902678018, value=OnlyKEY1
