基于字段

时间:2016-03-08 12:34:21

标签: database hive

我希望将数据存储到Hive中以便在几个月内运行分析(每天约100GB)。

我的行包含一个日期(STRING)字段,如下所示:2016-03-06T04:31:59.933012793 + 08:00

我想基于此字段进行分区,但仅基于日期(2016-03-06) - 我不关心时区。有没有办法在不改变原始格式的情况下实现这一目标?

分区的原因既包括性能,也包括删除旧时数以滚动数据窗口的能力。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以通过带有动态分区的Insert Overwrite表来实现此目的。

您可以在日期时间列上应用子字符串或regexp_extract函数,并获取所需格式的值。 下面是我的示例查询,其中我通过在分区列上应用函数来加载分区表。

CREATE TABLE base2(id int, name String)
PARTITIONED BY (state string);

INSERT OVERWRITE TABLE base2 PARTITION (state)
SELECT id, name, substring(state,0,1)

这里我正在应用一些转换分区列。希望这可以帮助。     从基地;