本篇日记为手机app码字
前几天发现星环inceptor或hive的一个问题,可能是缺陷吧。
我有一个分区表,分区字段为处理日期(procdate date),因为应用场景是为了增量数据,也定为每天只处理一批数据,这时那个procdate通常取值为当前日期(sysdate,星环支持一些oracle方言/函数),然而当我查询的时候发现一个性能问题现象,如下:
select * from tablename where procdate=trunc(sysdate, ‘dd’)
上面这个查询其实是没有数据的,但是执行时间特别长才返回空结果,通过观察4040界面(spark/inceptor都有),查看该任务详情,会产生几百个task,类似于全表扫描。
select * from tablename where procdate='2020-10-17‘
上面这个查询和前面那个是一样的结果,也是空,但是执行效率非常高,基本上算是瞬间返回,观察4040界面可以发现,只有2个task,并且有skipped的。
具体原因暂时没有仔细研究,先记录在此。
目前的解决方案是,查询条件上的当前日期通过程序或调度工具计算好传给它,而不直接通过数据库函数获取,性能方面得到了许多提升。
工作小记20201017-hive或inceptor相关
最新推荐文章于 2023-04-13 09:16:37 发布