我可能在理解Hive划分方面有差距。我有一个按日期划分的外部表。我通过对托管配置单元表的查询生成Parquet文件。我当前运行了一个bash脚本,以按日期递增地进行处理(这将提供给查询)。有没有更好的方法来处理多个日期?
表的创建方式如下:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
CREATE EXTERNAL TABLE my_table (id int, product string)
PARTITIONED BY (dt string)
LOCATION '/path/to/location'
基本上,我的bash脚本通过以下方式迭代日期并插入数据:
INSERT OVERWRITE TABLE my_table (dt='2020-07-09')
SELECT id, product FROM managed_table WHERE dt = '2020-07-09';
所以这是可行的,但是一天只做一次,这似乎不是很有效。有更好的办法吗?
1条答案
按热度按时间8e2ybdfx1#
您正在使用静态分区插入记录。为了进行动态分区,在插入数据时,可以如下定义动态分区。您还需要设置配置单元动态分区规则。这是启用动态分区所必需的。
更多关于hive中动态分区的信息。