Hbase 基于行的筛选器无法处理从Phoenix创建的表

Hbase 基于行的筛选器无法处理从Phoenix创建的表,hbase,phoenix,Hbase,Phoenix,然后,当使用以下命令执行范围查询时,HBase: create table empPh2(id integer primary key, fname varchar, lname varchar)COLUMN_ENCODED_BYTES=0 upsert into empPh2 values (1, 'A', 'B'); upsert into empPh2 values (2, 'B', 'B'); upsert into empPh2 values (3, 'C', 'B'); up

然后,当使用以下命令执行范围查询时,
HBase

create table empPh2(id integer primary key, fname varchar, lname varchar)COLUMN_ENCODED_BYTES=0 
upsert into empPh2 values (1, 'A', 'B'); 
upsert into empPh2 values (2, 'B', 'B'); 
upsert into empPh2 values (3, 'C', 'B'); 
upsert into empPh2 values (4, 'John', 'B');
我看到
HBASE
中的行有额外的符号。不确定如何在
HBASE
表与
Phoenix
表之间进行
1:1
映射

hbase(main):004:0> scan 'EMPPH2', {STARTROW => '1', ENDROW => '3'} 
ROW                                                COLUMN+CELL                                                                                                                                         
0 row(s) in 0.0030 seconds 

ROW
过滤器在使用
HBASE
创建表时工作正常,但在使用
Phoenix
创建表时不工作,正如您在对表进行完全扫描(
scan'EMPPH2'
时所看到的那样,rowkey不是简单的字符串(如'1'或'3'),而是表示在Phoenix中定义的键的字节数组(类型为4字节的
integer
)。例如,integer
1
的内部表示形式为
0x8000001
1000000000000000000000001
,二进制)

因此,如果要在第1行和第3行之间查询数据,必须执行以下操作:

ROW                                              COLUMN+CELL                                                                                                                                 
 \x80\x00\x00\x01                                column=0:FNAME, timestamp=1532651140732, value=A                                                                                         
 \x80\x00\x00\x01                                column=0:LNAME, timestamp=1532651140732, value=B                                                                                             
 \x80\x00\x00\x01                                column=0:_0, timestamp=1532651140732, value=x                                                                                               
 \x80\x00\x00\x02                                column=0:FNAME, timestamp=1532651151877, value=B                                                                                         
 \x80\x00\x00\x02                                column=0:LNAME, timestamp=1532651151877, value=B                                                                                             
 \x80\x00\x00\x02                                column=0:_0, timestamp=1532651151877, value=x                                                                                               
 \x80\x00\x00\x03                                column=0:FNAME, timestamp=1532651164899, value=C                                                                                         
 \x80\x00\x00\x03                                column=0:LNAME, timestamp=1532651164899, value=B  
scan 'EMPPH2', {STARTROW => "\x80\x00\x00\x01", ENDROW => "\x80\x00\x00\x03"}