Impala 添加具有默认值的列
Impala add column with default value
我想在现有的 impala table(和视图)中添加一个具有默认值的列(以便现有的行也有一个值)。该列不应允许空值。
ALTER TABLE dbName.tblName ADD COLUMNS (id STRING NOT NULL '-1')
我浏览了文档,但找不到专门执行此操作的示例。我如何在 Impala 中执行此操作? Hue underlines/does 无法识别 NOT NULL 命令
您是否将 Kudu 用作 table 的存储层?因为如果不是,那么根据Impala docs,
Note: Impala only allows PRIMARY KEY clauses and NOT NULL constraints on
columns for Kudu tables. These constraints are enforced on the Kudu
side.
...
For non-Kudu tables, Impala allows any column to contain NULL values,
because it is not practical to enforce a "not null" constraint on HDFS
data files that could be prepared using external tools and ETL
processes.
Impala的ALTER TABLE语法也不支持指定默认列值(一般来说,非Kudu)。
使用Impala
你可以尝试如下
添加列
ALTER TABLE dbName.tblName ADD COLUMNS(id STRING);
添加该列后,您可以使用相同的 table
如下所示填写该列
INSERT OVERWRITE dbName.tblName SELECT col1,...,coln, '-1' FROM dbName.tblName;
其中 col1,...,coln 是 add columns
命令之前的前几列,'-1'
是填充新列。
我想在现有的 impala table(和视图)中添加一个具有默认值的列(以便现有的行也有一个值)。该列不应允许空值。
ALTER TABLE dbName.tblName ADD COLUMNS (id STRING NOT NULL '-1')
我浏览了文档,但找不到专门执行此操作的示例。我如何在 Impala 中执行此操作? Hue underlines/does 无法识别 NOT NULL 命令
您是否将 Kudu 用作 table 的存储层?因为如果不是,那么根据Impala docs,
Note: Impala only allows PRIMARY KEY clauses and NOT NULL constraints on columns for Kudu tables. These constraints are enforced on the Kudu side.
...
For non-Kudu tables, Impala allows any column to contain NULL values, because it is not practical to enforce a "not null" constraint on HDFS data files that could be prepared using external tools and ETL processes.
Impala的ALTER TABLE语法也不支持指定默认列值(一般来说,非Kudu)。
使用Impala
你可以尝试如下
添加列
ALTER TABLE dbName.tblName ADD COLUMNS(id STRING);
添加该列后,您可以使用相同的 table
如下所示填写该列INSERT OVERWRITE dbName.tblName SELECT col1,...,coln, '-1' FROM dbName.tblName;
其中 col1,...,coln 是 add columns
命令之前的前几列,'-1'
是填充新列。