"row_id"、 "customer_id"、 "f_name"、 "l_name"、 "location"、 "last_update_date"の6つのカラムを持つSQLテーブルがあります。HBaseで3バージョンのデータを見る方法
1)Iは、上記のSQLテーブルのSQOOP介しHBaseのテーブルを作成して、以下上記sqoopingでsqoop構文
sqoop import --connect "jdbc:sqlserver://server:port;databaseName=db" --username xxx --password xxx --table xxx --hbase-table xxx --column-family amitesh --hbase-row-key row_id,customer_id --hbase-create-table -m 1
あり、Iは2列を連結してHBaseの行のキーを作成し、ましたその作業の罰金、これまでのところ良い。以下は、私が "hbase_tblを記述する" HBaseの "スキャン" を出力
hbase(main):036:0> scan 'xxx'
ROW COLUMN+CELL
111_emp1 column=amitesh:f_name, timestamp=1497365606380, value=dev
111_emp1 column=amitesh:l_name, timestamp=1497365606380, value=saha
111_emp1 column=amitesh:last_update_date, timestamp=1497365606380, value=2017-06-12
111_emp1 column=amitesh:location, timestamp=1497365606380, value=hyd
112_emp1 column=amitesh:f_name, timestamp=1497365606380, value=hari
112_emp1 column=amitesh:l_name, timestamp=1497365606380, value=sri
112_emp1 column=amitesh:last_update_date, timestamp=1497365606380, value=2017-06-13
112_emp1 column=amitesh:location, timestamp=1497365606380, value=bng
2)ですが、私は "VERSIONS => 1"、の値はあなたは下の見ることができるようにことがわかった:
hbase(main):025:0> describe 'xxx'
Table HBASE_SQOOP is ENABLED
HBASE_SQOOP
COLUMN FAMILIES DESCRIPTION
{NAME => 'amitesh', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION
=> 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
そこで、バージョンを2に変更するために、HBaseのコマンドを実行しました。
正常に実行するために起こるalter 'xxx', {NAME => 'amitesh', VERSIONS => 2}
、および変更された今F_NAMEの2バージョンを維持するために今すぐ)VERSIONためのコマンドが2
3だった「記述」で表示される値、およびHBaseの行のL_NAME id 111_emp1、row_id 111のSQL Serverテーブルを2回更新して再sqoopしましたが、更新された値しか表示されませんでした。現在のバージョンと過去のバージョンは表示されません。
hbase(main):038:0> get 'xxx', '111_emp1',{COLUMN=> 'amitesh:f_name',VERSION=>2}
COLUMN CELL
amitesh:f_name timestamp=1497365606380, value=dev
1 row(s) in 0.0040 seconds
hbase(main):047:0> get 'xx', '111_emp1',{COLUMN=> 'amitesh:f_name',VERSION=>2}
COLUMN CELL
amitesh:f_name timestamp=1497365863181, value=Raj
1 row(s) in 0.0110 seconds
あなたは、「取得」最初に、出力を「取得」2上に見ることができるようにf_nameの値は「dev」、2番目の「get」の値は「raj」です。しかし私は "dev"と "raj"を私の出力として見ることを期待していました。私の "変更"コマンドによると、HBaseはそれらの両方を一緒に保持する必要がありますが、起こることはありません。
私には何が欠けていますか?