HQL Table,CURRENT_TIMESTAMP 作为列的默认值

HQL Table with CURRENT_TIMESTAMP as default value for column

我正在尝试在 Hadoop 中创建一个 table,但使用 current_timestamp() 作为列的默认值:

CREATE TABLE table_test(
      CODE_FIRST         VARCHAR(3),
      TYPE_TEST_1        VARCHAR(4),
      TYPE_TEST_2        VARCHAR(4),
      FLAG_BOOL          VARCHAR(1),
      CONTACT            VARCHAR(15),
      DATE_MODIFIED      TIMESTAMP DEFAULT CURRENT_TIMESTAMP()
) STORED AS parquet TBLPROPERTIES("parquet.compress"="GZIP");

我尝试将其更改为 AS CURRENT_TIMESTAMP 和许多其他格式,但我无法创建 table。有人可以解释一下我做错了什么吗?

Hive 版本 2.1.1-mapr-1901

错误:

Error while compiling statement: 
FAILED: ParseException line 50:25 mismatched input 'DEFAULT' expecting ) near 'TIMESTAMP' in create table statement

DEFAULT Hive DDL 中的约束已在版本 3.0 中实现,请参阅 JIRA HIVE-18726.

Ashutosh Chauhan added a comment - 22/May/18 23:16

This jira is resolved and released with Hive 3.0 If you find an issue with it, please create a new jira.

但即使是那个版本,也只能在MANAGED表上定义约束,而MANAGED表不支持Parquet格式。

对于 EXTERNAL 表(可以使用 Parquet 文件),根据 Hive manual.

仅支持 RELY 约束