Apache Phoenix - 使用一个upsert语句插入多行

时间:2016-01-13 16:11:57

标签: apache azure hbase phoenix

我正在使用Apache Phoenix,我正在尝试生成一堆测试数据,以便衡量性能。我想知道是否有办法使用一个UPSERT语句插入多行。

我想要一个类似于这个Oracle SQL语句的Phoenix:

insert into test_table (col_a,col_b) 
select dbms_random.value(1,10), dbms_random.value(1,10) 
from dual
connect by level <= 10;

如果没有,我还有一些选项,比如使用csv文件或创建程序为我做多个UPSERT。

2 个答案:

答案 0 :(得分:1)

是的,有 Upsert Select 声明。

示例:

UPSERT INTO test.targetTable(col1, col2) SELECT col3, col4 FROM test.sourceTable WHERE col5 < 100
UPSERT INTO foo SELECT * FROM bar;

有关详细信息,请查看Apache Phoenix官方文档link

答案 1 :(得分:0)

我在为凤凰表创建测试数据时遇到了类似的问题。相反,我使用了与Phoenix的JDBC连接,然后将行插入到我的表中。是的,在phoenix中插入的选项是upsert,如果行键存在则基本上更新,否则如果行键不存在则插入。