2

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 的替代品。TIA

4

2 回答 2

2

Apache Kudu是一种数据存储(将其视为 HDFS/S3 的替代方案,但仅存储结构化数据),它允许基于主键进行更新。这与 Impala 有很好的集成。Imapla 上的 kudu 表是一种查询存储在 Kudu 上的数据的方法。

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

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

于 2019-05-23T08:14:28.037 回答
0

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

于 2019-11-13T02:45:40.350 回答