Mpputil导数工具

<< Click to Display Table of Contents >>

当前位置:  系统集成 > 集成部署 

Mpputil导数工具

Previous pageReturn to chapter overviewNext page

ImportMppTask

需求:导入开始日期和结束日期之间的数据,数据会按照年,月,日进行切分,分别导入,如果某年,月,日的数据已经存在了会删掉再导入。

 

使用方式

1.查询:

查询中需要使用参数指定时间范围,该时间范围内的查询结果会存放在对应时间的zb文件中,参数名称必须固定, startDate和endDate(必须大于等于某天且小于另一天)。改程序会吧这些天之间的数据获取到再按照period参数指定的频率切分,分别导入集市,sql中不能单独处理startDate和endDate,比如写成ts < ?{endDate} - 1 或用其它方法去处理这个参数,会导致导入错误数据的问题。

importmpp1

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

importmpp2

时间周期为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当日数据)。

 

数据导入后文件为:

importmpp3

2)存在dataLength

importmpp4

系统时间

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的数据

 

上图的导出结果为:

importmpp5

注意:文件名参数中不能有下划线“_”,会导致程序无法判断时间部分字符串,导致出错

 

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参数:

deletempp1

从2015-12-01删除, 以上面导入后zb文件截图为例执行完后zb文件应为,

deletempp2

dateLength参数:

deletempp3

和使用sDate参数的结果相同。

deletempp4

删除2017-02-01之前的集市数据。

deletempp5

删除3个月前的数据。