参考这个案例试试:
CREATE TEMPORARY TABLE datagen_source (
a INT,
b BIGINT,
c STRING,
`proc_time` AS PROCTIME()
) WITH (
'connector'='datagen'
);
CREATE TEMPORARY TABLE hbase_dim (
rowkey INT,
family1 ROW<col1 INT>,
family2 ROW<col1 STRING, col2 BIGINT>,
family3 ROW<col1 DOUBLE, col2 BOOLEAN, col3 STRING>
) WITH (
'connector'='cloudhbase',
'table-name'='<yourTableName>',
'zookeeper.quorum'='<yourZookeeperQuorum>'
);
CREATE TEMPORARY TABLE blackhole_sink(
a INT,
f1c1 INT,
f3c3 STRING
) WITH (
'connector'='blackhole'
);
INSERTINTO blackhole_sink
SELECT a, family1.col1 as f1c1, family3.col3 as f3c3 FROM datagen_source
JOIN hbase_dim FORSYSTEM_TIMEASOF datagen_source.`proc_time` as h ON
datagen_source.a = h.rowkey;
| |
博星
|
|
[email protected]
|
---- 回复的原邮件 ----
| 发件人 | xiaohui zhang<[email protected]> |
| 发送日期 | 2024年06月20日 10:03 |
| 收件人 | <[email protected]> |
| 主题 | Re: 使用hbase连接器插入数据,一个列族下有多列时如何只更新其中一列 |
flink在写入时需要所有DDL中定义的字段都必须被同时写入,不支持sql中只使用部分字段。
如果你确定只需写入部分数据,在DDL中只定义你用到的部分
zboyu0104 <[email protected]> 于2024年6月14日周五 15:43写道:
怎么退订
from 阿里邮箱
iPhone------------------------------------------------------------------
发件人:谢县东<[email protected]>
日 期:2024年06月06日 16:07:05
收件人:<[email protected]>
主 题:使用hbase连接器插入数据,一个列族下有多列时如何只更新其中一列
各位好:
flink版本: 1.13.6
我在使用 flink-connector-hbase 连接器,通过flinkSQL 将数据写入hbase,hbase 建表如下:
CREATE TABLE hbase_test_db_test_table_xxd (
rowkey STRING,
cf1 ROW<name String, sex STRING, age String>,
PRIMARY KEY (rowkey) NOT ENFORCED
) WITH (
'connector' = 'hbase-2.2',
'table-name' = 'test_db:test_table_t1',
'zookeeper.quorum' = 'xxx:2181',
'zookeeper.znode.parent' = '/hbase',
'null-string-literal' = '',
'sink.parallelism' = '2'
);
hbase cf1列族下有三列,看官网示例插入数据时需要构建一个row类型插入(row类型需包含列族下的所有列)
INSERT INTO hbase_test_db_test_table_xxd select '002' as rowkey,
row('xxd_2', 'boy', '10') as cf1;
如果只想更新其中某一列如何实现?在flink中新建一个hbase表吗?