一种分布式数据导出的方法技术

技术编号:39005548 阅读:13 留言:0更新日期:2023-10-07 10:36
本发明专利技术涉及数据处理技术领域,具体涉及一种分布式数据导出的方法,包括创建任务导出模板;建立数据导出节点与任务调度中心的通信;新增状态为待执行的导出任务;向已建立通信的数据导出节点集群分片广播,数据导出节点查询处于待执行且符合导出要求的导出任务并标记状态为执行中;加载导出任务的业务数据P和任务导出模板;通过任务导出模板和业务数据P进行导出文件渲染,得到表格文件;将表格文件转换为文档文件,标记导出任务的状态为已完成;下载状态为已完成的导出任务的的文档文件。本发明专利技术与业务系统解耦,将大量的计算机IO计算与业务系统分离,能够充分协调不同的计算机来完成海量用户的数据导出任务,提高效率。提高效率。提高效率。

【技术实现步骤摘要】
一种分布式数据导出的方法


[0001]本专利技术涉及数据处理
,具体涉及一种分布式数据导出的方法。

技术介绍

[0002]对于不同企业的用户而言,通常会在一段时间导出业务统计报表,如结算单、订单等数据,以此来辅助进行决策判断。
[0003]一般分布式数据导出常见的方式有:1)对于不同类型的报表,通过定制化编写特定的应用程序来实现;2)数据导出功能与业务系统耦合,其他业务功能受导出功能影响;3)人工复制数据到特定的报表文件中。其中针对不同类型的报表导出中,都需要定制化编写特定的计算机应用程序,无法快速满足不断变化的业务需求,不具备通用性;数据导出功能与业务系统耦合,当用户量增加时,业务系统会承载大量的数据导出IO计算,对业务系统原本的核心业务造成影响;而通过人工数据导出方式,成本高,效率低,不符合当前应用场景。
[0004]因此,本专利技术提供了一种分布式数据导出的方法,以至少解决上述部分技术问题。

技术实现思路

[0005]本专利技术要解决的技术问题是:提供一种分布式数据导出的方法,以至少解决上述部分技术问题。
[0006]为实现上述目的,本专利技术采用的技术方案如下:一种分布式数据导出的方法,包括以下步骤:步骤1、创建不同的任务导出模板;步骤2、启动数据导出节点,建立数据导出节点与任务调度中心的通信;步骤3、开始数据导出,新增状态为待执行的导出任务到任务数据库中;步骤4、向已建立通信的数据导出节点集群分片广播,数据导出节点查询处于待执行且符合导出要求的导出任务并标记状态为执行中;步骤5、加载导出任务的业务数据P和对应的任务导出模板;步骤6、通过任务导出模板和业务数据P进行导出文件渲染,得到表格文件;步骤7、将表格文件转换为文档文件,标记导出任务的状态为已完成;步骤8、下载状态为已完成的导出任务的的文档文件。
[0007]进一步地,所述导出任务包括任务ID、任务模板地址、任务数据来源地址、任务导出数据类型。
[0008]进一步地,所述步骤4包括:步骤41、任务调用中心按照设置的频率向已建立通信的数据导出节点集群分片广播;步骤42、数据导出节点收到广播后,向任务数据库中分批查询状态为待执行且任务ID对当前数据导出节点集群总数取模的值为当前数据导出节点分片号的导出任务,并标记当前导出任务的状态为执行中。
[0009]进一步地,所述步骤5包括:在数据导出节点中,数据导出模块通过导出任务的任务数据来源地址加载业务数据P、通过导出任务的任务模板地址加载对应的任务导出模板。
[0010]进一步地,所述导出文件渲染包括:步骤61、在数据导出节点中,建立一个导出文件,数据渲染模块逐行解析任务导出模板,如果是非函数表达式,则保持原样,如果是函数表达式,则通过函数表达式得到变量名K,从业务数据P中获取变量名K所对应的业务数据V,将函数表达式替换为业务数据V;步骤62、对于动态行列的处理,通过函数表达式得到变量名K1,从业务数据P中获取变量名K1对应的数据集合,遍历数据集合,逐行或逐列追加数据集合中的元素到导出文件中,并保持元素的样式为当前函数表达式所设置的样式,生成一个表格文件。
[0011]进一步地,所述步骤7包括:在数据导出节点中,数据文件类型转换模块根据导出任务中的任务导出数据类型,将表格文件转换成文档文件,并上传至文件存储系统中,标记导出任务的状态为已完成。
[0012]进一步地,在所述步骤8中,通过任务管理页面的数据导出任务列表,下载状态为已完成的导出任务的的文档文件。
[0013]与现有技术相比,本专利技术具有以下有益效果:本专利技术通过独立部署的数据导出节点,与业务系统解耦,将大量的计算机IO计算与业务系统分离,能够充分协调不同的计算机来完成海量用户的数据导出任务;同时当数据导出异常时,不影响原有核心业务系统的流程,提升系统稳定性。本专利技术针对不同类型的数据导出,只需业务人员根据实际需求创建一个任务导出模板,并复用已有的业务数据源即可完成,能快速响应不断变化的业务需求。
附图说明
[0014]图1为本专利技术的方法流程图。
实施方式
[0015]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进一步详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0016]如图1所示,本专利技术提供的一种分布式数据导出的方法,包括以下步骤:步骤1、创建不同的任务导出模板;步骤2、启动数据导出节点,建立数据导出节点与任务调度中心的通信;步骤3、开始数据导出,新增状态为待执行的导出任务到任务数据库中;步骤4、向已建立通信的数据导出节点集群分片广播,数据导出节点查询处于待执行且符合导出要求的导出任务并标记状态为执行中;步骤5、加载导出任务的业务数据P和对应的任务导出模板;步骤6、通过任务导出模板和业务数据P进行导出文件渲染,得到表格文件;步骤7、将表格文件转换为文档文件,标记导出任务的状态为已完成;步骤8、下载状态为已完成的导出任务的的文档文件。
[0017]所述步骤1中,在新增待执行的导出任务 T之前,用户根据实际业务场景创建任务导出模板,上传至文件服务系统并得到任务模板地址。针对同一类业务场景,任务导出模板
是通用的,同一类业务场景的不同导出任务可以使用相同的任务导出模板,只是渲染的业务数据P不同。导出任务 T上有对应的任务导出模板的任务模板地址,以确定每个导出任务所使用的任务导出模板。
[0018]所述步骤2中,启动数据导出节点,然后根据配置建立数据导出节点与任务调度中心的通信,任务调用中心维护包含所有已建立通信数据导出节点的节点列表。
[0019]所述步骤3中,用户点击数据导出,每次开始数据导出时,新增一条状态为待执行的导出任务到任务数据库中,任务数据库包含每次新增的导出任务。创建导出任务时,关联了步骤1中的任务模板地址。所述导出任务包括但不限于任务ID、任务模板地址、任务数据来源地址、任务导出数据类型等任务基本属性。
[0020]所述步骤4中,任务调用中心按照设置的频率(可自定义设置)向已建立通信的数据导出节点集群分片广播;当数据导出节点收到广播后,向任务数据库中分批查询状态为待执行且任务ID对当前数据导出节点集群总数取模的值为当前数据导出节点分片号的导出任务,并标记当前导出任务的状态为执行中。
[0021]所述步骤5中,在数据导出节点中,数据导出模块通过导出任务的任务数据来源地址加载业务数据P、通过导出任务的任务模板地址加载对应的任务导出模板。所述数据来源地址包括业务系统的HTTP地址、Dubbo接口地址等,通过标准HTTP请求或Dubbo泛化调用完成业务数据P的获取;通过导出任务的任务模板地址,从步骤1中文件服务系统里加载对应的任务导出模板。所述任务导出模板是一个包含样式、固定文案和动态变化部分函数表达式F的Excel模板文件,所述函数表达式F包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据导出的方法,其特征在于,包括以下步骤:步骤1、创建不同的任务导出模板;步骤2、启动数据导出节点,建立数据导出节点与任务调度中心的通信;步骤3、开始数据导出,新增状态为待执行的导出任务到任务数据库中;步骤4、向已建立通信的数据导出节点集群分片广播,数据导出节点查询处于待执行且符合导出要求的导出任务并标记状态为执行中;步骤5、加载导出任务的业务数据P和对应的任务导出模板;步骤6、通过任务导出模板和业务数据P进行导出文件渲染,得到表格文件;步骤7、将表格文件转换为文档文件,标记导出任务的状态为已完成;步骤8、下载状态为已完成的导出任务的的文档文件。2.根据权利要求1所述的一种分布式数据导出的方法,其特征在于,所述导出任务包括任务ID、任务模板地址、任务数据来源地址、任务导出数据类型。3.根据权利要求2所述的一种分布式数据导出的方法,其特征在于,所述步骤4包括:步骤41、任务调用中心按照设置的频率向已建立通信的数据导出节点集群分片广播;步骤42、数据导出节点收到广播后,向任务数据库中分批查询状态为待执行且任务ID对当前数据导出节点集群总数取模的值为当前数据导出节点分片号的导出任务,并标记当前导出任务的状态为执行中。4.根据权利要求2所述的一种分布式数据导出的方法,其...

【专利技术属性】
技术研发人员:杨鑫袁海涛张自平
申请(专利权)人:云筑信息科技成都有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1