如何解决我怎样才能从蜂巢表插入分区表如实木复合地板?
我有配置单元表和分区表。
我插入如下所示的分区表。如果不存在,它是自动创建分区。
我在impala编辑器中运行此查询。
此查询花费的时间太长。
insert into default.dw_partitioned_table
partition (partition_islemtarih_string)
select *,cast(replace(strleft(recorddate,10),'-','')as int) as partition_islemtarih_string
from default.dw_hive_table
where recorddate <to_timestamp('2019-05-01 00:00:00','yyyy-MM-dd HH:mm:ss')
and recorddate>=to_timestamp('2019-01-01 00:00:00','yyyy-MM-dd HH:mm:ss');
我想念东西或做错了吗?
预先感谢
解决方法
您的插入速度很慢,因为impala正在为原始表中的每个日期replace(strleft(recorddate,10),'-','')
创建分区。 Impala为每个分区创建物理文件,这就是为什么它很慢的原因。
如果您有大量的记录,而您真的真的想要在日期上分发数据,那么这样做会花费很长时间。
更好的主意是按记录日期的MM-yyyy进行分区-这将创建均匀分布的分区。查看您的SQL,看来您甚至还可以通过yyyy进行分发。
另外请注意,静态分区速度更快。例如-insert into t partition (part_col='2020') select * from t2 ;
-速度更快,因为impala不必创建动态分区。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。