Hive 的时间戳数据类型的支持范围是多少

What is the supported range for Hive's Timestamp data types

我有一个 ORC table tbl1timestamp 列。我插入了这些值:

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

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

insert into tbl2 select * from tbl1;

tbl2 中的数据已损坏:

1754-08-28 22:44:01.128654848
1815-03-31 05:56:28.066277376

此问题仅针对 ORC 文件格式。对于 textfileavroparquet 等其他文件格式,它工作正常。

在我的案例中启用了 Hive 矢量化。

hive.vectorized.execution.enabled = true;

这是矢量化执行导致的问题。

在1.3.0、2.0.1、2.1.0中固定

查看 HIVE-9862 and wiki 了解更多详情。

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