CN110347673A - 数据文件加载方法、装置、计算机设备以及存储介质 - Google Patents

数据文件加载方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN110347673A
CN110347673A CN201910462330.5A CN201910462330A CN110347673A CN 110347673 A CN110347673 A CN 110347673A CN 201910462330 A CN201910462330 A CN 201910462330A CN 110347673 A CN110347673 A CN 110347673A
Authority
CN
China
Prior art keywords
data
file
parameter
tables
sqlloader
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910462330.5A
Other languages
English (en)
Inventor
李海东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN201910462330.5A priority Critical patent/CN110347673A/zh
Publication of CN110347673A publication Critical patent/CN110347673A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据文件加载方法、装置、计算机设备以及存储介质,本发明包括创建指定表结构的数据表;读取控制文件和数据文件;获取针对数据装配工具所配置的参数;判断数据文件的数据格式是否与数据表的表结构相匹配;若数据文件的数据格式与数据表的表结构相匹配,判断所读取的数据文件的文件数量是否大于数据装配工具的参数的文件加载限额值;若数据文件的文件数量大于所述参数的文件加载限额值,根据所述文件加载限额值对数据文件进行拆分,得到多个子数据文件;启动数据装配工具的多个子进程对多个子数据文件进行并行加载,以将多个子数据文件加载至所述数据表。本发明基于数据处理实现数据文件的并行加载,并提高文件加载的效率。

Description

数据文件加载方法、装置、计算机设备以及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据文件加载方法、装置、计算机设备以及存储介质。
背景技术
目前,对于账户管理系统决策中所需要的变量文件的加载,传统的数据文件加载方式使用的是数据加载工具进行加载,但传统的数据加载工具不支持文件内部及文件间并行加载,另外,传统的数据文件加载方式限于海量数据本身的数据量大、信息量大、实时产生等特性,单纯的加载数据不可避免的导致加载效率低效。
发明内容
有鉴于此,本发明实施例提供一种数据文件加载方法、装置、计算机设备以及存储介质,能够实现数据文件的并行加载,并提高文件加载的效率。
一方面,本发明实施例提供一种数据文件加载方法,所述方法包括如下步骤:
创建需要导入数据的指定表结构的数据表;
读取控制文件和数据文件;
获取针对数据装配工具SQLLoader所配置的参数;
判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;
若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;
若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;
根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
另一方面,本发明实施例提供一种数据文件加载装置,所述装置包括:
创建单元,用于创建需要导入数据的指定表结构的数据表;
读取单元,用于读取控制文件和数据文件;
获取单元,用于获取针对数据装配工具SQLLoader所配置的参数;
第一判断单元,用于判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;
第二判断单元,用于若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;
拆分单元,用于若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;
启动加载单元,用于根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
又一方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上所述的数据文件加载方法。
再一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现如上所述的数据文件加载方法。
由以上可见,本发明实施例一种数据文件加载方法、装置、计算机设备以及存储介质通过创建需要导入数据的指定表结构的数据表;读取控制文件和数据文件;获取针对数据装配工具SQLLoader所配置的参数;判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。利用本发明能够实现数据文件的并行加载,并提高文件加载的效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据文件加载方法的应用场景示意图;
图2为本发明实施例提供的一种数据文件加载方法的示意流程图;
图3为本发明实施例提供的一种数据文件加载方法的另一示意流程图;
图4为本发明实施例提供的一种数据文件加载方法的另一示意流程图;
图5为本发明实施例提供的一种数据文件加载方法的另一示意流程图;
图6为本发明实施例提供的一种数据文件加载装置的示意性框图;
图7为本发明实施例提供的一种数据文件加载装置的另一示意性框图;
图8为本发明实施例提供的一种数据文件加载装置的另一示意性框图;
图9为本发明实施例提供的一种数据文件加载装置的另一示意性框图;
图10为本发明实施例提供的一种数据文件加载装置的另一示意性框图;
图11为本发明实施例提供的一种计算机设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的一种数据文件加载方法的应用场景示意图,所述应用场景包括:
(1)服务器,服务器用于提供数据传输的后端服务。服务器为一种计算机设备,可以为单台服务器或者服务器集群,也可以为云服务器,或者为专门的网页服务器,接收外部终端的访问,通过有线网络或者无线网络与终端连接。
(2)终端,图1所示终端包括终端1、终端2和终端3,所述终端通过访问服务器,从服务器上获取目标数据,在终端上将所获取的数据文件加载至终端上的数据库数据表中。所述终端可以为智能手机、智能手表、笔记本电脑、平板电脑或者台式电脑等电子设备,终端通过有线网络或者无线网络访问服务器。
请参阅图2,图2为本发明实施例一种数据文件加载方法的示意流程图,如图2所示,该方法包括以下步骤S101~S107。
步骤S101,创建需要导入数据的指定表结构的数据表。
在本发明实施例中,使用SQL语言(Structured Query Language,结构化查询语言)创建需要导入数据的指定表结构的数据表,其中,所创建的数据表存储在目标数据库中,并利用该目标数据库通过并行加载的方式加载需要导入的数据;具体的,在本实施例中使用SQL语言的CREATE TABLE语句创建指定表结构的数据表;其中,指定表结构指的是根据所导入的数据进行确定,该指定表结构具有确定的指定表名称、列名称、数据类型和数据类型的位数,例如指定表名称为test,列名称为host,数据类型为VARCHAR2,数据类型的位数为30。
具体的,如图3所示,所述步骤S101包括以下步骤S201~S202:
步骤S201,确定所要创建的指定表结构的数据表的表名称、列名称、数据类型和数据类型的最大位数。
步骤S202,根据所确定的表名称、列名称、数据类型和数据类型的最大位数,使用SQL语言的CREATE TABLE语句创建所述指定表结构的数据表。
在本发明实施例中,使用SQL语言的CREATE TABLE语句创建所述指定表结构的数据表,创建所述数据表的格式如下:CREATE TABLE表名称(列名称1数据类型(数据类型的最大位数),列名称2数据类型(数据类型的最大位数),列名称3数据类型(数据类型的最大位数),...)。
步骤S102,读取控制文件和数据文件。
在本发明实施例中,所述控制文件是用来控制数据文件中的数据导入至Oracle数据库中,所述数据文件是指需要导入的数据文件,在该数据文件中包括有需要导入的数据;其中,所述控制文件可以根据自己的需要添加相关的控制参数,在一般情况下,所述控制文件由以下几行程序代码组成,包括:第一行,LOAD DATA表示SQLLoader需要加载数据;第二行,INFILE*表示数据从哪里来;第三行,INTO TABLE表示数据要导到哪里;第四行,FIELDSTERMINATED BY表示数据之间用什么符号分隔;第五行,“(*,*)”表示数据需要按什么顺序写到列里面;第六行,BEGINDATA是表示控制文件后面的都是数据文件的数据;在一般情况下,在控制文件后面只需配置数据文件的文件地址,在执行读取数据文件的文件地址时,通过所配置的数据文件的文件地址获得数据文件的数据,该数据文件可以由数据装配工具SQLLoader生成,也可以由其他终端生成,并将该数据文件通过数据装配工具SQLLoader加载至目标数据库中的数据表。
步骤S103,获取针对数据装配工具SQLLoader所配置的参数。
在本发明实施例中,设置数据装配工具SQLLoader的ROWS参数为10,表示每10行数据提交一次;设置数据装配工具SQLLoader的BINDSIZE参数为600Bytes,表示每次提交记录的缓冲区的最大值;设置数据装配工具SQLLoader的READ BUFFER参数为200Bytes,表示读取缓冲区的大小。其中,每次读取的记录数必须小于ROWS参数的值,并且大小不得超过BINDSIZE参数的值。
需要说明的是,SQLLoader的参数还包括DIRECT参数、PARALLEL参数、ERROR参数等;其中,DIRECT参数用于设定SQLLoader使用直接路径加载,可以选择性地设定为true;PARALLEL参数用于设定SQLLoader使用并行加载,在本实施例中可以选择性地设定为true。
步骤S104,判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配。
在本发明实施例中,所述数据文件的数据格式需要与目标数据库中所创建的数据表的表结构相匹配,以便数据文件中的数据加载至符合数据格式的数据表中,若数据文件中的数据的数据格式与所创建的数据表的表结构不匹配,则数据文件中的数据将无法加载至对应的数据表中;其中,判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配的标准是:第一,数据文件中的数据的数据类型与目标数据库中数据表的表结构对应的数据类型;第二,数据的数据类型的位数与目标数据库中数据表的表结构对应的数据类型的最大位数。若数据文件中的数据的数据类型与目标数据库中数据表的表结构对应的数据类型相匹配,且数据的数据类型的位数不超过目标数据库中数据表的表结构对应的数据类型的最大位数,则所述数据文件的数据格式与所创建的数据表的表结构相匹配。
具体的,如图4所示,所述步骤S104包括以下步骤S301~S303:
步骤S301,分析所述数据文件中数据的数据格式。
在本发明实施例中,数据的数据格式包括数据类型、数据类型对应的位数、数据大小等;其中,数据类型可以包括布尔型(boolean)、字节型(byte)、整型(int)、短整型(short)、长整型(long)和单精度浮点型(float)等,数据类型对应的位数可以根据数据本身的大小自行定义,一般情况下,对于字节型的数据取值范围为0-255byte。
步骤S302,根据所述数据文件中数据的数据格式确定数据的数据类型以及数据类型位数。
在本发明实施例中,通过分析数据文件中的数据,获取数据具体的数据格式,通过所获取的数据格式从而确定数据的属性,包括数据的数据类型(如boolean、byte或者int等),以及所确定的数据类型的位数,例如,对于短整型的数据类型占的位数为16位、长整型32位以及整型16等等。
步骤S303,若所确定的数据的数据类型与所创建的数据表的数据类型相对应且所确定的数据的数据类型位数与所创建的数据表的最大位数相对应,判定所述数据文件的数据格式与所创建的数据表的表结构相匹配。
在本发明实施例中,所确定的数据的数据类型与所创建的数据表的数据类型相对应指的是所确定的数据的数据类型与所创建的数据表的数据类型相同,所确定的数据的数据类型位数与所创建的数据表的最大位数相对应指的是所确定的数据的数据类型位数与所创建的数据表的最大位数相同,或者所确定的数据的数据类型位数不超过所创建的数据表的最大位数;所述数据文件的数据格式需要与目标数据库中所创建的数据表的表结构相匹配,以便数据文件中的数据加载至符合数据格式的数据表中,若数据的数据类型的位数不超过目标数据库中数据表的表结构对应的数据类型的最大位数,则所述数据文件的数据格式与所创建的数据表的表结构相匹配。
步骤S105,若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值。
在本发明实施例中,所述文件加载限额值指的是数据装配工具SQLLoader的参数能够加载数据文件可以达到的最大数值;若所读取的数据文件的文件数量小于所配置的数据装配工具SQLLoader的参数的文件加载限额值,则说明加载此部分数据文件中的数据不会影响数据装配工具SQLLoader的加载性能;若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,则说明加载此部分数据文件中的数据已经影响数据装配工具SQLLoader的加载性能,理由为所加载的数据文件的数量已经严重超过数据装配工具SQLLoader的参数所规定的文件加载限额值,因此,为了能够提高数据的加载效率,提高系统性能优化,需要对数据文件进行拆分。
步骤S106,若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件。
在本发明实施例中,若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,则将数据文件按照顺序拆分为m个子数据文件,其中第一个子数据文件到第m-1个子数据文件的文件数量等于所述数据装配工具SQLLoader的参数的文件加载限额值,其中,拆分得到的多个子文件中,不同子文件的数据量可以相等,也可以不等,本发明实施例对此不做限定;在本实施例中,使用操作系统命令对数据文件进行拆分,针对不同的操作系统使用的拆分命令不相同,例如,本实施例以LINUX操作系统为例进行说明,对于LINUX操作系统使用SPLIT命令将一个文件拆分成若干个子文件,拆分的方式包括如下:1、以行数进行拆分,命令的格式为:“SPLIT-1行数大小原始文件拆分后文件名前缀”,即表示将原始文件以固定行数对文件进行拆分;2、以大小进行拆分,命令的格式为:“SPLIT-b文件大小原始文件拆分后文件名前缀”,即表示将原始文件以固定文件大小进行拆分。
具体的,如图5所示,所述步骤S106包括以下步骤S401~S402:
步骤S401,将所述数据文件按照文件顺序拆分为m个所述子数据文件,其中,第一个子数据文件到第m-1个子数据文件的文件数量等于所述数据装配工具SQLLoader的参数的文件加载限额值。
在本发明实施例中,将所述数据文件按照文件顺序拆分为m个所述子数据文件,其中,m的值是根据所述数据装配工具SQLLoader的参数的文件加载限额值来确定的,也就是说,当所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,以数据装配工具SQLLoader的参数的文件加载限额值按照顺序拆分数据文件,其中,第一个子数据文件到第m-1个子数据文件的文件数量等于所述数据装配工具SQLLoader的参数的文件加载限额值。具体的,在对所述数据文件进行拆分时,选择数据文件中的第一个数据作为拆分起始点。
步骤S402,删除最后划分部分的子数据文件。
步骤S107,根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
在本发明实施例中,在将该数据文件拆分为多个子数据文件后,为每个子数据文件创建一个对应的子进程,再根据创建的多个子进程,并行地将多个子数据文件加载至所述数据表中。
与现有技术相比,本发明实施例一种数据文件加载方法具有如下有益效果:
本发明实施例一种数据文件加载方法通过创建需要导入数据的指定表结构的数据表;读取控制文件和数据文件;获取针对数据装配工具SQLLoader所配置的参数;判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。利用本发明能够实现数据文件的并行加载,并提高文件加载的效率。
请参阅图6,对应上述一种数据文件加载方法,本发明实施例还提出一种数据文件加载装置,如图6所示,该数据文件加载装置100包括创建单元101、读取单元102、配置单元103、第一判断单元104、第二判断单元105、拆分单元106、启动加载单元107,其中,
创建单元101,用于创建需要导入数据的指定表结构的数据表;
读取单元102,用于读取控制文件和数据文件;
获取单元103,用于获取针对数据装配工具SQLLoader所配置的参数;
第一判断单元104,用于判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;
第二判断单元105,用于若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;
拆分单元106,用于若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;
启动加载单元107,用于根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
在一些实施方式中,如图7所示,所述创建单元101,包括:
第一确定单元101a,用于确定所要创建的指定表结构的数据表的表名称、列名称、数据类型和数据类型的最大位数;
创建子单元101b,用于根据所确定的表名称、列名称、数据类型和数据类型的最大位数,使用SQL语言的CREATE TABLE语句创建所述指定表结构的数据表。
在一些实施方式中,如图8所示,所述获取单元103,包括:
获取子单元103a,用于获取数据装配工具SQLLoader的ROWS参数、BINDSIZE以及参数READ BUFFER参数,其中,每次读取的记录数必须小于ROWS参数的值,并且大小不得超过BINDSIZE参数的值。
在一些实施方式中,如图9所示,所述判断单元104,包括:
分析单元104a,用于分析所述数据文件中数据的数据格式;
第二确定单元104b,用于根据所述数据文件中数据的数据格式确定数据的数据类型以及数据类型位数;
判定单元104c,用于若所确定的数据的数据类型与所创建的数据表的数据类型相对应且所确定的数据的数据类型位数与所创建的数据表的最大位数相对应,判定所述数据文件的数据格式与所创建的数据表的表结构相匹配。
在一些实施例中,如图10所示,所述拆分单元106,包括:
拆分子单元106a,用于将所述数据文件按照文件顺序以及预设空间拆分为m个所述子数据文件,其中,第一个子数据文件到第m-1个子数据文件的文件数量等于所述数据装配工具SQLLoader的参数的文件加载限额值;
删除单元106b,用于删除最后划分部分的子数据文件。
由以上可见,本发明实施例通过创建需要导入数据的指定表结构的数据表;读取控制文件和数据文件;获取针对数据装配工具SQLLoader所配置的参数;判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。利用本发明能够实现数据文件的并行加载,并提高文件加载的效率。
上述数据文件加载装置与录音文件格式转换上述方法一一对应,其具体的原理和过程与上述实施例所述方法相同,不再赘述。
上述数据文件加载装置可以实现为一种计算机程序的形式,计算机程序可以在如图11所示的计算机设备上运行。
图11为本发明一种计算机设备的结构组成示意图。该设备可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式装置等具有通信功能和语音输入功能的电子装置。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。参照图11,该计算机设备500包括通过系统总线501连接的处理器502、非易失性存储介质503、内存储器504和网络接口505。其中,该计算机设备500的非易失性存储介质503可存储操作系统5031和计算机程序5032,该计算机程序5032被执行时,可使得处理器502执行一种数据文件加载方法。该计算机设备500的处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序被处理器执行时,可使得处理器502执行一种数据文件加载方法。计算机设备500的网络接口505用于进行网络通信。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502执行所述计算机程序时实现如下操作:
创建需要导入数据的指定表结构的数据表;
读取控制文件和数据文件;
获取针对数据装配工具SQLLoader所配置的参数;
判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;
若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;
若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;
根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
在一个实施例中,所述创建需要导入数据的指定表结构的数据表,包括:
确定所要创建的指定表结构的数据表的表名称、列名称、数据类型和数据类型的最大位数;
根据所确定的表名称、列名称、数据类型和数据类型的最大位数,使用SQL语言的CREATE TABLE语句创建所述指定表结构的数据表。
在一个实施例中,所述获取针对数据装配工具SQLLoader所配置的参数,包括:
获取数据装配工具SQLLoader的ROWS参数、BINDSIZE以及参数READ BUFFER参数,其中,每次读取的记录数必须小于ROWS参数的值,并且大小不得超过BINDSIZE参数的值。
在一个实施例中,所述判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配,包括:
分析所述数据文件中数据的数据格式;
根据所述数据文件中数据的数据格式确定数据的数据类型以及数据类型位数;
若所确定的数据的数据类型与所创建的数据表的数据类型相对应且所确定的数据的数据类型位数与所创建的数据表的最大位数相对应,判定所述数据文件的数据格式与所创建的数据表的表结构相匹配。
在一个实施例中,所述根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件,包括:
将所述数据文件按照文件顺序以及预设空间拆分为m个所述子数据文件,其中,第一个子数据文件到第m-1个子数据文件的文件数量等于所述数据装配工具SQLLoader的参数的文件加载限额值;
删除最后划分部分的子数据文件。
本领域技术人员可以理解,图11中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图11所示实施例一致,在此不再赘述。
本发明提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现以下步骤:
创建需要导入数据的指定表结构的数据表;
读取控制文件和数据文件;
获取针对数据装配工具SQLLoader所配置的参数;
判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;
若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;
若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;
根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
在一个实施例中,所述创建需要导入数据的指定表结构的数据表,包括:
确定所要创建的指定表结构的数据表的表名称、列名称、数据类型和数据类型的最大位数;
根据所确定的表名称、列名称、数据类型和数据类型的最大位数,使用SQL语言的CREATE TABLE语句创建所述指定表结构的数据表。
在一个实施例中,所述获取针对数据装配工具SQLLoader所配置的参数,包括:
获取数据装配工具SQLLoader的ROWS参数、BINDSIZE以及参数READ BUFFER参数,其中,每次读取的记录数必须小于ROWS参数的值,并且大小不得超过BINDSIZE参数的值。
在一个实施例中,所述判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配,包括:
分析所述数据文件中数据的数据格式;
根据所述数据文件中数据的数据格式确定数据的数据类型以及数据类型位数;
若所确定的数据的数据类型与所创建的数据表的数据类型相对应且所确定的数据的数据类型位数与所创建的数据表的最大位数相对应,判定所述数据文件的数据格式与所创建的数据表的表结构相匹配。
在一个实施例中,所述根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件,包括:
将所述数据文件按照文件顺序以及预设空间拆分为m个所述子数据文件,其中,第一个子数据文件到第m-1个子数据文件的文件数量等于所述数据装配工具SQLLoader的参数的文件加载限额值;
删除最后划分部分的子数据文件。
本发明前述的存储介质包括:磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等各种可以存储程序代码的介质。
本发明所有实施例中的单元可以通过通用集成电路,例如CPU(CentralProcessing Unit,中央处理器),或通过ASIC(Application Specific IntegratedCircuit,专用集成电路)来实现。
本发明实施例数据文件加载方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例数据文件加载装置中的单元可以根据实际需要进行合并、划分和删减。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据文件加载方法,其特征在于,所述方法包括如下步骤:
创建需要导入数据的指定表结构的数据表;
读取控制文件和数据文件;
获取针对数据装配工具SQLLoader所配置的参数;
判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;
若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;
若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;
根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
2.如权利要求1所述的数据文件加载方法,其特征在于,所述创建需要导入数据的指定表结构的数据表,包括:
确定所要创建的指定表结构的数据表的表名称、列名称、数据类型和数据类型的最大位数;
根据所确定的表名称、列名称、数据类型和数据类型的最大位数,使用SQL语言的CREATE TABLE语句创建所述指定表结构的数据表。
3.如权利要求1所述的数据文件加载方法,其特征在于,所述获取针对数据装配工具SQLLoader所配置的参数,包括:
获取数据装配工具SQLLoader的ROWS参数、BINDSIZE以及参数READ BUFFER参数,其中,每次读取的记录数必须小于ROWS参数的值,并且大小不得超过BINDSIZE参数的值。
4.如权利要求1所述的数据文件加载方法,其特征在于,所述判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配,包括:
分析所述数据文件中数据的数据格式;
根据所述数据文件中数据的数据格式确定数据的数据类型以及数据类型位数;
若所确定的数据的数据类型与所创建的数据表的数据类型相对应且所确定的数据的数据类型位数与所创建的数据表的最大位数相对应,判定所述数据文件的数据格式与所创建的数据表的表结构相匹配。
5.如权利要求1所述的数据文件加载方法,其特征在于,所述根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件,包括:
将所述数据文件按照文件顺序拆分为m个所述子数据文件,其中,第一个子数据文件到第m-1个子数据文件的文件数量等于所述数据装配工具SQLLoader的参数的文件加载限额值;
删除最后划分部分的子数据文件。
6.一种数据文件加载装置,其特征在于,所述数据文件加载装置包括:
创建单元,用于创建需要导入数据的指定表结构的数据表;
读取单元,用于读取控制文件和数据文件;
获取单元,用于获取针对数据装配工具SQLLoader所配置的参数;
第一判断单元,用于判断所述数据文件的数据格式是否与所创建的数据表的表结构相匹配;
第二判断单元,用于若所述数据文件的数据格式与所创建的数据表的表结构相匹配,根据所配置的数据装配工具SQLLoader的参数,判断所读取的数据文件的文件数量是否大于所配置的数据装配工具SQLLoader的参数的文件加载限额值;
拆分单元,用于若所读取的数据文件的文件数量大于所配置的数据装配工具SQLLoader的参数的文件加载限额值,根据所述数据装配工具SQLLoader的参数的文件加载限额值对所述数据文件进行拆分,得到多个子数据文件;
启动加载单元,用于根据所述多个子数据文件,启动所述数据装配工具SQLLoader的多个子进程对所述多个子数据文件进行并行加载,以将所述多个子数据文件加载至所述数据表。
7.如权利要求6所述的数据文件加载装置,其特征在于,所述创建单元,包括:
第一确定单元,用于确定所要创建的指定表结构的数据表的表名称、列名称、数据类型和数据类型的最大位数;
创建子单元,用于根据所确定的表名称、列名称、数据类型和数据类型的最大位数,使用SQL语言的CREATE TABLE语句创建所述指定表结构的数据表。
8.如权利要求6所述的数据文件加载装置,其特征在于,所述获取单元,包括:
获取子单元,用于获取数据装配工具SQLLoader的ROWS参数、BINDSIZE以及参数READBUFFER参数,其中,每次读取的记录数必须小于ROWS参数的值,并且大小不得超过BINDSIZE参数的值。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述的数据文件加载方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现如权利要求1-5任一项所述的数据文件加载方法。
CN201910462330.5A 2019-05-30 2019-05-30 数据文件加载方法、装置、计算机设备以及存储介质 Pending CN110347673A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910462330.5A CN110347673A (zh) 2019-05-30 2019-05-30 数据文件加载方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910462330.5A CN110347673A (zh) 2019-05-30 2019-05-30 数据文件加载方法、装置、计算机设备以及存储介质

Publications (1)

Publication Number Publication Date
CN110347673A true CN110347673A (zh) 2019-10-18

Family

ID=68174457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910462330.5A Pending CN110347673A (zh) 2019-05-30 2019-05-30 数据文件加载方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN110347673A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125769A (zh) * 2019-12-27 2020-05-08 上海轻维软件有限公司 基于oracle数据库的海量数据脱敏方法
CN111597244A (zh) * 2020-05-19 2020-08-28 北京思特奇信息技术股份有限公司 一种数据快速导入的方法、系统及计算机存储介质
CN112001160A (zh) * 2020-08-27 2020-11-27 中国平安财产保险股份有限公司 数据处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077241A (zh) * 2013-01-10 2013-05-01 中国银行股份有限公司 将文件拆分后并行加载数据入库的方法
US20140114924A1 (en) * 2012-10-19 2014-04-24 International Business Machines Corporation Data loading tool
CN105869048A (zh) * 2016-03-28 2016-08-17 中国建设银行股份有限公司 一种数据处理方法及系统
CN106934037A (zh) * 2017-03-15 2017-07-07 郑州云海信息技术有限公司 一种高并发实现数据库快速加载数据的方法
CN109726244A (zh) * 2019-01-29 2019-05-07 北京中电普华信息技术有限公司 数据导入方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140114924A1 (en) * 2012-10-19 2014-04-24 International Business Machines Corporation Data loading tool
CN103077241A (zh) * 2013-01-10 2013-05-01 中国银行股份有限公司 将文件拆分后并行加载数据入库的方法
CN105869048A (zh) * 2016-03-28 2016-08-17 中国建设银行股份有限公司 一种数据处理方法及系统
CN106934037A (zh) * 2017-03-15 2017-07-07 郑州云海信息技术有限公司 一种高并发实现数据库快速加载数据的方法
CN109726244A (zh) * 2019-01-29 2019-05-07 北京中电普华信息技术有限公司 数据导入方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125769A (zh) * 2019-12-27 2020-05-08 上海轻维软件有限公司 基于oracle数据库的海量数据脱敏方法
CN111125769B (zh) * 2019-12-27 2023-09-19 上海轻维软件有限公司 基于oracle数据库的海量数据脱敏方法
CN111597244A (zh) * 2020-05-19 2020-08-28 北京思特奇信息技术股份有限公司 一种数据快速导入的方法、系统及计算机存储介质
CN112001160A (zh) * 2020-08-27 2020-11-27 中国平安财产保险股份有限公司 数据处理方法、装置、设备及存储介质
CN112001160B (zh) * 2020-08-27 2023-07-28 中国平安财产保险股份有限公司 数据处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN111241389B (zh) 一种基于矩阵的敏感词过滤方法、装置、电子设备、存储介质
CN108491475A (zh) 数据快速批量导入方法、电子装置及计算机可读存储介质
US20060294049A1 (en) Back-off mechanism for search
CN110347673A (zh) 数据文件加载方法、装置、计算机设备以及存储介质
CN112560100B (zh) 数据脱敏方法及装置、计算机可读存储介质、电子设备
CN106547911B (zh) 一种海量小文件的存取方法和系统
CN109542907A (zh) 数据库缓存构建方法、装置、计算机设备以及存储介质
US20100251227A1 (en) Binary resource format and compiler
CN105760192A (zh) 系统服务端业务模块的注册方法及装置
CN110532347A (zh) 一种日志数据处理方法、装置、设备和存储介质
CN110020358B (zh) 用于生成动态页面的方法和装置
CN109766085A (zh) 一种处理枚举类型代码的方法及装置
CN113672204A (zh) 一种接口文档生成方法、系统、电子设备及存储介质
CN109960554A (zh) 展示阅读内容的方法、设备和计算机存储介质
JP5699743B2 (ja) 検索方法、検索装置、ならびに、コンピュータプログラム
CN106202220A (zh) 一种读取对象存储系统中数据的方法以及装置
CN110502506A (zh) 一种数据处理方法、装置、设备和存储介质
CN110580212B (zh) 应用程序的数据导出方法、装置、电子设备及存储介质
US8595095B2 (en) Framework for integrated storage of banking application data
CN112162982A (zh) 数据查询方法、装置、设备及介质
US20130226619A1 (en) Input support device and input support method
CN110795920A (zh) 一种文档生成方法及设备
CN114968917A (zh) 一种文件数据快速导入方法及装置
CN100397399C (zh) 一种在fat文件系统中支持多国语言的方法及其装置
CN112632266B (zh) 数据写入方法、装置、计算机设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191018