掌桥专利:专业的专利平台
掌桥专利
首页

一种资源导出方法和装置

文献发布时间:2023-06-19 12:24:27


一种资源导出方法和装置

技术领域

本发明涉及计算机技术领域,尤其涉及一种资源导出方法和装置。

背景技术

随着智慧医院的建立以及众多医院的加盟入驻,企业互联网医疗体系已成规模。随着企业的递增,订单导出需求也随着变得多样化,导出数据量也逐渐增多。因此创建一个可适应业务发展的订单导出系统将非常有必要,目前通常使用任务脚本来创建。

在实现本发明的过程中,发明人发现现有技术至少存在如下问题:

1、查询到的订单会经过内存,如果订单量较大,将会严重消耗系统内存资源,影响系统服务性能,严重时无法在规定时间内返回结果。

2、订单数据均存储在业务数据库中,因此直接访问业务数据库可能会造成一定的风险,如果产生慢查询,会暂用数据库连接资源,给业务数据库访问带来压力,严重时将影响业务流程,使系统不能提供正常服务。

发明内容

有鉴于此,本发明实施例提供一种资源导出方法和装置,至少能够解决现有技术不适用于大批量订单导出情况,直接访问业务数据库存在风险的现象。

为实现上述目的,根据本发明实施例的一个方面,提供了一种资源导出方法,包括:

查询符合资源搜索条件的资源标识,统计所述资源标识的数量,判断所述数量是否大于或等于预设数量阈值;

若大于或等于,则确定本次导出的资源量属于第一类,采用批量并发策略,从导出数据库中获取与各资源标识对应的资源详情;或

若小于,则确定本次导出的资源量属于第二类,采用串行策略,从导出数据库中获取与各资源标识对应的资源详情。

可选的,在所述查询符合资源搜索条件的资源标识之前,还包括:

响应于用户对资源导出的选择操作,显示导出维度配置信息,以基于用户选择/输入的配置信息,生成资源搜索条件。

可选的,所述显示导出维度配置信息,包括:

显示业务域,基于用户选择的一个业务域,显示与所述一个业务域对应的导出维度配置信息;其中,所述导出维度配置信息包括数据过滤策略、数据排序策略、数据聚合策略中的至少一种。

可选的,所述导出维度配置信息包含数据格式化策略,所述数据格式化策略包括时间格式化策略和非时间格式化策略;

在所述从导出数据库中获取与各资源标识对应的资源详情之后,还包括:

对于任一资源详情,按照所述时间格式化策略处理时间信息,得到时间字段;按照所述非时间格式化策略对其他信息进行脱敏处理,得到报表字段;

将所述时间字段和所述报表字段一同写入报表文件,导出所述报表文件。

可选的,所述导出维度配置信息还包括文件类型;

所述将所述时间字段和所述报表字段一同写入报表文件,还包括:利用所述文件类型对所述报表文件进行转换。

可选的,所述导出所述报表文件,包括:针对所述报表文件生成一个报表导出任务,以在将所述报表文件上传到文件云服务后,将所述报表导出任务的状态更改为完成;其中,所述文件云服务通过使用用户预设的秘钥认证得到。

可选的,在所述从导出数据库中获取与各资源标识对应的资源详情之前,还包括:

通过监听消息的方式,将业务数据库中的实时资源详情,同步到所述导出数据库中进行资源详情更新。

为实现上述目的,根据本发明实施例的另一方面,提供了一种资源导出装置,包括:

资源查询模块,用于查询符合资源搜索条件的资源标识,统计所述资源标识的数量,判断所述数量是否大于或等于预设数量阈值;

批量处理模块,用于若大于或等于,则确定本次导出的资源量属于第一类,采用批量并发策略,从导出数据库中获取与各资源标识对应的资源详情;或

串行处理模块,用于若小于,则确定本次导出的资源量属于第二类,采用串行策略,从导出数据库中获取与各资源标识对应的资源详情。

可选的,还包括生成条件模块,用于:响应于用户对资源导出的选择操作,显示导出维度配置信息,以基于用户选择/输入的配置信息,生成资源搜索条件。

可选的,所述生成条件模块,用于:显示业务域,基于用户选择的一个业务域,显示与所述一个业务域对应的导出维度配置信息;其中,所述导出维度配置信息包括数据过滤策略、数据排序策略、数据聚合策略中的至少一种。

可选的,所述导出维度配置信息包含数据格式化策略,所述数据格式化策略包括时间格式化策略和非时间格式化策略;

还包括文件导出模块,用于:对于任一资源详情,按照所述时间格式化策略处理时间信息,得到时间字段;按照所述非时间格式化策略对其他信息进行脱敏处理,得到报表字段;将所述时间字段和所述报表字段一同写入报表文件,导出所述报表文件。

可选的,所述导出维度配置信息还包括文件类型;

所述文件导出模块,还用于:利用所述文件类型对所述报表文件进行转换。

可选的,所述文件导出模块,用于:针对所述报表文件生成一个报表导出任务,以在将所述报表文件上传到文件云服务后,将所述报表导出任务的状态更改为完成;其中,所述文件云服务通过使用用户预设的秘钥认证得到。

可选的,还包括资源同步模块,用于:通过监听消息的方式,将业务数据库中的实时资源详情,同步到所述导出数据库中进行资源详情更新。

为实现上述目的,根据本发明实施例的再一方面,提供了一种资源导出电子设备。

本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的资源导出方法。

为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的资源导出方法。

根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:将资源搜索和配置导出参数,作为任务提交到现有系统,由系统异步进行资源导出处理,区分大资源量和小资源量,以通过批量并发或串行的方式获取相应资源详情;在业务数据库基础上建立导出数据库,导出资源优选导出数据库,且资源导出无需经过内存,而是将结果上传到文件服务器上供用户下载使用。整体支持百万级资源的导出需求,大幅度提升了导出速度,有效提高了资源导出的性能和稳定性。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的一种资源导出方法的主要流程示意图;

图2是根据本发明实施例的一种可选的资源导出方法的流程示意图;

图3是本方案整体实施流程图;

图4是根据本发明实施例的一种资源导出装置的主要模块示意图;

图5是本发明实施例可以应用于其中的示例性系统架构图;

图6是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

需要说明的是,本方案除了适用于订单导出场景外,还可以适用于其他资源的导出需求,如任务导出、用户名单导出等。以订单为例,由于医院的支付体系目前是ToB面向企业业务,主要需求仍来自于医院,如导出对账、核对,因此此处的订单主要针对医院业务体系中的挂号订单、购药订单、门诊缴费订单等。

参见图1,示出的是本发明实施例提供的一种资源导出方法的主要流程图,包括如下步骤:

S101:查询符合资源搜索条件的资源标识,统计所述资源标识的数量,判断所述数量是否大于或等于预设数量阈值;

S102:若大于或等于,则确定本次导出的资源量属于第一类,采用批量并发策略;

S103:若小于,则确定本次导出的资源量属于第二类,采用串行策略;

S104:从导出数据库中获取与各资源标识对应的资源详情。

上述实施方式中,对于步骤S101~S103,服务端程序预先设置可点击的资源导出界面,用户可以点击界面中的“资源导出”选项,弹出可操作的导出维度配置信息,包括:

1)数据过滤策略,可选择项,为一个或多个搜索条件的合集,以从全量数据中获取所需的部分数据,用于后续分析和统计。例如,用户请求获取特定医生群体、特定科室在某一时间段内的问诊订单,此时则由医生标识、科室标识、问诊开始时间和问诊结束时间共同组成数据过滤策略。

2)数据排序策略,同样为可选项。通常获取到的数据会有很多列,而每一列的排序优先级可以自定义,例如按照下单年月日倒叙排列,若时间相同则按姓名倒叙排列,如此可以导出直观的数据,用于后续分析和使用。

3)数据格式化策略,同样为可选项,为获取所需数据的一种策略,包括对时间的时间格式化策略和对其他信息的非时间格式化策略。非时间格式化策略一般为脱敏处理,但对于时间则需根据预设时间模板进行格式化处理,如yyyy-MM-dd、hh:mm:ss、年-月-日、时:分:秒。

4)按照各自企业现有的业务形态,拆分为具有特色的业务域,如订单域、商品域等进行维度聚合。

5)数据聚合策略,同样为可选项,可以针对业务的个性化组合需求进行灵活配置。例如,#{param1}医生、接诊#{param2}名患者,param1、param2是不同的数据列,但导出的内容却是一个综合性内容。

6)设置数据表头,即导出文件最上面的、用于对数据列进行解释说明的行;

7)设置文件类型,优选csv、excel;

以上信息均位于导出维度配置信息中,针对不同业务域设置有不同的导出维度配置信息,因而用户在点击“资源导出”选项后,首先弹出业务域界面,只有在用户选择界面中的一个业务域后,才会显示与该业务域对应的导出维度配置信息。

另外,不同配置信息所使用的阶段不同,如1)、2)和5)主要用于资源详情的获取,3)主要用于对资源详情的处理,在生成报表文件后,再通过7)进行格式转换,可参见后续图2所示描述。

在用户根据不同的维度选择不同的策略模式进行配置后,点击生成搜索条件选项,服务端程序即可根据用户选择的配置条件生成资源搜索条件,通常为SQL语句。

查询符合资源搜索条件的资源标识,统计资源标识的数量,判断该数量是否大于或等于预设数量阈值(如1000),若大于或等于,则表示导出的是第一类资源量(即大资源量),采用批量并发策略,从导出数据库中批量并发获取资源详情,批次=数量/每批次的预设数量;否则为第二类资源量(即小量资源量),采用串行策略获取。

需要说明的是,除了数据量外,还可以采用服务端程序设计的其他扩展性配置进行,与提供给用户或业务使用的导出维度配置信息无关,主要是批量导出并发度的配置。另外,目前同时由多个实例(机器)处理资源导出服务,每台机器均开启多个线程,可同时处理多个资源的导出。

现有运营查询条件不可控,因而对于查询索引的利用不充分,导致出现慢查询情况;且一个系统与数据库之间的链接数通常固定,响应时间过长会导致部分资源长时间得不到释放,给业务数据库的访问带来压力。虽然运营端需求可以接受一定范围内的长时间等待,但当导出资源量过大时,可能会冲击线上系统。

针对上述问题,现有业务数据库主要采用Mysql,本方案在Mysql基础上设计有导出数据库ES,以通过监听消息方式(binlog-->生成消息-->发送消息-->监听消息-->消费消息-->写入ES),将Mysql中的实时资源详情同步到ES内,以此减少资源导出对前台业务流程的影响,避免大量资源导出任务产生的慢查询问题,同时尽可能少占用数据库连接资源,降低对业务数据库造成的影响。且ES具有天然的弹性和容量扩展性,即使需要导出的总资源量有大幅度的增长,其导出的速度和稳定性也不受影响,因此本方案优选使用批量并发方式从ES中获取资源详情。

其中,分析MySQL语句查询性能的方法除了使用EXPLAIN输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,通常将超过指定时间的SQL语句查询称为“慢查询”。

上述实施例所提供的方法,区分大资源量和小资源量,以通过批量并发或串行的方式获取相应资源详情;在业务数据库基础上建立导出数据库,导出资源优选导出数据库,以此无需访问业务数据库,有效提高了资源导出的性能和稳定性。

参见图2,示出了根据本发明实施例的一种可选的资源导出方法流程示意图,包括如下步骤:

S201:响应于用户对资源导出的选择操作,显示导出维度配置信息,以基于用户选择/输入的配置信息,生成资源搜索条件;

S202:查询符合资源搜索条件的资源标识,统计所述资源标识的数量,判断所述数量是否大于或等于预设数量阈值;

S203:若大于或等于,则确定本次导出的资源量属于第一类,采用批量并发策略;

S204:若小于,则确定本次导出的资源量属于第二类,采用串行策略;其中,资源详情包括时间信息和除时间信息外的其他信息;

S205:从导出数据库中获取与各资源标识对应的资源详情;

S206:对于任一资源详情,按照时间格式化策略处理时间信息,得到时间字段;按照非时间格式化策略对其他信息进行脱敏处理,得到报表字段;

S207:将所述时间字段和所述报表字段一同写入报表文件;

S208:针对所述报表文件生成一个报表导出任务,以在将所述报表文件上传到文件云服务后,将所述报表导出任务的状态更改为完成;其中,所述文件云服务通过使用用户预设的秘钥认证得到。

上述实施方式中,对于步骤S201~S205可参见图1所示步骤S101~S103的描述,在此不再赘述。

上述实施方式中,对于步骤S206~S208,在获取到资源详情后,通常会对其进行格式化处理,以生成报表字段,批量写入报表文件中。一般是选择性脱敏处理,如留头、留尾、中间保留4个*,但对于时间信息,则需根据预设时间模板进行数据格式化处理,如yyyy-MM-dd、hh:mm:ss、年-月-日、时:分:秒。对资源详情中的时间信息采用的预设时间模板和对其他信息采用的脱敏方式,均位于数据格式化策略中。

针对报表文件生成报表导出任务,为一个任务状态记录,用于展示任务进度,以在将报表文件以数据流形式上传到企业文件云服务上后,将状态更改为完成。该操作由服务端程序自主完成,其和企业之间通过预设秘钥认证,无需用户登陆,企业内的用户可以根据报表导出任务状态得知传输进度,进而进行文件导出操作。

上述实施例所提供的方法,将资源搜索和配置导出参数,作为任务提交到现有系统,由系统异步进行资源导出处理,最终将结果上传到文件服务器上供用户下载使用,整体支持百万级资源的导出需求,大幅度提升了导出速度,同时解决了现有资源导出需经过内存,导致系统内存消耗过大的问题。

参见图3,示出了本方案的整体实施流程,包括以下步骤:

1、用户点击界面中的“资源导出”选项,显示业务域信息,用户可以选择其中一个业务域;

2、显示与该一个业务域对应的导出维度配置信息,用户可对其进行编辑、输入、选择,以生成资源搜索条件;

3、查询与资源搜索条件对应的资源标识,统计这些资源标识的数量,判断该数量是否超限;

4、若超限,则采用批量并发策略,否则采用串行策略,从导出数据库中获取与各资源标识对应的资源详情;

5、对各资源详情,区分时间信息和非时间信息分别进行格式化处理,得到时间字段和报表字段,一同写入报表文件;

6、创建报表导出任务,以在将报表文件上传至文件云服务后,将任务状态更改为已完成,用户可以通过文件云服务下载资源。

参见图4,示出了本发明实施例提供的一种资源导出装置400的主要模块示意图,包括:

资源查询模块401,用于查询符合资源搜索条件的资源标识,统计所述资源标识的数量,判断所述数量是否大于或等于预设数量阈值;

批量处理模块402,用于若大于或等于,则确定本次导出的资源量属于第一类,采用批量并发策略,从导出数据库中获取与各资源标识对应的资源详情;或

串行处理模块403,用于若小于,则确定本次导出的资源量属于第二类,采用串行策略,从导出数据库中获取与各资源标识对应的资源详情。

本发明实施装置还包括生成条件模块,用于:响应于用户对资源导出的选择操作,显示导出维度配置信息,以基于用户选择/输入的配置信息,生成资源搜索条件。

本发明实施装置中,所述生成条件模块,用于:显示业务域,基于用户选择的一个业务域,显示与所述一个业务域对应的导出维度配置信息;其中,所述导出维度配置信息包括数据过滤策略、数据排序策略、数据聚合策略中的至少一种。

本发明实施装置中,所述导出维度配置信息包含数据格式化策略,所述数据格式化策略包括时间格式化策略和非时间格式化策略;

还包括文件导出模块,用于:对于任一资源详情,按照所述时间格式化策略处理时间信息,得到时间字段;按照所述非时间格式化策略对其他信息进行脱敏处理,得到报表字段;将所述时间字段和所述报表字段一同写入报表文件,导出所述报表文件。

本发明实施装置中,所述导出维度配置信息还包括文件类型;

所述文件导出模块,还用于:利用所述文件类型对所述报表文件进行转换。

本发明实施装置中,所述文件导出模块,用于:针对所述报表文件生成一个报表导出任务,以在将所述报表文件上传到文件云服务后,将所述报表导出任务的状态更改为完成;其中,所述文件云服务通过使用用户预设的秘钥认证得到。

本发明实施装置还包括资源同步模块,用于:通过监听消息的方式,将业务数据库中的实时资源详情,同步到所述导出数据库中进行资源详情更新。

另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。

图5示出了可以应用本发明实施例的示例性系统架构500,包括终端设备501、502、503,网络504和服务器505(仅仅是示例)。

终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,安装有各种通讯客户端应用,用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。

网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

服务器505可以是提供各种服务的服务器,用于执行配置搜索条件、查询资源详情、生成报表文件并上传操作。

需要说明的是,本发明实施例所提供的方法一般由服务器505执行,相应地,装置一般设置于服务器505中。

应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括资源查询模块、批量处理模块、串行处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,串行处理模块还可以被描述为“小量资源处理模板”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:

查询符合资源搜索条件的资源标识,统计所述资源标识的数量,判断所述数量是否大于或等于预设数量阈值;

若大于或等于,则确定本次导出的资源量属于第一类,采用批量并发策略,从导出数据库中获取与各资源标识对应的资源详情;或

若小于,则确定本次导出的资源量属于第二类,采用串行策略,从导出数据库中获取与各资源标识对应的资源详情。

根据本发明实施例的技术方案,将资源搜索和配置导出参数,作为任务提交到现有系统,由系统异步进行资源导出处理,区分大资源量和小资源量,以通过批量并发或串行的方式获取相应资源详情;在业务数据库基础上建立导出数据库,导出资源优选导出数据库,且资源导出无需经过内存,而是将结果上传到文件服务器上供用户下载使用。整体支持百万级资源的导出需求,大幅度提升了导出速度,有效提高了资源导出的性能和稳定性。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 一种资源导出方法和装置
  • 数字资源导入、导出方法及装置
技术分类

06120113284091