<< Click to Display Table of Contents >> Mpputil导数工具 |
![]() ![]() ![]() |
❖ImportMppTask
需求:导入开始日期和结束日期之间的数据,数据会按照年,月,日进行切分,分别导入,如果某年,月,日的数据已经存在了会删掉再导入。
使用方式:
1.查询:
查询中需要使用参数指定时间范围,该时间范围内的查询结果会存放在对应时间的zb文件中,参数名称必须固定, startDate和endDate(必须大于等于某天且小于另一天)。改程序会吧这些天之间的数据获取到再按照period参数指定的频率切分,分别导入集市,sql中不能单独处理startDate和endDate,比如写成ts < ?{endDate} - 1 或用其它方法去处理这个参数,会导致导入错误数据的问题。
2. 定时任务实现示例:
实现类:com.yonghongtech.custom.task.ImportMppTask
新建一个自定义任务,使用ImportMppTask,收集参数。参数列表为:
参数 |
类型 |
表达意义 |
folder |
String |
云文件夹名称 |
file |
String |
云文件名 |
period |
String |
支持year,month,day,会按照这个参数生成对应的文件名 |
startDate |
String |
开始日期,格式为yyyy-MM-dd |
endDate |
String |
结束日期,格式为yyyy-MM-dd |
threadCount |
Integer |
同时运行的线程数,默认为3。 |
dateLength |
Integer |
从当前日期向前更新的period的时间段的数量 |
folder,file,period是必有项,threadCount可以没有,默认为3。
dateLength若有,则startDate和endDate无效,此时startDate和endDate可以没有,定时任务则根据当前日期向前更新dateLength个period时间段更新。
若没有dateLength,此时startDate和endDate一定要有,定时任务会导入startDate到endDate时间段的数据入集市。
1)没有dataLength
时间周期为month,即每月的数据作为一个zb文件导入集市;会删除之前用本工具导入的该时间段的集市文件;
startDate |
endDate |
period |
|
2015-01-01 |
2017-02-01 |
year |
会导入2015,2016,2017年的集市数据(2015年的集市数据为2015-01-01~2015-12-01,2016年的集市数据为2016-01-01~2016-12-01,2017年的集市数据为2017-01-01~2017-01-31) |
2017-01-01 |
2017-05-01 |
month |
会导入201701,201702,201703,201704的集市数据(201701的集市数据为2017-01-01~2017-01-31,201702的集市数据为2017-02-01~2017-02-28,201703 的集市数据为2017-03-01~2017-03-31, 201704的集市数据为2017-04-01~2017-04-30) |
2015-05-01 |
2015-05-02 |
day |
会导入20170501的数据 |
所有的数据都要以startDate为起点,以period为单位,向后累加,直到endDate为止(但不包括endDate当日数据)。
数据导入后文件为:
2)存在dataLength
系统时间 |
dateLength |
period |
|
2017-06-02 |
3 |
year |
会导入2015,2016,2017年的集市数据(2015年的集市数据为2015-01-01~2015-12-31,2016年的集市数据为2016-01-01~2016-12-31,2017年的集市数据为2017-01-01-2017-06-02) |
3 |
month |
会导入201704,201705,201706年的集市数据(201704的集市数据为2017-04-01~2017-04-30,201705的集市数据为2017-05-01~2017-05-31,201706的集市数据为2017-06-01~2017-06-02) |
|
3 |
day |
会导入20170531,20170601,20170602的数据 |
上图的导出结果为:
➢注意:文件名参数中不能有下划线“_”,会导致程序无法判断时间部分字符串,导致出错。
❖DeleteMppFileTask
删除部分云文件实现示例:
实现类:com.yonghongtech.custom.task.DeleteMppFileTask
参数列表:
参数 |
类型 |
表达意义 |
folder |
String |
云文件夹名称 |
period |
String |
时间跨度,year,month,day |
sDate |
String |
格式yyyy-MM-dd,从这个时间开始删除 |
dateLength |
Int |
从当前时间删除多少个period跨度的数据,sDate和dateLength至少有一个值 |
deleteBeforeSDate |
Boolean |
参数为true时,删除几个period跨度或sDate之前的数据,参数为false或不填时,删除最近几个period或sDate到现在的集市数据。 |
sDate参数:
从2015-12-01删除, 以上面导入后zb文件截图为例执行完后zb文件应为,
dateLength参数:
和使用sDate参数的结果相同。
删除2017-02-01之前的集市数据。
删除3个月前的数据。