将非Kudu转换为Impala中的Kudu表

时间:2019-05-17 09:00:02

标签: impala apache-kudu

当我在下面使用代码时,黑斑羚update statement出现问题

update john_estares_db.tempdbhue set QU=concat(account_id,"Q",quarter(mrs_change_date)," ",year(mrs_change_date));

它返回错误消息:

AnalysisException: Impala does not support modifying a non-Kudu table: john_estares_db.tempdbhue

我想知道是否可以将非Kudu表更改为Kudu表,还是在Impala中为非Kudu使用update statement的替代项。 TIA

2 个答案:

答案 0 :(得分:0)

Apache Kudu是一个数据存储区(可以认为是HDFS / S3的替代品,但仅存储结构化数据),它允许基于主键进行更新。这与Impala具有良好的集成。 Imapla上的kudu表是查询存储在Kudu上的数据的一种方式。

简而言之,如果您尚未安装Kudu和进行设置,则无法在Impala上创建kudu表。

如果已安装并设置了Kudu,则不能简单地转换Kudu表。您必须使用一些主键列创建具有类似结构的新kudu表(Kudu对所有表都需要主键),然后使用sql查询insert into .. select * from ...从旧的非kudu表中插入数据。

答案 1 :(得分:0)

john_estares_db.tempdbhue的类型是什么?  蜂房或其他表类型,不支持更新或更新。 您可以使用show create table来检查表格类型。 show create table 如果您已安装kudu,则可以创建一个kudu表,然后将数据移到kudu表中,然后就可以使用更新代码了。