Hive的Timestamp数据类型支持的范围是多少

时间:2017-03-30 14:06:28

标签: hive timestamp orc

  • Hadoop发行版:HDP 2.4.2
  • Hive版本:1.2.1

我有一个tbl1列的ORC表格timestamp。我插入了这些值:

insert into tbl1 values ('0001-01-01 00:00:20.0');
insert into tbl1 values ('9999-01-01 00:00:20.0');

我创建了另一个具有tbl2列的ORC表timestamp。然后我试了一下:

insert into tbl2 select * from tbl1;

tbl2中的数据已损坏:

1754-08-28 22:44:01.128654848
1815-03-31 05:56:28.066277376
  • 我使用超出范围值吗?
  • 时间戳是否有特定的范围?

此问题仅适用于ORC文件格式。对于其他文件格式,例如textfileavroparquet等,它的工作正常。

1 个答案:

答案 0 :(得分:1)

在我的情况下启用了Hive矢量化。

hive.vectorized.execution.enabled = true;

由于矢量化执行,这是一个问题。

在1.3.0,2.0.1,2.1.0

中修复

查看HIVE-9862wiki了解详情。

要使用矢量化查询执行,必须以ORC格式存储数据。这就是错误仅以ORC文件格式出现的原因。