结构化数据的下载方法和装置与流程

文档序号:12464712阅读:209来源:国知局
结构化数据的下载方法和装置与流程

本申请涉及数据下载技术领域,尤其涉及一种结构化数据的下载方法和装置。



背景技术:

在SOA(Service-Oriented Architecture,面向服务的体系结构)下,数据提供方可通过发布一个WebService(网页服务,简称WS)供其他系统以分页的方式查询数据;数据展示系统提供查询到的数据文件的下载服务,当用户点击查询或下载时,数据展示系统通过WS分页查询生成文件的数据并实时生成数据文件供用户下载。

目前,在查询数据并生成数据文件的过程中,往往是单线程地获取生成文件所需的全部数据,效率低下,另外,由于数据展示系统与数据提供方之间通过网络不断的进行交互,容易由网络中断或者超时等原因造成下载失败,导致必须从头开始重新查询数据,最终无法查看结构化数据,下载失败率较高。



技术实现要素:

为解决现有技术中的上述问题,本申请的一个目的在于提出一种结构化数据的下载方法及装置,可以提高结构化数据文件的下载成功率和下载速度。

为达到上述目的,本申请实施例提出的结构化数据的下载方法,包括:接收结构化数据的下载指令;根据所述下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务;根据所述多个数据分段下载任务下载相应的多个数据分段文件。

为达到上述目的,本申请实施例提出的结构化数据的下载装置,包括:接收模块,用于接收结构化数据的下载指令;切分模块,用于根据所述下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务;下载模块,用于根据所述多个数据分段下载任务下载相应的多个数据分段文件。

由以上本申请实施例提供的技术方案可见,通过根据结构化数据的下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务进行下载,将一个大的下载任务切分成若干个小的下载任务去下载,能够有效降低结构化数据的下载失败概率,保持了结构化数据的原有数据结构,并提升了下载速度。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本申请的实践了解到。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提出的结构化数据的下载方法的流程示意图;

图2是本申请一实施例的结构化数据的下载装置的结构示意图;

图3a是本申请另一实施例的结构化数据的下载装置的切分模块的结构示意图;

图3b是本申请另一实施例的结构化数据的下载装置的结构示意图;

图4是本申请另一实施例的结构化数据的下载方法的流程示意图。

具体实施方式

本申请实施例提供一种结构化数据的下载方法和装置。

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

图1是本申请一实施例提出的结构化数据的下载方法的流程示意图,在该图所示的实施例中客户端根据接收到的结构化数据下载指令,将一个结构化数据下载任务切分成多个数据分段下载任务进行下载,以减小单个任务要下载的数据量,减少单个任务的下载时间,降低总体下载失败的概率。如图1所示,该方法包括:

步骤101,接收结构化数据的下载指令;

步骤102,根据所述下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务;

步骤103,根据所述多个数据分段下载任务下载相应的多个数据分段文件。

其中,结构化数据是指可以用二维表结构来逻辑表达实现的数据,多为存储在数 据库中的行数据,例如交易数据,具体例如账务、退款、收费等数据。由于结构化数据本身存在特定的数据结构关系,因此现在下载时需要进行特殊的处理以保证下载后能显示结构化数据原有的数据结构关系。具体将在后续实施例中进行详细说明。

根据本申请的一个实施例,下载指令中包括要下载的结构化数据的起止标识。其中,起止标识可以是起止时间标识或者起止行标识,例如,下载账单时设置的要查询的起止日期,或下载数据表格时选定的起止行。

根据本申请的一个实施例,所述根据所述下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务,进一步包括:根据所述起止标识确定所述结构化数据的结构长度;将所述结构化数据下载任务切分为结构长度小于或等于第一预设阈值的多个数据分段下载任务。

其中,所述起止标识可以是起止时间标识。结构长度可以根据起止标识确定,以结构化数据的拆分单元表示,例如查询2015年8月11日到2015年8月20日的账单,以天为单位,结构长度可以确定为10天。第一预设阈值可以是客户端预先设置的最大任务单位,例如按天查询或下载数据时,第一预设阈值可以是5天,查询的结构长度大于5天的数据的下载任务则以每5天切分为一个数据分段下载任务,直到所有数据分段下载任务的结构长度都小于5天为止。

本实施例可以根据要下载的结构化数据的结构长度,将一个较长的结构化数据的下载任务切分为多个较短的数据分段下载任务进行下载,可以减少单个下载任务要下载的数据量,降低每个下载任务的失败概率,也减少了下载失败时重试所占用的时间。

根据本申请的一个实施例,所述根据所述多个数据分段下载任务下载相应的多个数据分段文件具体包括:采用多线程并行下载所述多个数据分段文件。这样各个下载任务可以同时进行,互不影响,还可以加快整体的下载速度。

根据本申请的一个实施例,当一个或多个所述数据分段文件下载失败时,所述方法还包括:获取对应的数据分段下载任务的待下载量;当所述待下载量大于第二预设阈值时,将所述数据分段下载任务进一步切分为两个子分段下载任务;根据所述子分段下载任务下载相应的数据分段文件。当一个或多个所述数据分段文件下载失败时,可以向服务端查询该要下载的数据文件的大小,如果由于要下载的数据内容较多,大于第二预设阈值时,则有可能是由于数据内容过大导致的下载失败,可将该下载任务进一步切分为两个子分段下载任务,重新下载。通过本步骤,可以减少由下载的数据 内容较多导致的重复下载失败。

根据本申请的一个实施例,当一个或多个所述数据分段文件下载失败时,所述方法还包括:重新下载相应的数据分段文件。由于各个数据分段文件是多线程并行下载的,因此在一个或多个数据分段文件下载失败时,还可以重新下载该数据分段文件,而无需影响其他的下载任务,能够解决目前下载结构化数据时一旦失败就需要重新下载整个数据文件的问题。

根据本申请的一个实施例,所述数据分段文件中包括分段标识,在所述根据所述多个数据分段下载任务下载相应的多个数据分段文件之后,还包括:

根据所述数据分段文件和对应的分段标识生成要下载的所述结构化数据。

通过本步骤,可以将下载到的数据分段文件合并为完整的结构化数据以便于查看。

根据本申请的一个实施例,当一个或多个所述数据分段文件下载失败时,所述方法还包括:根据已下载的所述多个数据分段文件和对应的分段标识,生成部分要下载的所述结构化数据和缺失数据分段的信息。通过本步骤,当有数据分段文件下载失败时,仍然可以将已下载的数据分段文件合并为一个结构化数据的整体,但对于其中缺失的分段可以进行缺失显示,例如提示缺失分段在整个结构化数据中的起止位置等。

本实施例的方法通过根据结构化数据的下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务进行下载,将一个大的下载任务切分成若干个小的下载任务去下载,能够有效降低结构化数据的下载失败概率,保持了结构化数据的原有数据结构,并提升了下载速度。

图2是本申请一实施例的结构化数据的下载装置的结构示意图。本实施例的装置可以为实现相应功能的逻辑部件构成,也可以为运行有相应功能软件的电子设备,本实施例的装置可以是客户端装置。

如图2所示,该结构化数据的下载装置包括:

接收模块10,用于接收结构化数据的下载指令;

切分模块20,用于根据所述下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务;

下载模块30,用于根据所述多个数据分段下载任务下载相应的多个数据分段文件。

根据本申请的一个实施例,所述下载模块30具体采用多线程并行下载所述多个数据分段文件。不仅能够使各个下载任务失败与否互不影响,还可以加快下载的整体速度,降低整体下载失败的概率。

根据本申请的一个实施例,如图3a所示,所述下载指令包括要下载的结构化数据的起止标识,所述切分模块20,进一步包括:

确定子模块21,用于根据所述起止标识确定所述结构化数据的结构长度;

切分子模块22,用于将所述结构化数据下载任务切分为结构长度小于或等于第一预设阈值的多个数据分段下载任务。

其中,所述起止标识可以是起止时间标识。结构长度可以根据起止标识确定,以结构化数据的拆分单元表示,例如查询2015年8月11日到2015年8月20日的账单,以天为单位,结构长度可以确定为10天。第一预设阈值可以是客户端预先设置的最大任务单位,例如按天查询或下载数据时,第一预设阈值可以是5天,查询的结构长度大于5天的数据的下载任务则以每5天切分为一个数据分段下载任务,直到所有数据分段下载任务的结构长度都小于5天为止。

根据本申请的一个实施例,如图3b所示,所述装置还包括获取模块40,用于在一个或多个所述数据分段文件下载失败时,获取对应的数据分段下载任务的待下载量;

所述切分模块20还用于在所述待下载量大于第二预设阈值时,将所述数据分段下载任务进一步切分为两个子分段下载任务;

所述下载模块30还用于根据所述子分段下载任务下载相应的数据分段文件。

根据本申请的一个实施例,所述下载模块还用于在一个或多个所述数据分段文件下载失败时,重新下载相应的数据分段文件。

根据本申请的一个实施例,如图3b所示,所述数据分段文件中包括分段标识,所述装置还包括合成模块50,用于根据所述数据分段文件和对应的分段标识生成要下载的所述结构化数据。

在本申请的一个实施例中,所述合成模块50还用于在一个或多个所述数据分段文件下载失败时,根据已下载的所述多个数据分段文件和对应的分段标识,生成部分要下载的所述结构化数据和缺失数据分段的信息。

本申请实施例的装置通过根据结构化数据的下载指令将对应的结构化数据下载 任务切分为多个数据分段下载任务进行下载,将一个大的下载任务切分成若干个小的下载任务去下载,能够有效降低结构化数据的下载失败概率,且不破坏结构化数据的原有数据结构,并提升了下载速度。

图4是根据本申请另一实施例提出的结构化数据的下载方法的流程示意图,本实施例以客户端是数据显示平台,服务端是数据中心,客户端向服务端查询账单明细数据为例进行说明。

如图4所示,该方法包括步骤401,接收结构化数据的下载指令。具体地,客户端可以接收用户输入的结构化数据的下载指令,例如是明细查询指令,或者,账单下载指令等,都需要数据显示平台到数据中心去获取结构化数据。实际应用中,客户端可以运行在电脑、手机、平板电脑等电子设备中,通过键盘、触摸屏、鼠标、触控板等输入接口接收用户输入的下载指令。

步骤402,根据下载指令中的起止标识确定要下载的结构化数据的结构长度。

在本申请的具体实施例中,根据接收到的下载指令会产生对应的下载任务,由于下载指令包括要下载的结构化数据的起止标识,因此可以确定要下载的结构化数据的结构长度。其中,所述起止标识例如是起止时间标识。结构长度可以结构化数据的拆分单元表示,例如查询2015年8月11日到2015年8月20日的账单,以天为单位,结构长度可以确定为10天。

步骤403,将所述结构化数据下载任务切分为结构长度小于或等于第一预设阈值的多个数据分段下载任务。

具体地,第一预设阈值可以是客户端预先设置的最大任务单位,例如按天查询或下载数据时,第一预设阈值可以是5天,查询的结构长度大于5天的数据的下载任务则以每5天切分为一个数据分段下载任务,直到所有数据分段下载任务的结构长度都小于5天为止。例如查询2015年8月11日到2015年8月20日的账单,结构长度为10天,第一预设阈值是5天,则将该下载任务切分为2015年8月11日到2015年8月15日、2015年8月16日到2015年8月20日两个期间的数据分段下载任务。

步骤404,根据所述多个数据分段下载任务下载相应的多个数据分段文件。

优选地,可采用多线程并行下载所述多个数据分段文件,以加快下载速度。

在下载过程中,当一个或多个所述数据分段文件下载失败时,可执行步骤405或步骤406-407进行重试。

步骤405,重新下载相应的数据分段文件。

基于多线程并行下载的原理,下载失败的线程可重试该下载任务,也不会影响其他下载任务的下载成功率。

步骤406,获取对应的数据分段下载任务的待下载量。在实际应用中,客户端可以通过服务端提供的下载查询接口查询该数据分段下载任务的待下载量,以确定是否要对该下载任务进行再次切分。

步骤407,当所述待下载量大于第二预设阈值时,将所述数据分段下载任务进一步切分为两个子分段下载任务。当所述待下载量大于第二预设阈值时,可以认为要下载的数据量较大,增加了下载失败概率,因此可以对该下载任务进一步切分。具体的切分方法可参照步骤402-403,在此不再赘述。

在本申请的一个具体实施例中,可以不执行步骤406,在下载失败原因是网络超时、连接超时或服务端未响应等原因时,可直接对该数据分段下载任务进行再次切分。

需要注意的是,可以预先设置结构长度的最小切分单位,例如1天,即切分后一个数据分段下载任务所下载的数据的结构长度最小是1天,当达到这个值后,就不再进行切分,下载失败后直接结束下载,或者执行步骤405进行重试。

步骤408,根据所述子分段下载任务下载相应的数据分段文件。

在本申请的一个实施例中,数据分段文件中包括分段标识。在下载结束后,可以执行步骤409,来还原要下载的结构化数据。当一个或多个所述数据分段文件下载失败时,可执行步骤410来还原要下载的结构化数据。

步骤409,根据所述数据分段文件和对应的分段标识生成要下载的所述结构化数据。具体地,分段标识可以有多种形式,例如在分段时添加的分段顺序标识,或者,使用各数据分段下载任务要下载的数据的起止时间作为标识等。根据分段标识,可以将下载到的结构化数据按原有的顺序进行拼接,生成原始的结构化数据。

步骤410,根据已下载的所述多个数据分段文件和对应的分段标识,生成部分要下载的所述结构化数据和缺失数据分段的信息。通过本步骤,当有数据分段文件下载失败时,仍然可以将已下载的数据分段文件合并为一个结构化数据的整体,但对于其中缺失的分段可以进行缺失显示,例如提示缺失分段在整个结构化数据中的起止位置等。

以上步骤中,步骤409-410是可选的,由于本实施例从要下载的结构化数据的结 构长度上对下载任务进行切分,使得分段下载任务下载到的数据分段文件在数据结构上保持了完整性和连续性,数据分段文件同样能够以结构化数据的显示方式进行正常的显示,可以单独查看,也可以通过步骤408或步骤409合并为更大的结构化数据文件进行查看。

本实施例通过根据结构化数据的下载指令将对应的结构化数据下载任务切分为多个数据分段下载任务进行下载,将一个大的下载任务切分成若干个小的下载任务,能够保持结构化数据的原有数据结构,采用多线程并行的方式下载,有效降低由于一次性连续下载数据量过大导致的下载失败概率,能够并提升了下载速度;另外,在数据分段文件下载失败时,还可以对单个任务进一步切分,也可以对该任务进行重试,无需重新下载所有数据分段,提高了最终下载成功的概率,也减少了失败重试所占用的时间;即使最终有个别数据分段文件下载失败,仍然能够对已下载的数据分段文件进行查看,提高了便捷性,提升了用户体验。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示 例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1