一种服务器及数据导出方法与流程

文档序号:11230582阅读:927来源:国知局
一种服务器及数据导出方法与流程

本发明涉及通信领域,更具体地说,涉及一种服务器及数据导出方法。



背景技术:

在网页管理系统中,导出数据到数据表格是个高频功能。爪哇平台中涌现了多种导出框架,广泛应用在导出功能中,现有的导出框架能将少量数据导出。现有数据格式一般采用办公公开可扩展语音(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的元件。

无线通信单元通常包括一个或多个组件,其允许服务器10与无线通信系统或网络之间的无线点通信。例如,无线通信单元可以包括广播生成模块、移动通信模块、无线互联网模块、短程通信模块和位置消息模块中的至少一个。

广播生成模块经由广播信道从外部广播管理服务器接收广播信号和/或广播相关消息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关消息的服务器或者接收之前生成的广播信号和/或广播相关消息并且将其发送给终端的服务器。广播信号可以包括tv广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与tv或无线电广播信号组合的广播信号。广播相关消息也可以经由移动通信网络提供,并且在该情况下,广播相关消息可以由移动通信模块来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(dmb)的电子节目指南(epg)、数字视频或音频广播手持(dvb-h)的电子服务指南(esg)等等的形式而存在。广播生成模块可以通过使用各种类型的广播系统接收信号广播。特别地,广播生成模块可以通过使用诸如多媒体广播-地面(dmb-t)、数字多媒体广播-卫星(dmb-s)、数字视频或音频广播-手持(dvb-h),前向链路媒体(mediaflo@)的数据广播系统、地面数字广播综合服务(isdb-t)等等的数字广播系统接收数字广播。广播生成模块可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播生成模块接收的广播信号和/或广播相关消息可以存储在存储器或者其它类型的存储介质中。

移动通信模块将无线电信号发送到基站(例如,接入点、节点b等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语言通话信号、视频或音频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。

无线互联网模块支持服务器的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括wlan(无线lan)(wi-fi)、wibro(无线宽带)、wimax(全球微波互联接入)、hsdpa(高速下行链路分组接入)等等。

短程通信模块是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙tm、射频识别(rfid)、红外数据协会(irda)、超宽带(uwb)、紫蜂tm等等。

位置消息模块是用于检查或获取服务器的位置消息的模块。位置消息模块的典型示例是gps(全球定位系统)。根据当前的技术,gps模块计算来自三个或更多卫星的距离消息和准确的时间消息并且对于计算的消息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置消息。当前,用于计算位置和时间消息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间消息的误差。此外,gps模块能够通过实时地连续计算当前位置消息来计算速度消息。

输出单元被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频或音频信号、警报信号、振动信号等等)。输出单元可以包括显示单元、音频输出模块、警报单元等等。

显示单元可以显示在服务器10中处理的消息。例如,当服务器10处于工作模式时,显示单元可以显示例如,文本消息收发、多媒体文件下载等等相关的用户界面(ui)或图形用户界面(gui)。当服务器10处于视频或音频通话模式或者图像捕获模式时,显示单元可以显示捕获的图像和/或接收的图像、示出视频或音频或图像以及相关功能的ui或gui等等。

同时,当显示单元和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元可以用作输入装置和输出装置。显示单元可以包括液晶显示器(lcd)、薄膜晶体管lcd(tft-lcd)、有机发光二极管(oled)显示器、柔性显示器、三维(3d)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为toled(透明有机发光二极管)显示器等等。根据特定想要的实施方式,服务器10可以包括两个或更多显示单元(或其它显示装置),例如,服务器可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。

音频输出模块可以在服务器处于记录模式、语言识别模式、广播接收模式等等模式下时,将无线通信单元接收的或者在存储器中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块可以提供与服务器10执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块可以包括扬声器、蜂鸣器等等。

警报单元可以提供输出以将事件的发生通知给服务器10。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频或音频输出之外,警报单元可以以不同的方式提供输出以通知事件的发生。例如,警报单元可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incomingcommunication)时,警报单元可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报单元也可以经由显示单元或音频输出模块提供通知事件的发生的输出。

输入单元可以根据用户输入的命令生成键输入数据以控制服务器的各种操作。输入单元允许用户输入各种类型的消息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元上时,可以形成触摸屏。在本发明的实施例中,所述输入单元包括触控屏及水墨屏。

接口单元用作至少一个外部装置与服务器10连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频或音频i/o端口、耳机端口等等。识别模块可以是存储用于验证用户使用服务器10的各种消息并且可以包括用户识别模块(uim)、客户识别模块(sim)、通用客户识别模块(usim)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与服务器10连接。接口单元可以用于接收来自外部装置的输入(例如,数据消息、电力等等)并且将接收到的输入传输到服务器10内的一个或多个元件或者可以用于在服务器和外部装置之间传输数据。

另外,当服务器10与外部底座连接时,接口单元可以用作允许通过其将电力从底座提供到服务器10的路径或者可以用作允许从底座输入的各种命令信号通过其传输到服务器的路径。从底座输入的各种命令信号或电力可以用作用于识别服务器是否准确地安装在底座上的信号。

存储器可以存储由控制器执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频或音频等等)。而且,存储器可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。

存储器可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,服务器10可以与通过网络连接执行存储器的存储功能的网络存储装置协作。

控制器通常控制服务器的总体操作。例如,控制器执行与语言通话、数据通信、视频或音频通话等等相关的控制和处理。另外,控制器可以包括用于再现(或回放)多媒体数据的多媒体模块,多媒体模块可以构造在控制器内,或者可以构造为与控制器分离。控制器可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。

电源单元在控制器的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。

这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器中并且由控制器执行。

基于上述服务器硬件结构,提出本发明方法各个实施例。

基于上述服务器硬件结构以及通信系统,提出本发明方法各个实施例。

请参阅图2,图2是本发明实施例一服务器的功能模块图。图2所示的服务器10包括查询模块101、划分模块102、导出模块103。下面对功能模块进行详细说明。

服务器10的查询模块101根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量。服务器10的划分模块102将所有待导出数据划分为多个数据分页。服务器10的导出模块103将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。

举例来说,导出条件是全省年龄在15岁至18岁的青少年资料,服务器10的查询模块101根据导出条件查询全省所有年龄在15岁至18岁的青少年资料,假设计算出全省年龄在15岁至18岁的青少年资料有100万条。假设每个数据分页中存储的数据有1000条,服务器10的划分模块102将100万待导出数据划分为1000个数据分页,每个数据分页中包括1000条数据。服务器10的导出模块103依次导出1000个数据分页,具体来说,将将第一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。将第1个数据分页导出后,将第一个数据分页所占内存清空。然后,依次导出第2个数据分页,并将第2个数据分页所占内存清空。直至导出第1000个数据分页,将第100个数据分页所占内存清空。

补充说明的是,所有待导出数据的数量可以是百万级的数量,通过数据分页将大量的数据划分为适合导出的多个分页数据,在导出过程中,通过依次将多个数据分页导出,实现导出所有待导出数据的操作。进一步说明的是,预设数据文件为用户选择或者系统默认格式的文件,举例来说,预设格式文件可以为微软公司的excel文件。在微软公司的excel2007及以上版本中,采用办公公开标记语言(officeopenextensiblemarkuplanguage,ooxml),其中,ooxml微软公司为office2007开发的技术规范,现已成为国际文档格式标准,ooxml表格可以存储到1048576条数据,存储量超过百万。

本实施例提供的服务器能根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量,将所有待导出数据划分为多个数据分页,将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。这样,服务器能将大量待导出数据划分为数据分页,通过依次导出数据分页实现大量数据的快速导出,提高导出大量数据的效率。

请参阅图3,图3是本发明实施例二服务器的功能模块图。图3所示的服务器10包括查询模块101、划分模块102、导出模块103。其中,划分模块102包括计算模块1021、生成模块1022。下面对功能模块进行详细说明。

服务器10的查询模块101根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量。服务器10的划分模块102将所有待导出数据划分为多个数据分页。服务器10的导出模块103将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。

具体来说,划分模块包括计算模块1021、生成模块1022。计算模块1021根据每个数据分页的数据量和所有待导出的数据计算出待分页的分页数目。生成模块1022根据分页数目将所有待导出的数据划分为对应的数据分页。

补充说明的是,所有待导出数据的数量可以是百万级的数量,通过数据分页将大量的数据划分为适合导出的多个分页数据,在导出过程中,通过依次将多个数据分页导出,实现导出所有待导出数据的操作。进一步说明的是,预设数据文件为用户选择或者系统默认格式的文件,举例来说,预设格式文件可以为微软公司的excel文件。

举例来说,导出条件是全省年龄在15岁至18岁的青少年资料,服务器10的查询模块101根据导出条件查询全省所有年龄在15岁至18岁的青少年资料,假设计算出全省年龄在15岁至18岁的青少年资料有100万条。假设每个数据分页中存储的数据有1000条,服务器10的计算模块1021根据每个数据分页的数据量为1000个数据、和所有待导出的数据为100万个数据,计算出待分页的分页数目为1000个。生成模块1022根据分页数目为1000个,将所有待导出的100万数据划分为1000个数据分页。服务器10的导出模块103依次导出1000个数据分页,具体来说,将将第一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。将第1个数据分页导出后,将第一个数据分页所占内存清空。然后,依次导出第2个数据分页,并将第2个数据分页所占内存清空。直至导出第1000个数据分页,将第100个数据分页所占内存清空。

本实施例提供的服务器能根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量,将所有待导出数据划分为多个数据分页,将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,并持久化到预设数据文件中。这样,服务器能将大量待导出数据划分为数据分页,通过依次导出数据分页实现大量数据的快速导出,提高导出大量数据的效率。

请参阅图4,图4是本发明实施例三服务器的功能模块图。图4所示的服务器10包括查询模块101、划分模块102、导出模块103、判断模块104、应用模块105、检测模块106。其中,划分模块102包括计算模块1021、生成模块1022。下面对功能模块进行详细说明。

服务器10的查询模块101根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量。服务器10的划分模块102将所有待导出数据划分为多个数据分页。服务器10的导出模块103将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。

具体来说,划分模块包括计算模块1021、生成模块1022。计算模块1021根据每个数据分页的数据量和所有待导出的数据计算出待分页的分页数目。生成模块1022根据分页数目将所有待导出的数据划分为对应的数据分页。

补充说明的是,判断模块104判断当前数据分页是否为最后一个的数据分页。当当前数据分页不为最后一个的数据分页时,应用模块105清空当前数据分页所占的内存,将当前数据分页对应的下一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空。当当前数据分页为最后一个的数据分页时,服务器10的查询模块101重新根据下一个导出条件查询所有待导出的数据,并计算所有待导出数据的数量。

进一步补充说明的是,查询模块101根据浏览器客户端输入的导出条件确定百万级以及百万级以上的待导出的数据。划分模块102根据百万级以及百万级以上的待导出的数据以及数据分页的数据量计算出待分页的分页的数目,根据分页数目将所有待导出的数据划分为对应的数据分页。导出模块103依次将每个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,数据分页中的每条数据对应预设数据文件中的一个数据行节点。

另外,检测模块106检测内存中存储的数据是否达到预设数目,当内存中存储的数据达到预设数目时,导出模块103将内存中存储的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,内存中存储的每条数据对应预设数据文件中的一个数据行节点。

补充说明的是,所有待导出数据的数量可以是百万级的数量,通过数据分页将大量的数据划分为适合导出的多个分页数据,在导出过程中,通过依次将多个数据分页导出,实现导出所有待导出数据的操作。进一步说明的是,预设数据文件为用户选择或者系统默认格式的文件,举例来说,预设格式文件可以为微软公司的excel文件。

本实施例提供的服务器能根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量,将所有待导出数据划分为多个数据分页,将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。这样,服务器能将大量待导出数据划分为数据分页,通过依次导出数据分页实现大量数据的快速导出,提高导出大量数据的效率。

本发明还提供一种数据导出方法,该方法应用于图2-4所示的服务器10,下面对本实施例的数据导出方法进行详细介绍。

参阅图5,图5是本发明实施例四数据导出方法的流程图。

在步骤s501中,服务器10的查询模块101根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量。

在步骤s502中,服务器10的划分模块102将所有待导出数据划分为多个数据分页。

在步骤s503中,服务器10的导出模块103将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。

补充说明的是,所有待导出数据的数量可以是百万级的数量,通过数据分页将大量的数据划分为适合导出的多个分页数据,在导出过程中,通过依次将多个数据分页导出,实现导出所有待导出数据的操作。进一步说明的是,预设数据文件为用户选择或者系统默认格式的文件,举例来说,预设格式文件可以为微软公司的excel文件。

举例来说,导出条件是全省年龄在55岁至60岁的老年人资料,服务器10的查询模块101根据导出条件查询全省所有年龄在55岁至60岁的老年人资料,假设计算出全省年龄在55岁至60岁的老年人资料有200万条。假设每个数据分页中存储的数据有2000条,服务器10的划分模块102将200万待导出数据划分为1000个数据分页,每个数据分页中包括2000条数据。服务器10的导出模块103依次导出1000个数据分页,具体来说,将将第一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。将第1个数据分页导出后,将第一个数据分页所占内存清空。然后,依次导出第2个数据分页,并将第2个数据分页所占内存清空。直至导出第1000个数据分页,将第1000个数据分页所占内存清空。

本实施例提供的数据导出方法能根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量,将所有待导出数据划分为多个数据分页,将当前数据分页中的每条数据转化成二进制流。这样,数据导出方法能将大量待导出数据划分为数据分页,通过依次导出数据分页实现大量数据的快速导出,提高导出大量数据的效率。

参阅图6,图6是本发明实施例四数据导出方法的流程图。该方法应用于图2-4所示的服务器10,下面对本实施例的数据导出方法进行详细介绍。

在步骤s601中,服务器10的查询模块101根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量。

在步骤s602中,计算模块1021根据每个数据分页的数据量和所有待导出的数据计算出待分页的分页数目。

在步骤s603中,生成模块1022根据分页数目将所有待导出的数据划分为对应的数据分页。

在步骤s604中,服务器10的导出模块103将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。

补充说明的是,所有待导出数据的数量可以是百万级的数量,通过数据分页将大量的数据划分为适合导出的多个分页数据,在导出过程中,通过依次将多个数据分页导出,实现导出所有待导出数据的操作。进一步说明的是,预设数据文件为用户选择或者系统默认格式的文件,举例来说,预设格式文件可以为微软公司的excel文件。

举例来说,导出条件是全省年龄在25岁至40岁的中年人资料,服务器10的查询模块101根据导出条件查询全省所有年龄在25岁至40岁的中年人资料,假设计算出全省年龄25岁至40岁的中年人资料有300万条。假设每个数据分页中存储的数据有2000条,服务器10的计算模块1021根据每个数据分页的数据量为2000个数据、和所有待导出的数据为300万个数据,计算出待分页的分页数目为1500个。生成模块1022根据分页数目为1500个,将所有待导出的300万数据划分为1500个数据分页。服务器10的导出模块103依次导出1500个数据分页,具体来说,将将第一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。将第1个数据分页导出后,将第一个数据分页所占内存清空。然后,依次导出第2个数据分页,并将第2个数据分页所占内存清空。直至导出第1500个数据分页,将第1500个数据分页所占内存清空。

本实施例提供的数据导出方法能根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量,将所有待导出数据划分为多个数据分页,将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空。这样,数据导出方法能将大量待导出数据划分为数据分页,通过依次导出数据分页实现大量数据的快速导出,提高导出大量数据的效率。

参阅图7,图7是本发明实施例六数据导出方法的流程图。该方法应用于图2-4所示的服务器10,下面对本实施例的数据导出方法进行详细介绍。

在步骤s701中,服务器10的查询模块101根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量。

在步骤s702中,服务器10的划分模块102将所有待导出数据划分为多个数据分页。

具体来说,步骤s702包括:计算模块1021根据每个数据分页的数据量和所有待导出的数据计算出待分页的分页数目;生成模块1022根据分页数目将所有待导出的数据划分为对应的数据分页。

在步骤s703中,服务器10的导出模块103将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。

在步骤s704中,判断模块104判断当前数据分页是否为最后一个的数据分页。

在步骤s705中,当当前数据分页不为最后一个的数据分页时,应用模块105清空当前数据分页所占的内存。

在步骤s706中,将当前数据分页对应的下一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。

当当前数据分页为最后一个的数据分页时,进入步骤s701,服务器10的查询模块101重新根据下一个导出条件查询所有待导出的数据,并计算所有待导出数据的数量。

举例来说,导出条件是全省年龄在25岁至40岁的中年人资料,服务器10的查询模块101根据导出条件查询全省所有年龄在25岁至40岁的中年人资料,假设计算出全省年龄25岁至40岁的中年人资料有300万条。假设每个数据分页中存储的数据有2000条,服务器10的计算模块1021根据每个数据分页的数据量为2000个数据、和所有待导出的数据为300万个数据,计算出待分页的分页数目为1500个。生成模块1022根据分页数目为1500个,将所有待导出的300万数据划分为1500个数据分页。服务器10的导出模块103依次导出1500个数据分页,具体来说,将将第一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。将第1个数据分页导出后,将第一个数据分页所占内存清空。然后,判断模块104判断当前的第1个数据分页是否为最后一个的数据分页,当判断出当前的第1个数据分页不为最后一个数据分页时,导出第2个数据分页,并将第2个数据分页所占内存清空。直至导出第1500个数据分页,将第1500个数据分页所占内存清空,判断模块104判断当前的第1500个数据分页为最后一个的数据分页,确定将所有待导出的300万数据导出完毕。

本实施例提供的数据导出方法能根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量,将所有待导出数据划分为多个数据分页,将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空。这样,数据导出方法能将大量待导出数据划分为数据分页,通过依次导出数据分页实现大量数据的快速导出,提高导出大量数据的效率。

参阅图8,图8是本发明实施例七数据导出方法的流程图。该方法应用于图2-4所示的服务器10,下面对本实施例的数据导出方法进行详细介绍。

在步骤s801中,查询模块101根据浏览器客户端输入的导出条件确定百万级以及百万级以上的待导出的数据。

在步骤s802中,划分模块102根据百万级以及百万级以上的待导出的数据以及数据分页的数据量计算出待分页的分页的数目。

在步骤s803中,根据分页数目将所有待导出的数据划分为对应的数据分页。

在步骤s804中,导出模块103依次将每个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,数据分页中的每条数据对应预设数据文件中的一个数据行节点。

补充说明的是,所有待导出数据的数量可以是百万级的数量,通过数据分页将大量的数据划分为适合导出的多个分页数据,在导出过程中,通过依次将多个数据分页导出,实现导出所有待导出数据的操作。进一步说明的是,预设数据文件为用户选择或者系统默认格式的文件,举例来说,预设格式文件可以为微软公司的excel文件。

举例来说,浏览器客户端输入服务器10的导出条件是全省年龄在25岁至40岁的中年人资料,服务器10的查询模块101根据导出条件查询全省所有年龄在25岁至40岁的中年人资料,假设计算出全省年龄25岁至40岁的中年人资料有300万条。假设每个数据分页中存储的数据有2000条,服务器10的计算模块1021根据每个数据分页的数据量为2000个数据、和所有待导出的数据为300万个数据,计算出待分页的分页数目为1500个。生成模块1022根据分页数目为1500个,将所有待导出的300万数据划分为1500个数据分页。服务器10的导出模块103依次导出1500个数据分页,具体来说,将将第一个数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,其中,数据分页中的一条数据对应预设数据文件中的一个数据行节点。将第1个数据分页导出后,将第一个数据分页所占内存清空。然后,依次导出第2个数据分页,并将第2个数据分页所占内存清空。直至导出第1500个数据分页,将第1500个数据分页所占内存清空。

本实施例提供的数据导出方法能根据导出条件查询所有待导出的数据,并计算所有待导出数据的数量,将所有待导出数据划分为多个数据分页,将当前数据分页中的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空。这样,服数据导出方法能将大量待导出数据划分为数据分页,通过依次导出数据分页实现大量数据的快速导出,提高导出大量数据的效率。

参阅图9,图9是本发明实施例八数据导出方法的流程图。该方法应用于图2-4所示的服务器10,下面对本实施例的数据导出方法进行详细介绍。

在步骤s901中,检测模块106检测内存中存储的数据是否达到预设数目。

在步骤s902中,当内存中存储的数据达到预设数目时,导出模块103将内存中存储的每条数据转化成二进制流,并持久化到预设数据文件中,将已被导出数据所占的内存清空,其中,内存中存储的每条数据对应预设数据文件中的一个数据行节点。

本实施例提供的数据导出方法能检测存储的数据是否达到了预设数目,当达到预设数目时,导出存储的数据,将已被导出数据所占的内存清空,能实时导出大量数据、清空已被导出数据所占内存空间,实现大量数据的快速导出,提高导出大量数据的效率。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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