在 impala 中更改表:使列成为主键

Posted

技术标签:

【中文标题】在 impala 中更改表:使列成为主键【英文标题】:Alter table in impala : make a column a primary key 【发布时间】:2019-06-06 09:59:29 【问题描述】:

使用 Hue,如何更改表以使现有列成为主键?

我检查和类似的东西:

ALTER TABLE table_name ADD CONSTRAINT colname PRIMARY KEY (cs_id);

语法不正确。

注意:数据使用 Kudu 文件系统存储。

【问题讨论】:

【参考方案1】:

首先,Impala does not support alter contraint 作为alter table 中的一个选项。

第二,primary keys are very limited:

主键列必须是 CREATE TABLE 语句中指定的第一个。

我认为在定义主键后您不能更改它。在 Impala 中,数据是按主键聚集(即排序)的,因此任何更改都会非常昂贵。

您可能需要重新创建表并重新加载数据。

【讨论】:

【参考方案2】:

当您存储为 Kudu 时,您需要考虑到 PK 列需要在创建表时全部创建。 Impala 不支持更改主键。 恐怕您需要删除并重新创建表。

【讨论】:

以上是关于在 impala 中更改表:使列成为主键的主要内容,如果未能解决你的问题,请参考以下文章

我如何使 Laravel 迁移更改并使列可以为空

如何更改 PostgreSQL 表并使列唯一?

使列成为复选框

客快物流大数据项目(七十七):使用Impala对kudu更改表属性操作

Mysql:如何使物化视图中的列成为主键

如何转换结果集以使列值成为聚合标题?