有没有可能像这样创建分区 01
从日期开始 2017-01-02'
哪里 01
是一个月吗?我有每天的销售记录,我需要这样做查询 select * from sales where month = '01'
. 所以,如果我能按月份划分每日销售额会更好,但我的数据有日期格式 2017-01-01
做什么 create table tl (columns ......) partitioned by (date <datatype> )
每天都会创建分区,这是我最不想要的。我需要动态创建分区。
1条答案
按热度按时间p1iqtdky1#
caution:- you 需要在create语句中转义date列(在列名周围使用
即倒勾)。因为date是配置单元中的数据类型。 您可以创建分区namically:- by 在查询中设置以下参数。
set hive.exec.dynamic.partition.mode=nonstrict;同时,您只需要从源代码中选择月份部分table:-
insert into table sales partition(date) select columns...,SUBSTR(date,5,2) from source_table这个insert语句将创建类似的分区。 显示分区销售
date=01 date=02 date=03 date=04`