一种服务器及数据导出方法技术

技术编号:16175736 阅读:61 留言:0更新日期:2017-09-09 02:58
本发明专利技术提供一种服务器,所述服务器包括:查询模块、划分模块、导出模块。查询模块,用于根据导出条件查询所有待导出的数据,并计算所述所有待导出数据的数量。划分模块,用于将所述所有待导出数据划分为多个数据分页。导出模块,用于将当前所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中。本发明专利技术还提供一种数据导出方法。本发明专利技术提供的服务器及数据导出方法能快速导出大量数据,提高数据的导出效率。

【技术实现步骤摘要】
一种服务器及数据导出方法
本专利技术涉及通信领域,更具体地说,涉及一种服务器及数据导出方法。
技术介绍
在网页管理系统中,导出数据到数据表格是个高频功能。爪哇平台中涌现了多种导出框架,广泛应用在导出功能中,现有的导出框架能将少量数据导出。现有数据格式一般采用办公公开可扩展语音(OfficeOpenExtensibleMarkupLanguage,OOXML)格式,其中,OOXML格式是微软公司开发的技术规范,现已成为国际文档格式标准格式。采用OOXML格式的表格可以存储到1048576条数据,存储量超过百万。但是目前的数据导出框架,没有考虑海量数据的导出场景,只能一次性读取少量数据,然后导出到指定的文件中。如果从数据库一次性读取百万级以上数据,服务器需要很大的内存才能存储百万级以上数据,存储数据的内存过多会导致服务器存在很高的宕机风险,无法将大量数据快速导出。
技术实现思路
鉴于此,本专利技术提供了一种服务器及数据导出方法,所述服务器及数据导出方法能快速导出大量数据,提高数据的导出效率。本专利技术提供一种服务器,所述服务器包括:查询模块,用于根据导出条件查询所有待导出的数据,并计算所述所有待导出数据的数量;划分模块,用于将所述所有待导出数据划分为多个数据分页;导出模块,用于将当前所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中。可选地,所述划分模块包括:计算模块,用于根据每个数据分页的数据量和所述所有待导出的数据计算出待分页的分页数目;生成模块,用于根据所述分页数目将所述所有待导出的数据划分为对应的数据分页。可选地,所述服务器包括:判断模块,用于判断当前所述数据分页是否为最后一个的数据分页;应用模块,用于当当前数据分页不为最后一个的数据分页时,清空所述当前数据分页所占的内存,将所述当前数据分页对应的下一个所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述数据分页中的一条数据对应所述预设数据文件中的一个数据行节点。可选地,所述查询模块,还用于根据浏览器客户端输入的导出条件确定百万级以及百万级以上的待导出的数据;所述划分模块,还用于根据所述百万级以及百万级以上的待导出的数据以及每个数据分页的数据量计算出待分页的分页数目,根据所述分页数目将所述所有待导出的数据划分为对应的数据分页;所述导出模块,还用于依次将每个所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述数据分页中的每条数据对应所述预设数据文件中的一个数据行节点。可选地,所述服务器还包括:检测模块,用于检测内存中存储的数据是否达到预设数目;所述导出模块,还用于当内存中存储的数据达到预设数目时,将所述内存中存储的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述内存中存储的每条数据对应所述预设数据文件中的一个数据行节点。本专利技术还提供了一种数据导出方法,所述数据导出方法包括:根据导出条件查询所有待导出的数据,并计算所述所有待导出数据的数量;将所述所有待导出数据划分为多个数据分页;将当前所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中。可选地,所述将所述所有待导出数据划分为多个数据分页,包括:根据每个数据分页的数据量和所述所有待导出的数据计算出待分页的分页数目;根据所述分页数目将所述所有待导出的数据划分为对应的数据分页。可选地,所述将当前所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中之后,所述方法还包括:判断当前所述数据分页是否为最后一个的数据分页;当当前数据分页不为最后一个的数据分页时,清空所述当前数据分页所占的内存;将所述当前数据分页对应的下一个所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述数据分页中的一条数据对应所述预设数据文件中的一个数据行节点。可选地,所述根据导出条件查询所有待导出的数据之前或之后,所述方法还包括:根据浏览器客户端输入的导出条件确定百万级以及百万级以上的待导出的数据;根据所述百万级以及百万级以上的待导出的数据以及每个数据分页的数据量计算出待分页的分页数目;根据所述分页数目将所述所有待导出的数据划分为对应的数据分页;依次将每个所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述数据分页中的每条数据对应所述预设数据文件中的一个数据行节点。可选地,所述根据导出条件查询所有待导出的数据之前或之后,所述方法还包括:检测内存中存储的数据是否达到预设数目;当内存中存储的数据达到预设数目时,将所述内存中存储的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述内存中存储的每条数据对应所述预设数据文件中的一个数据行节点。本专利技术提供的服务器及数据导出方法能根据导出条件查询所有待导出的数据,并计算所述所有待导出数据的数量,将所述所有待导出数据划分为多个数据分页,当前所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,这样,能将需要导出的大量数据进行分页处理得到数据分页,依次导出数据分页的数据,并清除内存中的数据,能将快速导出大量数据,提高数据的导出效率。附图说明图1是实现本专利技术各个实施例服务器导出数据的应用环境图;图2是本专利技术实施例一服务器的功能模块图;图3是本专利技术实施例二服务器的功能模块图;图4是本专利技术实施例三服务器的功能模块图;图5是本专利技术实施例四服务器的功能模块图;图6是本专利技术实施例五数据导出方法的流程图;图7是本专利技术实施例六数据导出方法的流程图;图8是本专利技术实施例七数据导出方法的流程图;图9是本专利技术实施例八数据导出方法的流程图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。现在将参考附图描述实现本专利技术各个实施例一可选的服务器。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本专利技术的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。服务器可以以各种形式来实施。例如,本专利技术中描述的服务器可以包括诸如大型服务器、小型服务器。图1为实现本专利技术各个实施例服务器所在的应用环境示意图。图1中包括服务器10、终端270、笔记本271,其中,服务器10分别与终端270、笔记本271进行通信,服务器10中存储大量数据,大量数据包括:应用数据、数据库、日志、其他数据源的数据。终端270、笔记本271可以向服务器10请求导出数据,服务器10可以接受终端270、笔记本271的请求,将数据导出至终端270、笔记本271。补充说明的是,请求服务器10导出的设备可以为其他请求导出数据的装置,在此仅仅示意性画出两个,在本实施例中对请求导出数据的装置不做限制。服务器10可以包括,但不限于,存储器、控制器、无线通信单元、输入单元、输入单元、接口单元及电源单元。但是应当理解的是,并不要求实施所有组件。可以替代地实施更多或更少的组件。将在下面详细描述服务器10的元件。无本文档来自技高网...
一种服务器及数据导出方法

【技术保护点】
一种服务器,其特征在于,包括:查询模块,用于根据导出条件查询所有待导出的数据,并计算所述所有待导出数据的数量;划分模块,用于将所述所有待导出数据划分为多个数据分页;导出模块,用于将当前所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中。

【技术特征摘要】
1.一种服务器,其特征在于,包括:查询模块,用于根据导出条件查询所有待导出的数据,并计算所述所有待导出数据的数量;划分模块,用于将所述所有待导出数据划分为多个数据分页;导出模块,用于将当前所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中。2.如权利要求1所述的服务器,其特征在于,所述划分模块包括:计算模块,用于根据每个数据分页的数据量和所述所有待导出的数据计算出待分页的分页数目;生成模块,用于根据所述分页数目将所述所有待导出的数据划分为对应的数据分页。3.如权利要求1或2所述的服务器,其特征在于,还包括:判断模块,用于判断当前所述数据分页是否为最后一个的数据分页;应用模块,用于当当前数据分页不为最后一个的数据分页时,清空所述当前数据分页所占的内存,将所述当前数据分页对应的下一个所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述数据分页中的一条数据对应所述预设数据文件中的一个数据行节点。4.如权利要求1或2所述的服务器,其特征在于,所述查询模块,还用于根据浏览器客户端输入的导出条件确定百万级以及百万级以上的待导出的数据;所述划分模块,还用于根据所述百万级以及百万级以上的待导出的数据以及每个数据分页的数据量计算出待分页的分页数目,根据所述分页数目将所述所有待导出的数据划分为对应的数据分页;所述导出模块,还用于依次将每个所述数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述数据分页中的每条数据对应所述预设数据文件中的一个数据行节点。5.如权利要求1或2所述的服务器,其特征在于,还包括:检测模块,用于检测内存中存储的数据是否达到预设数目;所述导出模块,还用于当内存中存储的数据达到预设数目时,将所述内存中存储的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,所述内存中存储的每条数据对应所述预设数据文件中的一个数据行节点。6.一种数据导出方法,其特征在于,包括:...

【专利技术属性】
技术研发人员:王平
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:广东,44

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

1