Hi,我遇到一个问题,我在hive catalog里定义一个hbase connector表,如下:
CREATE TABLE t_sems_second (
rowkey string,
status row (val VARCHAR, dqf VARCHAR),
analog row (val VARCHAR, dqf VARCHAR)
) WITH (
'connector' = 'hbase-1.4',
'table-name' = 't_sems_second',
'zookeeper.quorum' =
'dev-hadoop-node-c:2181,dev-hadoop-node-d:2181,dev-hadoop-node-e:2181'
);
然后,我在flink-sql,运行sql插入数据,没有问题,如下:
insert into t_sems_second (rowkey, analog, status) values( 'row2', row('a',
'100'), row('b', '200') );
如果我尝试把第二个列簇的内容置为空字符串,也是可以,如下:
insert into t_sems_second (rowkey, analog, status) values( 'row3', row('c',
'300'), row('', '') );
但是在hbase查询里,就会显示如下的空字符串:
hbase(main):019:0> scan 't_sems_second'
ROW COLUMN+CELL
row2 column=analog:dqf,
timestamp=1599639282193, value=200
row2 column=analog:val,
timestamp=1599639282193, value=b
row2 column=status:dqf,
timestamp=1599639282193, value=100
row2 column=status:val,
timestamp=1599639282193, value=a
* row3 column=analog:dqf,
timestamp=1599639292413, value=
row3 column=analog:val,
timestamp=1599639292413, value= *
row3 column=status:dqf,
timestamp=1599639292413, value=300
row3 column=status:val,
timestamp=1599639292413, value=c
2 row(s)
Took 0.1184 seconds
hbase(main):020:0>
最终,我的问题是如何只插入数据到列簇analog,类似下面的语句:
insert into t_sems_second (rowkey, analog) select 'row1', row('a', '100') ;
或者:
insert into t_sems_second (rowkey, analog, status) values( 'row2', row('a',
'100'), row(null, NULL) );
但证明是不行的?
那么,flink sql 1.11 hbase
connector支持只插入数据到其中一个列簇吗,还是说实现我的需求,只能定义两个表,每个表只包含一个列簇?
--
Sent from: http://apache-flink.147419.n8.nabble.com/