全量数据导出方法、装置及系统制造方法及图纸

技术编号:16346060 阅读:48 留言:0更新日期:2017-10-03 22:22
本申请公开了一种全数据导出方法、装置及系统。该方法包括:接收用户通过客户端发送的全量数据导出请求;通过主线程向所述客户端返回确认消息,以提示用户数据导出操作正在执行;为所述全量数据导出请求分配数据导出线程;基于多线程操作,通过各数据导出线程分别执行数据导出操作,向数据库发送获取数据请求;以及从所述数据库获取数据并进行数据业务组装后,通知相应的客户端进行导出数据的下载。本发明专利技术提供的全数据导出方法能够提高数据导出效率,增加用户满意度。

【技术实现步骤摘要】
全量数据导出方法、装置及系统
本专利技术涉及数据处理
,具体而言,涉及一种全量数据导出方法、装置及系统。
技术介绍
目前,在进行全量数据导出时,通常采用基于单线程的同步式数据导出方法,该方法为:用户通过浏览器发出数据导出请求;服务器在接收到该请求后,通过查询语句,从数据库查询数据;数据库将查询到的结果集返回给服务器;服务器对返回的结果集进行业务组装后,以响应流的形式返回给用户。而随着系统的使用,累积存储的数据量越来越多,仅通过单线程同步方式导出全量数据已经无法满足需求。当存储的数据量达到一定数量级后,在全量数据导出时,数据的查询、结果集的组装等操作越来越慢,同时造成对服务器内存损耗巨大。当请求的响应时间过长后,会出现服务器响应超时,请求被丢弃,从而导致全脸数据导出失败。此外,当百万级的全量数据导出时,处理时间长、反应慢,用户请求提交后,往往在页面停留很长时间,甚至长达几十分钟,用户体验十分不友好。
技术实现思路
有鉴于此,本专利技术提供一种全量数据导出方法、装置及系统,基于多线程进行数据导出操作,能够提高数据导出效率,增加用户满意度。本专利技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本专利技术的实践而习得。根据本专利技术的一方面,提供了一种全量数据导出方法,包括:接收用户通过客户端发送的全量数据导出请求;通过主线程向所述客户端返回确认消息,以提示用户数据导出操作正在执行;为所述全量数据导出请求分配数据导出线程;基于多线程操作,通过各数据导出线程分别执行数据导出操作,向数据库发送获取数据请求;以及从所述数据库获取数据并进行数据业务组装后,通知相应的客户端进行导出数据的下载。根据本专利技术的一实施方式,所述数据导出操作包括:进行所述全量数据导出请求的导出数据量分析;当所述导出数据量超过预设的单次获取数据量的最大值时,根据数据量,分次向所述数据库发送获取数据请求。根据本专利技术的一实施方式,上述方法还包括:记录发送所述全量数据导出请求的用户信息;以及当从所述数据库获取数据并进行数据业务组装后,将经数据业务组装后的数据与所述用户信息进行关联。根据本专利技术的一实施方式,当从所述数据库获取数据并进行数据业务组装后,上述方法还包括:将经数据业务组装后的数据按目录规则进行存储及将存储路径保存在所述数据库中;以及在所述数据库中进行执行完成的标记记录。根据本专利技术的一实施方式,上述方法还包括:接收用户通过所述客户端发送的数据下载请求;以及将相应的导出数据返回给所述客户端。根据本专利技术的另一方面,提供了一种全量数据导出装置,包括:用户接口模块,用于接收用户通过客户端发送的全量数据导出请求;用户提示模块,用于通过主线程向所述客户端返回确认消息,以提示用户数据导出操作正在执行;线程分配模块,用于为所述全量数据导出请求分配数据导出线程;导出操作模块,用于基于多线程操作,通过各数据导出线程分别执行数据导出操作,向数据库发送获取数据请求;以及下载通知模块,用于从所述数据库获取数据并进行数据业务组装后,通知相应的客户端进行导出数据的下载。根据本专利技术的一实施方式,所述导出操作模块包括:数据量分析子模块,用于进行所述全量数据导出请求的导出数据量分析;以及数据请求拆分子模块,用于当所述导出数据量超过预设的单次获取数据量的最大值时,根据数据量,分次向所述数据库发送获取数据请求。根据本专利技术的一实施方式,上述装置还包括:用户信息记录模块,用于记录发送所述全量数据导出请求的用户信息;以及用户信息关联模块,用于当从所述数据库获取数据并进行数据业务组装后,将经数据业务组装后的数据与所述用户信息进行关联。根据本专利技术的一实施方式,上述装置还包括:数据存储模块,用于将经数据业务组装后的数据按目录规则进行存储及将存储路径保存在所述数据库中;以及数据库标记模块,用于在所述数据库中进行执行完成的标记记录。根据本专利技术的一实施方式,所述用户接口模块还用于接收用户通过所述客户端发送的数据下载请求,及将相应的导出数据返回给所述客户端。根据本专利技术的再一方面,提供了一种全量数据导出系统,包括:处理器和存储器;其中所述存储器用于存储所述处理器的可执行指令;所述处理器配置为经由执行所述可执行指令来执行以下操作:接收用户通过客户端发送的全量数据导出请求;通过主线程向所述客户端返回确认消息,以提示用户数据导出操作正在执行;为所述全量数据导出请求分配数据导出线程;基于多线程操作,通过各数据导出线程分别执行数据导出操作,向数据库发送获取数据请求;以及从所述数据库获取数据并进行数据业务组装后,通知相应的客户端进行导出数据的下载。根据本专利技术的一实施方式,所述数据导出操作包括:进行所述全量数据导出请求的导出数据量分析;当所述导出数据量超过预设的单次获取数据量的最大值时,根据数据量,分次向所述数据库发送获取数据请求。根据本专利技术的一实施方式,所述处理器还配置为经由执行所述可执行指令来执行以下操作:记录发送所述全量数据导出请求的用户信息;以及当从所述数据库获取数据并进行数据业务组装后,将经数据业务组装后的数据与所述用户信息进行关联。根据本专利技术的全量数据导出方法可基于多线程执行不同全量数据导出请求的数据导出操作,可有效处理并发的全量数据导出请求,提高了数据导出操作效率,降低了用户的等待时间;此外,本专利技术的全量数据导出方法在获得从数据库返回的结果集,并进行业务组装后,通知用户下载,而不是如现有技术中以响应流的形式直接返回导出的数据。这样,用户在发起全量数据导出请求后,无需如现有技术中一样必须等待在当前页面中,以等待导出数据的返回。另外,根据一些实施例,本专利技术的全量数据导出方法通过设置最大单次获取数据量,可最大限度地降低数据库的执行压力。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本专利技术。附图说明通过参照附图详细描述其示例实施例,本专利技术的上述和其它目标、特征及优点将变得更加显而易见。图1是根据一示例性实施方式示出的一种全量数据导出方法的流程图。图2是根据一示例性实施方式示出的另一种全量数据导出方法的流程图。图3是根据一示例性实施方式示出的一种全量数据导出装置的框图。图4是根据一示例性实施方式示出的另一种全量数据导出装置的框图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本专利技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本专利技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本专利技术的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本专利技术的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本专利技术的各方面变得模糊。图1是根据一示例性实施方式示出的一种全量数据导出方法的流程图,该全量数据导出方法可以应用于一服务器中。如图1本文档来自技高网...
全量数据导出方法、装置及系统

【技术保护点】
一种全量数据导出方法,其特征在于,包括:接收用户通过客户端发送的全量数据导出请求;通过主线程向所述客户端返回确认消息,以提示用户数据导出操作正在执行;为所述全量数据导出请求分配数据导出线程;基于多线程操作,通过各数据导出线程分别执行数据导出操作,向数据库发送获取数据请求;以及从所述数据库获取数据并进行数据业务组装后,通知相应的客户端进行导出数据的下载。

【技术特征摘要】
1.一种全量数据导出方法,其特征在于,包括:接收用户通过客户端发送的全量数据导出请求;通过主线程向所述客户端返回确认消息,以提示用户数据导出操作正在执行;为所述全量数据导出请求分配数据导出线程;基于多线程操作,通过各数据导出线程分别执行数据导出操作,向数据库发送获取数据请求;以及从所述数据库获取数据并进行数据业务组装后,通知相应的客户端进行导出数据的下载。2.根据权利要求1所述的方法,其特征在于,所述数据导出操作包括:进行所述全量数据导出请求的导出数据量分析;当所述导出数据量超过预设的单次获取数据量的最大值时,根据数据量,分次向所述数据库发送获取数据请求。3.根据权利要求1所述的方法,其特征在于,还包括:记录发送所述全量数据导出请求的用户信息;以及当从所述数据库获取数据并进行数据业务组装后,将经数据业务组装后的数据与所述用户信息进行关联。4.根据权利要求3所述的方法,其特征在于,当从所述数据库获取数据并进行数据业务组装后,还包括:将经数据业务组装后的数据按目录规则进行存储及将存储路径保存在所述数据库中;以及在所述数据库中进行执行完成的标记记录。5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:接收用户通过所述客户端发送的数据下载请求;以及将相应的导出数据返回给所述客户端。6.一种全量数据导出装置,其特征在于,包括:用户接口模块,用于接收用户通过客户端发送的全量数据导出请求;用户提示模块,用于通过主线程向所述客户端返回确认消息,以提示用户数据导出操作正在执行;线程分配模块,用于为所述全量数据导出请求分配数据导出线程;导出操作模块,用于基于多线程操作,通过各数据导出线程分别执行数据导出操作,向数据库发送获取数据请求;以及下载通知模块,用于从所述数据库获取数据并进行数据业务组装后,通知相应的客户端进行导出数据的下载。7.根据权利要求6所述的装置,其特征在于,所述导出操作模块包括:数据量分析子模块,用于进行所述全量数据导出...

【专利技术属性】
技术研发人员:邬昌
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1