我希望将数据存储到Hive中以便在几个月内运行分析(每天约100GB)。
我的行包含一个日期(STRING)字段,如下所示:2016-03-06T04:31:59.933012793 + 08:00
我想基于此字段进行分区,但仅基于日期(2016-03-06) - 我不关心时区。有没有办法在不改变原始格式的情况下实现这一目标?
分区的原因既包括性能,也包括删除旧时数以滚动数据窗口的能力。
谢谢
答案 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)
这里我正在应用一些转换分区列。希望这可以帮助。 从基地;