一种数据导出方法和装置的制造方法

xiaoxiao2020-10-23  13

一种数据导出方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及数据导出技术领域,尤其涉及一种数据导出方法和装置。
【背景技术】
[0002]在数据库日常运维中经常遇到导出数据到文本文件中,比较常用数据格式是CSV (Comma-Separated Values,逗号分隔值)格式,有时需要导出插入INSERT语句格式,虽然格式不同但处理的方式基本相同,目前基本采用spool日志文件方式导出结果,通常情况下是运维DBA (Database administrator,数据库管理员)根据用户的导出数据请求编写对应的导出数据脚本,然后运行导出数据脚本,生成日志文件在屏幕滚动显示,滚动显示所有导出数据之后,打包发送给用户。因此,对于不同的导出数据需求,每次都要重新编写导出数据脚本,灵活性较差,运维工作将变得十分繁杂,耗费大量的人力资源。并且当数据量较大时,通过spool日志文件屏幕滚动显示的方法导出数据耗时长,导出速度慢,时间成本上不可控。

【发明内容】

[0003]本发明提供一种数据导出方法和装置,以实现自动完成不同格式的导出数据的导出工作,提高导出速度,节省运维成本。
[0004]第一方面,本发明实施例提供了一种数据导出方法,该方法包括:
[0005]接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息;
[0006]根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息;
[0007]根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据;
[0008]将所述导出数据写入文本文件。
[0009]进一步的,所述根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息,包括:
[0010]根据所述配置信息,判断导出数据格式是否为插入语句格式,若是,则生成数据库可执行的插入语句信息;否则,生成数据库可执行的逗号分隔值语句信息。
[0011]进一步的,在接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息之后,还包括:
[0012]根据配置信息获取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式。
[0013]进一步的,当根据所述导出数据表占用物理空间开启并行导出模式时,还包括:
[0014]根据操作系统资源使用率,设置并行导出模式的并行度。
[0015]进一步的,在将所述导出数据写入文本文件之前,还包括:
[0016]判断所述导出数据的编码格式与所述配置信息是否一致,并在不一致时,将所述导出数据的编码格式转换为所述配置信息中的编码格式。
[0017]第二方面,本发明实施例提供了一种数据导出装置,该装置包括:
[0018]配置信息设置模块,用于接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息;
[0019]解析模块,用于根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息;
[0020]数据格式转换模块,用于根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据;
[0021]导出模块,用于将所述导出数据写入文本文件。
[0022]进一步的,所述解析模块包括:
[0023]导出数据格式判断单元,用于根据所述配置信息,判断导出数据格式是否为插入语句格式,若是,则生成数据库可执行的插入语句信息;否则,生成数据库可执行的逗号分隔值语句信息。
[0024]进一步的,还包括:
[0025]并行判断模块,用于根据配置信息获取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式。
[0026]进一步的,还包括:
[0027]并行度设置模块,根据操作系统资源使用率,设置并行导出模式的并行度。
[0028]进一步的,还包括:
[0029]编码格式转换模块,用于判断所述导出数据的编码格式与所述配置信息是否一致,并在不一致时,将所述导出数据的编码格式转换为所述配置信息中的编码格式。
[0030]本发明通过接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息,根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息,根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据,将所述导出数据写入文本文件,解决了现有技术中需要针对不用的数据导出任务分别编写程序导出数据的问题,并且本发明提供的数据导出方法与现有的通过spool日志文件屏幕滚动显示的方法导出相比,导出速度快。
【附图说明】
[0031]图1为本发明实施例一提供的一种数据导出方法的流程图;
[0032]图2为本发明实施例二提供的一种数据导出方法的流程图;
[0033]图3为本发明实施例三提供的一种数据导出方法的流程图;
[0034]图4为本发明实施例四提供的一种数据导出装置的结构示意图。
【具体实施方式】
[0035]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0036]实施例一
[0037]图1为本发明实施例一提供的一种数据导出方法的流程图,本实施例可适用于不同数据格式的导出任务,针对不同数据格式的导出任务,无需重新编写程序,只需加载相应的配置信息即可自动完成数据导出工作。本发明实施例可以由数据导出装置执行,该装置可以通过硬件和/或软件的方式实现,并一般可集成于数据库服务器端。如图1所示,该方法包括如下步骤:
[0038]步骤110、接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息;
[0039]在使用数据库的过程中,难免会有将数据表中的数据导出这样的需求,特别是一些企业需要经常性的提取一些业务数据作为分析决策的参考,而这些提取数据的需求又具有格式经常变化等特点。当用户需要导出数据时,通过客户端输入导出数据请求,并将所述导出数据请求发送至数据库服务器,数据库服务器识别所述导出数据请求,并根据上述导出数据请求任务设置配置信息,以根据不同的导出数据请求设置不同的导出参数。所述配置信息例如可以包括导出数据格式信息、需要导出数据表信息等。
[0040]步骤120、根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息;
[0041]加载上述配置信息并解析,确定导出数据格式,并生成数据库可执行的语句信息,以供数据库调用执行。
[0042]步骤130、根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据;
[0043]根据所述数据库可执行语句信息,查询数据库,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据。
[0044]步骤140、将所述导出数据写入文本文件。
[0045]本发明实施例直接将导出数据写入文本文件,代替传统的spool方式,由于传统的spool方式生成日志文件并在屏幕滚动显示,在操作系统上有2G大小的限制,如果日志文件大于2G,就有可能发生数据截断,影响导出数据的完整性,而本发明实施例直接将导出数据写入文本文件,因此不会有操作系统2G大小的限制。
[0046]进一步的,本发明实施例所述的方法支持二进制存储单行数据,相比于spool方式的抓屏字符串显示,本本发明实施例所述的方法可用于宽表,单行不受字符串长度限制,防止导出数据因受字符串长度限制被截断丢失的技术问题。
[0047]本发明实施例通过根据用户的导出数据请求任务设置配置信息,导出数据时,只需根据不同导出数据请求任务设置不同的配置信息即可完成相应的导出数据任务,解决了现有技术中针对每个导出数据任务分别编写程序的问题,节省了运维成本。
[0048]实施例二
[0049]图2为本发明实施例二提供的一种数据导出方法的流程图,本实施例为上述实施例基础上的优化,具体的,所述方法包括如下步骤:
[0050]步骤210、接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息。
[0051]步骤220、根据所述配置信息,判断导出数据格式是否为插入语句格式。
[0052]当导出数据格式为插入语句格式时,依次执行步骤230、250、260否则依次执行步骤 240、250、260。
[0053]步骤230、生成数据库可执行的插入语句信息。
[0054]步骤240、生成数据库可执行的逗号分隔值语句信息。
[0055]逗号分隔值格式(Comma-Separated Values,CSV),是以纯文本形式存储表格数据,广泛应用在程序之间转移表格数据。插入INSERT语句格式可以经过进一步的改造完成不同数据库间数据的使用,以供第三方进行方便的调用。用户可根据具体的环境需要选择合理相应的导出数据格式。
[0056]步骤250、读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据。
[0057]步骤260、将所述导出数据写入文本文件。
[0058]本发明实施例可以根据用户需求,通过解析配置信息导出CSV格式或者INSERT语句格式的数据,所述方法支持Oracle、SQL以及MySql关系数据库的数据导出任务,提升了导出效率,提高了导出数据任务的灵活性。
[0059]实施例三< br>[0060]图3为本发明实施例三提供的一种数据导出方法的流程图,本实施例为上述实施例基础上的优化,具体的,所述方法包括如下步骤:
[0061]步骤310、接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息。
[0062]步骤320、根据配置信息获取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式。
[0063]该步骤可以根据配置信息从数据库的数据字典中读取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式。具体的可以设置一阈值,设置导出数据表占用物理空间是大于该阈值时,开启并行导出模式。例如当所述导出数据表占用物理空间大于IG时,设置开启并行导出模式。
[0064]可选的,当根据所述导出数据表占用物理空间开启并行导出模式时,还可以根据操作系统资源使用率,设置并行导出模式的并行度。例如,根据操作系统资源使用率,动态调整并行度在4-8线程变化。操作系统资源使用率越低,设置并行度越高。
[0065]步骤330、根据所述配置信息,判断导出数据格式是否为插入语句格式。
[0066]当导出数据格式为插入语句格式时,依次执行步骤340、360 ;否则依次执行步骤350、360o
[0067]步骤340、生成数据库可执行的插入语句信息。
[0068]步骤350、生成数据库可执行的逗号分隔值语句信息。
[0069]步骤360、读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据。
[0070]步骤370、将所述导出数据写入文本文件。
[0071]本发明实施例通过根据配置信息获取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式,进一步提高了数据导出的速度,通过开启并行导出模式,与传统的spool方式相比,数据导出速度提高了 10-50倍。
[0072]在上述各实施例的基础上,可选的,在将所述导出数据写入文本文件之前,还包括:
[0073]步骤380、判断所述导出数据的编码格式与所述配置信息是否一致;
[0074]所述导出数据的编码格式与所述配置信息不一致时,依次执行步骤390、370;否贝IJ,执行步骤370。
[0075]步骤390、将所述导出数据的编码格式转换为所述配置信息中的编码格式。
[0076]例如数据的编码格式有GBK格式和UTF8格式。GBK即汉字内码扩展规范,GBK采用双字节表示,总体编码范围为8140-FEFE,首字节在81-FE之间,尾字节在40-FE之间,剔除xx7F —条线。总计23940个码位,共收入21886个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。UTF-8 (8-bit Unicode Transformat1n Format)又称万国码。UTF-8则包含全世界所有国家需要用到的字符。UTF-8用I到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。首先,判断导出数据的编码格式与配置信息中的编码格式是否一致,若不一致,将所述导出数据的编码格式转换为所述配置信息中的编码格式。示例性的,配置信息中的编码格式为UTF8格式,而导出数据的编码格式为GBK格式,那么就需要将导出数据的编码格式由GBK格式转换为UTF8格式,然后再将导出数据写入文本文件。
[0077]实施例四
[0078]图4为本发明实施例四提供的一种数据导出装置的结构示意图。如图4所示该装置包括:
[0079]配置信息设置模块41,用于接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息;
[0080]解析模块42,用于根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息;
[0081]数据格式转换模块43,用于根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据;
[0082]导出模块44,用于将所述导出数据写入文本文件。
[0083]本发明实施例通过根据用户的导出数据请求任务设置配置信息,导出数据时,只需根据不同导出数据请求任务设置不同的配置信息即可完成相应的导出数据任务,解决了现有技术中针对每个导出数据任务分别编写程序的问题,节省了运维成本。此外,本发明实施例所述的方法无需生成日志文件并在屏幕滚动显示,而是直接将导出数据写入文本文件,因此导出速度快。
[0084]在上述实施例的基础上,可选的,所述解析模块包括:
[0085]导出数据格式判断单元,用于根据所述配置信息,判断导出数据格式是否为插入语句格式,若是,则生成数据库可执行的插入语句信息;否则,生成数据库可执行的逗号分隔值语句信息。
[0086]在上述实施例的基础上,可选的,所述装置还包括:
[0087]并行判断模块,用于根据配置信息获取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式。
[0088]在上述实施例的基础上,当所述装置包括并行判断模块时,可选的,所述装置还包括:
[0089]并行度设置模块,根据操作系统资源使用率,设置并行导出模式的并行度。
[0090]在上述实施例的基础上,所述装置还包括:
[0091]编码格式转换模块,用于判断所述导出数据的编码格式与所述配置信息是否一致,并在不一致时,将所述导出数据的编码格式转换为所述配置信息中的编码格式。
[0092]上述装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
[0093]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种数据导出方法,其特征在于,包括: 接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息; 根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息; 根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据; 将所述导出数据写入文本文件。2.根据权利要求1所述的方法,其特征在于,所述根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息,包括: 根据所述配置信息,判断导出数据格式是否为插入语句格式,若是,则生成数据库可执行的插入语句信息;否则,生成数据库可执行的逗号分隔值语句信息。3.根据权利要求1所述的方法,其特征在于,在接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息之后,还包括: 根据配置信息获取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式。4.根据权利要求3所述的方法,其特征在于,当根据所述导出数据表占用物理空间开启并行导出模式时,还包括: 根据操作系统资源使用率,设置并行导出模式的并行度。5.根据权利要求1所述的方法,其特征在于,在将所述导出数据写入文本文件之前,还包括: 判断所述导出数据的编码格式与所述配置信息是否一致,并在不一致时,将所述导出数据的编码格式转换为所述配置信息中的编码格式。6.一种数据导出装置,其特征在于,包括: 配置信息设置模块,用于接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息; 解析模块,用于根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息; 数据格式转换模块,用于根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据; 导出模块,用于将所述导出数据写入文本文件。7.根据权利要求6所述的装置,其特征在于,所述解析模块包括: 导出数据格式判断单元,用于根据所述配置信息,判断导出数据格式是否为插入语句格式,若是,则生成数据库可执行的插入语句信息;否则,生成数据库可执行的逗号分隔值语句信息。8.根据权利要求6所述的装置,其特征在于,还包括: 并行判断模块,用于根据配置信息获取导出数据表占用物理空间,并根据所述导出数据表占用物理空间判断是否开启并行导出模式。9.根据权利要求8所述的装置,其特征在于,还包括: 并行度设置模块,根据操作系统资源使用率,设置并行导出模式的并行度。10.根据权利要求6所述的装置,其特征在于,还包括: 编码格式转换模块,用于判断所述导出数据的编码格式与所述配置信息是否一致,并在不一致时,将所述导出数据的编码格式转换为所述配置信息中的编码格式。
【专利摘要】本发明公开了一种数据导出方法和装置。所述数据导出方法包括:接收用户的导出数据请求任务,并根据所述导出数据请求任务设置配置信息;根据所述配置信息,确定导出数据格式,并根据导出数据格式生成数据库可执行语句信息;根据所述数据库可执行语句信息,读取需要导出的数据,并将需要导出的数据转换为对应格式的导出数据;将所述导出数据写入文本文件,实现了自动完成不同格式的导出数据的导出工作,提高导出速度,节省运维成本。
【IPC分类】G06F17/30
【公开号】CN104881469
【申请号】CN201510280295
【发明人】李亮光
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2015年9月2日
【申请日】2015年5月27日
转载请注明原文地址:https://www.famiwei.com/read-8138606.html

最新回复(0)