当我在下面使用代码时,黑斑羚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
答案 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表中,然后就可以使用更新代码了。