和 Impala 有问题吗 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表,或者是否有一个替代表 update statement
对于 Impala 的非Kudu人。短暂性脑缺血发作
2条答案
按热度按时间brvekthn1#
apachekudu是一个数据存储(可以将其视为hdfs/s3的替代品,但只存储结构化数据),它允许基于主键进行更新。这与 Impala 有很好的结合。imapla上的kudu表是一种查询kudu上存储的数据的方法。
简而言之,如果您还没有安装kudu,并且还没有安装程序,那么就不能在impala上创建kudu表。
如果安装了kudu表并进行了设置,则不能简单地转换kudu表。您必须创建一个具有类似结构的新kudu表,其中包含一些主键列(kudu需要所有表的主键),并使用sql查询从旧的非kudu表中插入数据
insert into .. select * from ...
.2fjabf4q2#
什么样的table
john_estares_db.tempdbhue
? 不支持配置单元或其他表类型、update或upsert。你可以用show create table
检查您的表类型。show create table如果安装了kudu,可以创建kudu表,并将数据移动到kudu表中,然后可以使用更新代码。