首页 > 解决方案 > Impala 添加具有默认值的列

问题描述

我想使用默认值向现有的 impala 表(和视图)添加一列(以便现有的行也有一个值)。该列不应允许空值。

ALTER TABLE dbName.tblName ADD COLUMNS (id STRING NOT NULL '-1')

我浏览了文档,但找不到专门执行此操作的示例。我如何在 Impala 中执行此操作?色调下划线/无法识别 NOT NULL 命令

标签: clouderaimpalahue

解决方案


您是否使用 Kudu 作为表的存储层?因为如果不是,那么根据Impala 文档

注意: Impala 仅允许在 Kudu 表的列上使用 PRIMARY KEY 子句和 NOT NULL 约束。这些约束在 Kudu 端强制执行。

...

对于非 Kudu 表,Impala 允许任何列包含 NULL 值,因为对可以使用外部工具和 ETL 过程准备的 HDFS 数据文件强制执行“非空”约束是不切实际的。

Impala 的ALTER TABLE语法也不支持指定默认列值(通常是非 Kudu)。


推荐阅读