CN106777180B - 高性能分布式数据转换的方法、装置及*** - Google Patents

高性能分布式数据转换的方法、装置及*** Download PDF

Info

Publication number
CN106777180B
CN106777180B CN201611201562.8A CN201611201562A CN106777180B CN 106777180 B CN106777180 B CN 106777180B CN 201611201562 A CN201611201562 A CN 201611201562A CN 106777180 B CN106777180 B CN 106777180B
Authority
CN
China
Prior art keywords
data
template
task
executed
conversion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611201562.8A
Other languages
English (en)
Other versions
CN106777180A (zh
Inventor
杨博文
赖韬
吴武桓
吴佳林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JD Digital Technology Holdings Co Ltd
Jingdong Technology Holding Co Ltd
Original Assignee
Beijing Jingdong Financial Technology Holding Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Financial Technology Holding Co Ltd filed Critical Beijing Jingdong Financial Technology Holding Co Ltd
Priority to CN201611201562.8A priority Critical patent/CN106777180B/zh
Publication of CN106777180A publication Critical patent/CN106777180A/zh
Application granted granted Critical
Publication of CN106777180B publication Critical patent/CN106777180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种高性能分布式数据转换的方法、装置及***,能够基于时间刻度进行任务调度,并对要执行海量数据的任务进行拆分,提高任务执行效率,提升容错率,且利用高效的文件转换模板,能够保证数据转换的高性能。该方法包括:配置并保存数据转换模板;获取待执行任务,然后根据待执行任务获取所述待执行任务要执行的数据总量;根据所述数据总量将所述待执行任务拆分成若干子任务,然后根据子任务获取子任务数据;利用所述数据转换模板对子任务数据进行转换,得到目标转换数据,然后将所述目标转换数据保存至目标转换文件中。

Description

高性能分布式数据转换的方法、装置及***
技术领域
本发明涉及计算机技术及软件领域,尤其涉及一种高性能分布式数据转换的方法、装置及***。
背景技术
在不同公司间的信息***对接过程中,经常遇到通过文件来交互数据的场景,这就需要将存在于数据库中的数据按照一定的格式生成对应的数据文件。当交互的数据量很大的时候,就需要一种快速、高效、稳定的生成数据文件的功能模块。
现有常见的数据转换,以实现文件生成的方案大致包括如下步骤:
1、利用定时任务在指定的时间点启动生成数据文件的任务;
2、根据任务参数从数据库中查询出相应的数据;
3、将查询到的数据全部加载到内存中,通过模板进行转换;
4、如果任务执行失败,从步骤1重新开始;
5、将生成的数据通过字节流生成数据文件。
但上述方案存在如下不足之处:
1、现有的任务调度:基于Java的Timer、Quartz等,都是基于时间的调度,如果由于异常问题错过了时间点,任务将不会再执行,并且只能执行串行任务;
2、现有的生成文件方案:将所有数据全部加载到内存中,一次性转换成对应的数据格式。但是如果将所有数据一次性加载到内存中,容易导致内存溢出;且大批量数据将会导致任务执行时间过长,只能采用单机生成文件,从而致使转换性能差风险高;另外,任务执行失败后需要重新获取全部数据,不能将大量数据任务拆分成多个子任务,任务重新执行的成本比拆分后的子任务重新执行成本高。
3、现有的文件上传策略:采用覆盖式,即相同文件进行数据覆盖,导致之前上传成功的有效数据部分被重新覆盖,造成数据传输浪费。
4、此外,现有技术中常用的数据转换模板有Freemarker、Velocity、HTTL等,但基于Freemarker、Velocity、HTTL的模板,在转换性能上较差,生成海量数据的数据文件时耗时长,并且语言标签繁琐。
发明内容
有鉴于此,本发明提供一种高性能分布式数据转换的方法、装置及***,能够基于时间刻度进行任务调度,并对要执行海量数据的任务进行拆分,提高任务执行效率,提升容错率,且利用高效的文件转换模板,能够保证数据转换的高性能。
为实现上述目的,根据本发明的一个方面,提供了一种高性能分布式数据转换的方法。
本发明的一种高性能分布式数据转换的方法包括:配置并保存数据转换模板;获取待执行任务,然后根据待执行任务获取所述待执行任务要执行的数据总量;根据所述数据总量将所述待执行任务拆分成若干子任务,然后根据子任务获取子任务数据;利用所述数据转换模板对子任务数据进行转换,得到目标转换数据,然后将所述目标转换数据保存至目标转换文件中。
可选地,配置数据转换模板还包括:配置Beetl模板作为数据转换模板,以便实现高性能的数据转换。
可选地,配置Beetl模板作为数据转换模板还包括:剔除Beetl模板中自带的合法性校验功能;以及对Beetl模板中原生的数据加载和渲染方法进行优化整合,然后对Beetl模板的接口进行二次封装,以进一步提高Beetl模板的数据转换性能。
可选地,获取待执行任务还包括:基于时间刻度的调度策略,获取待执行任务,以保证超过执行时间的任务仍能被获取。
可选地,所述方法还包括:根据子任务获取子任务数据之后,对所述子任务数据进行合法性校验。
可选地,将所述目标转换数据保存至目标转换文件中还包括:采用覆盖、追加、断点续传的其中一种或几种传输方式,将所述目标转换数据传输到目标转换文件中予以保存。
可选地,所述方法还包括:检查子任务执行情况,对执行失败的子任务进行重新执行,若重新执行的次数达到预设次数阈值之后,所述执行失败的子任务仍未被执行成功,则进行预警。
为实现上述目的,根据本发明的另一方面,提供了一种高性能分布式数据转换的装置。
本发明的一种高性能分布式数据转换的装置包括:数据模板模块,用于配置并保存数据转换模板;任务模块,用于获取待执行任务,以及根据待执行任务的数据总量将所述待执行任务拆分成若干子任务;数据获取模块,用于根据待执行任务获取所述待执行任务要执行的数据总量,以及根据子任务获取子任务数据;数据处理模块,用于利用所述数据转换模板对所述数据获取模块获取的子任务数据进行转换,得到目标转换数据,然后将所述目标转换数据保存至目标转换文件中。
可选地,所述数据模板模块还用于:配置Beetl模板作为数据转换模板,以便实现高性能的数据转换。
可选地,所述数据模板模块还用于:剔除Beetl模板中自带的合法性校验功能;以及对Beetl模板中原生的数据加载和渲染方法进行优化整合,然后对Beetl模板的接口进行二次封装,以进一步提高Beetl模板的数据转换性能。
可选地,所述任务模块还用于:基于时间刻度的调度策略,获取待执行任务,以保证超过执行时间的任务仍能被获取。
可选地,所述数据获取模块还用于:根据子任务获取子任务数据之后,对所述子任务数据进行合法性校验。
可选地,所述数据处理模块还用于:采用覆盖、追加、断点续传的其中一种或几种传输方式,将所述目标转换数据传输到目标转换文件中予以保存。
可选地,所述任务模块还用于:检查子任务执行情况,对执行失败的子任务进行重新执行,若重新执行的次数达到预设次数阈值之后,所述执行失败的子任务仍未被执行成功,则进行预警。
为实现上述目的,根据本发明的再一方面,提供了一种高性能分布式数据转换的***。
本发明的一种高性能分布式数据转换的***包括:存储器和处理器,其中,所述存储器用于存储指令;所述处理器被配置为根据所述指令执行本发明的高性能分布式数据转换的方法。
根据本发明的技术方案,通过将大数据量的转换任务拆封成多个子任务,进行分布式、并行执行,从而可以避免因一次性将所有数据加载到内存中而导致的内存溢出;通过基于时间刻度的任务调度策略,只需设定各任务的执行时间,任务模块会扫描获取待执行任务,从而能够保障超过设定的执行时间的任务被及时获取,避免超时不再执行的情况发生;通过对于单个失败的子任务进行重试,且超过重试次数进行报错处理,从而能够提升任务执行的容错率和执行效率;通过采用多种数据传输模式,从而能够保障在任务执行失败后,重新执行时,对之前已上传成功的有效数据不再进行覆盖,避免数据传输的浪费;通过利用Beetl模板配置数据转换模板,且将配置好的Beetl数据转换模板引入数据处理模块,从而可以提升数据转换性能。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的高性能分布式数据转换的方法的主要步骤的示意图;
图2是实现本发明实施例的高性能分布式数据转换的方法的主要框架的示意图;
图3是根据本发明实施例的高性能分布式数据转换的方法的主要流程的示意图;
图4是根据本发明实施例的高性能分布式数据转换的装置的主要模块的示意图;
图5是根据本发明实施例的高性能分布式数据转换的***的主要部分的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例的高性能分布式数据转换的方案,可基于高性能分布式数据转换的装置实现。本发明实施例的高性能分布式数据转换的装置主要包括任务模块、数据模板模块、数据获取模块以及数据处理模块。
其中,在任务模块中,可实现基于时间刻度的任务调度。即事先设定各任务的执行时间,若当前时间大于等于未被执行的任务的执行时间,则进行任务扫描时,对该未被执行的任务一并进行扫描、选择。本发明实施例中,只需设定任务的执行时间,任务模块会以例如但不限于每秒的周期频率扫描任务列表,以获取待执行任务。任务模块还可设计有任务拆分单元,可实现将数据量大的待执行任务拆封成多个子任务,进行分布式执行。此外,还可对于单个执行失败的子任务进行重试。通过定期或不定期的检查子任务,获取子任务的执行情况。若子任务执行失败,则重试,若超过重试次数仍失败,则进行报错处理,以提升容错率和执行效率。
另外,利用高效的数据转换模板,将Beetl模板引入数据处理模块,通过对Beetl参数进行调优,封装相关接口方法,能够使得转换性能较Freemarker、Velocity等模板提升近80%。
此外,对于文件传输,可采用但不限于以下三种传输模式,覆盖、追加、断点续传等。采用断点续传可以只针对传输失败数据,在传输失败的节点继续上传数据,以提升传输效率。
图1是根据本发明实施例的高性能分布式数据转换的方法的主要步骤的示意图。
如图1所示,本发明实施例的高性能分布式数据转换的方法主要包括如下步骤:
步骤S11:配置并保存数据转换模板。本步骤的目的在于根据数据转换需求和数据结构等因素,配置数据转换模块。
步骤S12:获取待执行任务,然后根据待执行任务获取所述待执行任务要执行的数据总量。任务模块通过调度单元扫描并获取待执行任务。然后数据获取模块根据待执行任务信息从数据库中获取待执行任务要执行的数据总量。
在步骤S12获取到待执行任务的数据总量之后,从步骤S13开始进行任务的拆分。
步骤S13:根据所述数据总量将所述待执行任务拆分成若干子任务,然后根据子任务获取子任务数据。如前所述,现有技术中,针对一整个任务的处理过程中,占用内存较大,且是串行执行各海量数据任务。本发明实施例中,根据各执行任务的机器的执行能力,将待执行任务进行拆分。例如可以是平均拆分,也可以按照数据库进行拆分。拆分规则不限于上述两种,只要可以实现本发明的分散任务执行压力,减少服务器内存占用的目的的拆分方案均可。
经过步骤S13的任务拆分后,分布式、并行处理各子任务。
步骤S14:利用所述数据转换模板对子任务数据进行转换,得到目标转换数据,然后将所述目标转换数据保存至目标转换文件中。
本发明实施例中,获取待执行任务时,可基于时间刻度的调度策略,获取待执行任务,以保证超过执行时间的任务仍然能够被获取。
如前所述,现有技术的文件上传大多是覆盖模式,导致之前已上传成功的有效数据部分被重新覆盖,造成数据传输浪费。本发明实施例中,将所述目标转换数据保存至目标转换文件中可采用覆盖、追加、断点续传的其中一种或几种传输方式,将所述目标转换数据传输到目标转换文件中予以保存,从而根据数据传输情况的不同,针对性的选择上传方案,以避免传输的浪费,提高传输效率。
此外,本发明实施例的高性能分布式数据转换的方法还可包括:检查子任务执行情况,对执行失败的子任务进行重新执行,若重新执行的次数达到预设次数阈值之后,所述执行失败的子任务仍未被执行成功,则进行预警,例如可以但不限于向工作人员发送报错邮件、短信等。
另外,由于现有技术中常用的数据转换模板有Freemarker、Velocity、HTTL等,但基于Freemarker、Velocity、HTTL的模板,在转换性能上较差,生成海量数据的数据文件时耗时长,并且语言标签繁琐。本发明实施例中,可配置Beetl模板作为数据转换模板,以便实现高性能的数据转换。
本发明实施例中,不仅将Beetl模块引入了数据转换的过程中,而且还对Beetl模板进行了优化处理,主要包括如下两个方面:一、剔除Beetl模板中自带的合法性校验功能,而是将合法性校验的步骤前置,在根据子任务获取子任务数据之后,对所述子任务数据进行合法性校验。例如数据格式是否合法等校验,以剔除异常数据,在保障数据准确性的前提下提高数据处理模块利用Beetl模板进行数据转换的效率;二、对Beetl模板中原生的数据加载和渲染方法进行优化整合,然后对Beetl模板的接口进行二次封装,以进一步提高Beetl模板的数据转换性能。
图2是实现本发明实施例的高性能分布式数据转换的方法的主要框架的示意图,图3是根据本发明实施例的高性能分布式数据转换的方法的主要流程的示意图。以下结合图2和图3对本发明实施例的高性能分布式数据转换的方法进行详细说明。
如前所述,本发明实施例的高性能分布式数据转换的方法可基于高性能分布式数据转换的装置实现。如图2所示,本发明实施例的高性能分布式数据转换的装置的主要框架包括任务模块、数据模板模块、数据获取模块以及数据处理模块。
任务模块
本发明实施例中,任务模块可包括任务调度单元,可根据数据库中的任务信息,从数据库中查询待执行的任务列表,然后对某一待执行任务进行锁定、执行;任务模块还可包括任务拆分单元,可根据每个机器的吞吐能力将整个待执行任务分解为多个待执行的子任务;此外,任务模块还可包括子任务检查单元,用于检查所有的子任务是否执行完成。
数据获取模块
任务调度开始时,从数据库集群中获取待执行任务的数据总量,此时只是数据总量,而非实际获得所有数据,然后交由任务拆分单元;以及针对任务拆分单元拆分好的每个子任务,获取子任务所需要的数据并进行数据合法性校验,例如,如果数据是数字类型,则数据的格式是否符合数字的格式要求等。然后将数据转换成对应的数据结构,如原始数据分表存储各字段信息,现通过转换,将同一主题的各个信息字段整合到一个数据结构对象中。
例如,数据库中包括三张表,student(学生信息表)、score(成绩表)、timeTable(选课表)。假设根据需求,需要得到以学生选课成绩为主题的数据,就可以定义一个学生成绩的数据结构,里面有学号、课程、成绩三项。此时,就需要从学生表获取学号,然后根据学号从选课表里面获取该学生的选课记录,再根据选课的记录去成绩表获取成绩。如此,就可完成根据学生成绩这个主题,将多个数据表中的信息整合到一个对象中。
Beetl数据模板模块
如前所述,本发明实施例中,数据转换模板可以基于Beetl模板进行配置,配置好的数据转换模块形成模板集合。一般而言,数据转换模板可分为文件头模板、数据详情模板、文件尾模板,每一部分所需要的数据结构不同,所以它们的模板就有差异。
仍以学生成绩数据为例,如果需要获取某班学生的成绩记录,则数据结构可以由文件头部(head)部分的学生成绩总数、详细数据(detail)部分的学生具体数据以及尾部(tail)平均成绩这三部分构成。则数据转换模板就需包括文件头模板、数据详情模板、文件尾模板三块。但这三种数据结构的分类是通常情况,即需要配置三个部分的模板,但在实际数据转换过程中,可能根据数据转换需求只需配置一块模板,而非全部,则就可以只配置一种模板。其中,文件头模板包含固定信息和配置信息;数据详情模板包含传输的数据具体内容;文件尾模板包含数据总量以及固定尾部信息等。分别在模板中编写对应的数据结构,指明指需要转换成的目标转换文件的数据结构,为数据处理做准备。
数据处理模块
将数据获取模块获取的数据先转换成模板中定义的数据结构,然后由模板引擎将数据转换模板转换成类class运行,并将数据转换模板中的静态部分采用二进制,一起合并输出、渲染,获取对应的输出结果。Beetl模板中本身自带数据校验功能,但为了提升数据转换的效率,将数据检查功能前置,在数据获取模块对获取的原始数据进行提前校验,以提升Beetl模板的数据转换性能。
例如:根据某任务获取的是学生详情数据信息,则会根据数据找到对应的数据详情模板,将数据和数据详情模板填充、融合、渲染转换成需要的数据。
文件存储模块
本发明实施例中,还可包括文件存储模块。用于将数据处理结果转换成Byte数组,用字节输出流的方式在远程文件存储模块中生成相应文件,即目标转换文件。
具体各模块之间交互,实现高性能分布式数据转换的主要流程如下:
1、根据任务配置,在指定的时间点执行任务,根据任务的配置信息从数据库中获取数据符合要求的数据总量;
2、由任务拆分单元针对返回的数据总量和配置的拆分规则(例如可以但不限于按数据库拆分、按平均量均分等)进行任务拆分,生成拆分后的子任务;
3、调度执行生成的子任务,从数据库中按照子任务的数据查询条件,获取执行的子任务数据;
4、针对子任务获取的任务数据,寻找对应的数据转换模板;
5、根据模板配置和数据信息,转换生成所需要的转换数据;
6、将生成的转换数据转换成字节流,根据配置的传输模式,上传到远程文件存储模块中。其中,生成目标转换文件时,需要针对每个子任务转换所得的目标转换数据进行拼接追加,然后保存到目标转换文件中;
7、子任务调度失败后,重新执行子任务(从流程3重新开始);
8、通过子任务检查单元,检查子任务是否都执行完成,执行完成则通知***目标转换文件已经生成;如果子任务检查失败,则在重试若干次仍失败后,将失败的任务信息进行预警报错处理。具体流程可参阅图3。
根据本发明实施例的高性能分布式数据转换的方法可以看出,通过将包含海量数据的转换任务拆封成多个子任务,进行分布式、并行执行,从而可以避免因一次性将所有数据加载到内存中而导致的内存溢出;通过基于时间刻度的任务调度策略,只需设定各任务的执行时间,任务模块会扫描获取待执行任务,从而能够保障超过设定的执行时间的任务被及时获取,避免超时不再执行的情况发生;通过对于单个失败的子任务进行重试,且超过重试次数进行报错处理,从而能够提升任务执行的容错率和执行效率;通过采用多种数据传输模式,从而能够保障在任务执行失败后,重新执行时,对之前已上传成功的有效数据不再进行覆盖,避免数据传输的浪费;通过利用Beetl模板配置数据转换模板,且将配置好的Beetl数据转换模板引入数据处理模块,从而可以提升数据转换性能。
图4是根据本发明实施例的高性能分布式数据转换的装置的主要模块的示意图。
如图4所示,本发明实施例的一种高性能分布式数据转换的装置包括:数据模板模块401、任务模块402、数据获取模块403以及数据处理模块404,其中,
数据模板模块401用于配置并保存数据转换模板;任务模块402用于获取待执行任务,以及根据待执行任务的数据总量将所述待执行任务拆分成若干子任务;数据获取模块403用于根据待执行任务获取所述待执行任务要执行的数据总量,以及根据子任务获取子任务数据;数据处理模块404用于利用所述数据转换模对将所述数据获取模块获取的子任务数据进行转换,得到目标转换数据,然后将所述目标转换数据保存至目标转换文件中。
其中,数据模板模块401还可用于:配置Beetl模板作为数据转换模板,以便实现高性能的数据转换。另外,数据模板模块401还可用于进一步对Beetl模板进行优化处理,包括:剔除Beetl模板中自带的合法性校验功能;以及对Beetl模板中原生的数据加载和渲染方法进行优化整合,然后对Beetl模板的接口进行二次封装,以进一步提高Beetl模板的数据转换性能。
任务模块402还可用于:基于时间刻度的调度策略,获取待执行任务,以保证超过执行时间的任务仍然能够被获取。
此外,数据获取模块403还可用于:根据子任务获取子任务数据之后,对所述子任务数据进行合法性校验。
数据处理模块404还可用于:采用覆盖、追加、断点续传的其中一种或几种传输方式,将所述目标转换数据传输到目标转换文件中予以保存。
本发明实施例中,任务模块402还可用于:检查子任务执行情况,对执行失败的子任务进行重新执行,若重新执行的次数达到预设次数阈值之后,所述执行失败的子任务仍未被执行成功,则进行预警。
图5是根据本发明实施例的高性能分布式数据转换的***的主要部分的示意图。
如图5所示,本发明实施例的高性能分布式数据转换的***主要包括:存储器501和处理器502,其中,
存储器501用于存储指令;处理器502被配置为根据所述指令执行本发明实施例的高性能分布式数据转换的方法。
从以上描述可以看出,通过将大数据量的转换任务拆封成多个子任务,进行分布式、并行执行,从而可以避免因一次性将所有数据加载到内存中而导致的内存溢出;通过基于时间刻度的任务调度策略,只需设定各任务的执行时间,任务模块会扫描获取待执行任务,从而能够保障超过设定的执行时间的任务被及时获取,避免超时不再执行的情况发生;通过对于单个失败的子任务进行重试,且超过重试次数进行报错处理,从而能够提升任务执行的容错率和执行效率;通过采用多种数据传输模式,从而能够保障在任务执行失败后,重新执行时,对之前已上传成功的有效数据不再进行覆盖,避免数据传输的浪费;通过利用Beetl模板配置数据转换模板,且将配置好的Beetl数据转换模板引入数据处理模块,从而可以提升数据转换性能。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (11)

1.一种高性能分布式数据转换的方法,其特征在于,包括:
配置Beetl模板作为数据转换模板,并保存所述数据转换模板;其中,所述配置Beetl模板作为数据转换模板包括:剔除Beetl模板中自带的合法性校验功能;获取待执行任务,然后根据待执行任务获取所述待执行任务要执行的数据总量;
根据所述数据总量将所述待执行任务拆分成若干子任务,然后根据子任务获取子任务数据;对所述子任务数据进行合法性校验;
利用所述数据转换模板对子任务数据进行转换,得到目标转换数据,然后将所述目标转换数据保存至目标转换文件中。
2.根据权利要求1所述的方法,其特征在于,配置Beetl模板作为数据转换模板还包括:
对Beetl模板中原生的数据加载和渲染方法进行优化整合,然后对Beetl模板的接口进行二次封装,以进一步提高Beetl模板的数据转换性能。
3.根据权利要求1所述的方法,其特征在于,获取待执行任务还包括:基于时间刻度的调度策略,获取待执行任务,以保证超过执行时间的任务仍能被获取。
4.根据权利要求1所述的方法,其特征在于,将所述目标转换数据保存至目标转换文件中还包括:采用覆盖、追加、断点续传的其中一种或几种传输方式,将所述目标转换数据传输到目标转换文件中予以保存。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:检查子任务执行情况,对执行失败的子任务进行重新执行,若重新执行的次数达到预设次数阈值之后,所述执行失败的子任务仍未被执行成功,则进行预警。
6.一种高性能分布式数据转换的装置,其特征在于,包括:
数据模板模块,用于配置Beetl模板作为数据转换模板,并保存所述数据转换模板;其中,所述数据模板模块配置Beetl模板作为数据转换模板包括:剔除Beetl模板中自带的合法性校验功能;
任务模块,用于获取待执行任务,以及根据待执行任务的数据总量将所述待执行任务拆分成若干子任务;
数据获取模块,用于根据待执行任务获取所述待执行任务要执行的数据总量,以及根据子任务获取子任务数据;所述数据获取模块还用于对所述子任务数据进行合法性校验;
数据处理模块,用于利用所述数据转换模板对所述数据获取模块获取的子任务数据进行转换,得到目标转换数据,然后将所述目标转换数据保存至目标转换文件中。
7.根据权利要求6所述的装置,其特征在于,所述数据模板模块还用于:
对Beetl模板中原生的数据加载和渲染方法进行优化整合,然后对Beetl模板的接口进行二次封装,以进一步提高Beetl模板的数据转换性能。
8.根据权利要求6所述的装置,其特征在于,所述任务模块还用于:基于时间刻度的调度策略,获取待执行任务,以保证超过执行时间的任务仍能被获取。
9.根据权利要求6所述的装置,其特征在于,所述数据处理模块还用于:采用覆盖、追加、断点续传的其中一种或几种传输方式,将所述目标转换数据传输到目标转换文件中予以保存。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述任务模块还用于:检查子任务执行情况,对执行失败的子任务进行重新执行,若重新执行的次数达到预设次数阈值之后,所述执行失败的子任务仍未被执行成功,则进行预警。
11.一种高性能分布式数据转换的***,其特征在于,包括:存储器和处理器,其中,
所述存储器用于存储指令;
所述处理器被配置为根据所述指令执行如权利要求1-5中任一项所述的高性能分布式数据转换的方法。
CN201611201562.8A 2016-12-22 2016-12-22 高性能分布式数据转换的方法、装置及*** Active CN106777180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611201562.8A CN106777180B (zh) 2016-12-22 2016-12-22 高性能分布式数据转换的方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611201562.8A CN106777180B (zh) 2016-12-22 2016-12-22 高性能分布式数据转换的方法、装置及***

Publications (2)

Publication Number Publication Date
CN106777180A CN106777180A (zh) 2017-05-31
CN106777180B true CN106777180B (zh) 2020-09-01

Family

ID=58899712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611201562.8A Active CN106777180B (zh) 2016-12-22 2016-12-22 高性能分布式数据转换的方法、装置及***

Country Status (1)

Country Link
CN (1) CN106777180B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109116828B (zh) * 2017-06-22 2023-03-17 中兴通讯股份有限公司 一种控制器中模型代码配置方法和装置
CN107908425B (zh) * 2017-11-16 2020-11-03 中国银行股份有限公司 一种配置化文件的生成方法及***
CN108172299B (zh) * 2017-12-25 2021-04-27 华中科技大学同济医学院附属协和医院 一种医疗数据远端计算***及方法
CN108415766B (zh) * 2018-03-06 2022-01-28 洛阳理工学院 一种渲染任务动态调度方法
CN109597795B (zh) * 2018-12-06 2020-10-16 南京天辰礼达电子科技有限公司 一种路基压实施工数据高效处理***
CN111026541B (zh) * 2019-05-22 2020-09-29 珠海随变科技有限公司 渲染资源调度方法、装置、设备及存储介质
CN110781137A (zh) * 2019-10-28 2020-02-11 柏科数据技术(深圳)股份有限公司 分布式***的目录读取方法、装置、服务器和存储介质
CN110781159B (zh) * 2019-10-28 2021-02-02 柏科数据技术(深圳)股份有限公司 Ceph目录文件信息读取方法、装置、服务器及存储介质
CN111538490A (zh) * 2020-04-15 2020-08-14 北京宝兰德软件股份有限公司 一种基于FreeMarker的数据融合方法及装置
CN113110935A (zh) * 2021-04-13 2021-07-13 中国邮政储蓄银行股份有限公司 分布式批量作业处理***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105793A (zh) * 2006-07-11 2008-01-16 阿里巴巴公司 数据仓库中的数据处理方法及***
CN103955510A (zh) * 2014-04-30 2014-07-30 广西电网公司电力科学研究院 基于etl云平台上传的海量电力营销数据整合方法
CN105095327A (zh) * 2014-05-23 2015-11-25 深圳市珍爱网信息技术有限公司 一种分布式etl***及调度方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582064B (zh) * 2008-05-15 2011-12-21 阿里巴巴集团控股有限公司 一种大数据量数据处理方法及***
CN104239148B (zh) * 2013-06-06 2018-05-18 腾讯科技(深圳)有限公司 一种分布式任务调度方法及装置
CN103577611A (zh) * 2013-11-25 2014-02-12 方正国际软件有限公司 数据统一装置和数据统一方法
CN104462243B (zh) * 2014-11-19 2018-09-07 上海烟草集团有限责任公司 一种结合数据校验的etl调度***及方法
CN104933202A (zh) * 2015-07-15 2015-09-23 北京京东尚科信息技术有限公司 一种数据抽取、转换、加载etl的方法和设备
CN106055670A (zh) * 2016-06-06 2016-10-26 中国工商银行股份有限公司 一种***间数据迁移方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105793A (zh) * 2006-07-11 2008-01-16 阿里巴巴公司 数据仓库中的数据处理方法及***
CN103955510A (zh) * 2014-04-30 2014-07-30 广西电网公司电力科学研究院 基于etl云平台上传的海量电力营销数据整合方法
CN105095327A (zh) * 2014-05-23 2015-11-25 深圳市珍爱网信息技术有限公司 一种分布式etl***及调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
新一代Java模板引擎典范Beetl;闲大赋;《OSCHINA:http://www.oschina.net/p/beetl?p=2》;20120305;第1-4页 *

Also Published As

Publication number Publication date
CN106777180A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106777180B (zh) 高性能分布式数据转换的方法、装置及***
CN107105009B (zh) 基于Kubernetes***对接工作流引擎的作业调度方法和装置
EP2998863B1 (en) Converting a serial transaction schedule to a parallel transaction schedule
CN109086199B (zh) 一种自动化生成测试脚本的方法、终端和可存储介质
CN107368503B (zh) 基于Kettle的数据同步方法和***
CN110781231B (zh) 基于数据库的批量导入方法、装置、设备及存储介质
US20150082320A1 (en) Apparatus, method, and computer-readable recording medium for processing data
US20150066977A1 (en) Method and system for managing digital resources
US20160291564A1 (en) Programmable logic controller, data collection apparatus, database access method, and database access program
CN112035405B (zh) 一种文档转码方法、装置、调度服务器和存储介质
US20150169379A1 (en) Information processing method, information processing device, and recording medium
CN107463487B (zh) 一种分布式主机性能采集***及性能采集方法
CN112688802A (zh) 一种基于api网关的高效能交换中间件
CN115495527A (zh) 一种数据同步管理***和方法
CN113392085A (zh) 一种分布式文件批量处理方法及平台
US11442758B2 (en) Integration flow execution renew
CN112131180B (zh) 数据上报方法、装置以及存储介质
CN111401819B (zh) ***间数据推送方法及***
JP2015182228A (ja) 画像処理装置及び画像形成装置、画像処理プログラム
CN112422682A (zh) 数据发送方法及装置、存储介质、电子装置
JPWO2018061219A1 (ja) ジョブスケジューリングシステム、ジョブスケジューリング方法、およびジョブスケジューリング装置
CN112053150A (zh) 一种数据处理方法、装置及存储介质
CN111241191A (zh) 一种数据库的同步方法及装置
US9613051B2 (en) Data processing method, information processing apparatus, and recording medium
CN111104390A (zh) 一种多csv文件的合并和校验的方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 101111 room 221, floor 2, block C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Tongzhou District, Beijing

Patentee after: Jingdong Technology Holding Co.,Ltd.

Address before: 101111 room 221, floor 2, block C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Tongzhou District, Beijing

Patentee before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: 101111 room 221, floor 2, block C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Tongzhou District, Beijing

Patentee after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: 101111 room 221, floor 2, block C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Tongzhou District, Beijing

Patentee before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address after: 101111 room 221, floor 2, block C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Tongzhou District, Beijing

Patentee after: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address before: 101111 room 221, floor 2, block C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Tongzhou District, Beijing

Patentee before: BEIJING JINGDONG FINANCIAL TECHNOLOGY HOLDING Co.,Ltd.

CP01 Change in the name or title of a patent holder