数据批量导入方法、系统、计算机装置及可存储介质与流程

阅读: 评论:0



1.本发明涉及数据导入技术领域,特别涉及一种数据批量导入方法、系统、计算机装置及可存储介质。


背景技术:



2.数据导入作为系统常用的功能,几乎所有的系统都应该支持,主要用于系统初期,大批量初始化数据,或者需要输入的数据行比较多的情况。
3.导入模板是开发设计阶段时设计好的,行列的位置是固定的,再由程序按照这个设定进行读取数据和处理数据。
4.数据导入的一般过程是,用户按照模板格式excel文件,然后程序读取这个文件,根据列进行对应,逐行将数据写入到系统中;
5.一、cn102750368b公开了一种数据库集数据高速导入方法,其通过将数据导入功能封装为独立的数据导入驱动组件,通过数据导入驱动组件和数据库集的控制节点中的交互控制模块相互配合实现数据高速导入功能,将数据导入对cpu、内存与网络资源的使用转移至客户端,从而解放了控制节点,实现在尽可能少受数据库集干预的情况下完成数据的导入;同时,采用独立数据导入的方式,可以方便的通过增加客户端来实现并行导入,提升导入性能,从而满足企业对数据高速导入的要求;
6.二、cn110737636b公开了一种数据导入方法和装置以及设备,其通选中并读取用于放置可扩展标记语言数据文件的文件传输协议目录下的文件,对不同结构的可扩展标记语言数据文件进行解析,解析成匹配该文件传输协议目录下的文件格式,为该解析成的可扩展标记语言数据文件创建表结构,获取该经创建表结构后的可扩展标记语言数据文件的定量数据,根据该定量数据,对该经创建表结构后的可扩展标记语言数据文件进行准确性校验得到校验结果,将检验结果通过准确性校验的不同结构的可扩展标记语言数据文件导入到同一文件传输协议目录下的文件中,能够实现将不同数据结构的可扩展标记语言数据文件放置到同一文件传输协议目录下的文件中;
7.三、cn107145537b公开了一种表格数据导入方法及系统,其通过将有共同点的数据进行分组,然后使用批量验证的方式,提高了验证效率,节约了计算机资源;采用一个分组共用一个orm对象,提高了内存使用效率,减少了内存消耗;
8.上述技术方案提出了对数据导入的改进,但是,现有技术在数据批量导入领域,仍然存在以下问题:
9.1、以现有技术“一”为例,现有技术中,虽然通过采用独立数据导入的方式,可以方便的通过增加客户端来实现并行导入,但是业务对象的导入模板固定,不能自定义,不够灵活;
10.2、以现有技术“一”为例,现有技术中,虽然能够实现将不同数据结构的可扩展标记语言数据文件放置到同一文件传输协议目录下的文件中,但是如果批量导入的数据量大,处理效率不高;
11.3、以现有技术“一”为例,现有技术中,虽然过将有共同点的数据进行分组,然后使用批量验证的方式,提高了验证效率,节约了计算机资源,但是还存在业务系统达到一定规模时,业务对象间会有很多引用关系,批量导入数据时需要解决引用字段的数据转换问题,会影响导入的性能和效率问题;
12.为此,提出数据批量导入方法、系统、计算机装置及可存储介质。


技术实现要素:



13.有鉴于此,本发明实施例希望提供数据批量导入方法、系统、计算机装置及可存储介质,以解决或缓解现有技术中存在的技术问题,至少提供一种有益的选择。
14.专业术语解释:
15.业务对象,指的是领域内的概念类或现实世界中对象的可视化表示。
16.单据头,一个业务对象必须有且只有一个单据头。可以有多个子单据头,单据头和子单据头是1:1,相当于拆分表;
17.单据体,一个业务对象可以有0个或多个单据体。单据头和每个单据体都是1:n。单据体之间没有关联;
18.本发明实施例的技术方案是这样实现的:数据批量导入方法,包括以下步骤:
19.s1、加载程序加载根据业务对象模型的导入模板:所述导入模板包括业务对象的所有可导入字段;
20.s2、按需向导入模板内填充数据:按需保留需要导入的字段(列),并填充数据;
21.s3、匹配程序根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值;
22.s4、多线程读取-转换数据:
23.读取数据:从模板中读取数据,填充到业务对象的数据实体内;
24.转换数据,根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充;
25.s5、批量保存数据到数据库:保存处理单元从并发队列中批量获取数据,保存到数据库中。
26.进一步优选的:所述s1中,导入模板将单据头和单据体进行拉平处理。
27.进一步优选的:所述s3中,导入模板配置时,还包括设置行的匹配查字段,用于匹配已有数据并覆盖数据。
28.进一步优选的:所述s4中,读取数据步骤和转换数据步骤时,通过多线程执行,并行处理。
29.进一步优选的:所述读取数据步骤和转换数据步骤后,数据加入到并发队列中。
30.进一步优选的:所述s5中,数据保存至到数据库时,按单据头和单据体,分别填充到业务对象的数据实体里。
31.进一步优选的:所述数据保存时,控制批量处理的数据。
32.一种数据批量导入系统,包括:
33.加载模块,所述加载模块用于根据业务对象模型加载导入模板,所述导入模板包括业务对象的所有可导入字段;
34.填充模块,所述填充模块用于按需向导入模板内填充数据;
35.匹配模块,所述匹配模块用于根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值;
36.读取模块,所述读取模块用于从导入模块中,填充到业务对象的数据实体内;
37.转换模块,所述转换模块用于根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充;
38.存储模块,所述存储模块用于从并发队列中批量获取数据,保存到数据库中。
39.一种计算机设备,所述计算机设备包括处理器、与所述处理器耦接的存储器,所述存储器中存储有程序指令,所述程序指令被所述处理器执行时,使得所述处理器执行如上述中任一项所述的数据批量导入方法的步骤。
40.一种存储介质,存储有能够实现如上述任一项所述的数据批量导入方法的程序指令。
41.本发明实施例由于采用以上技术方案,其具有以下优点:
42.一、本发明通过生成导入模板,并按需向导入模板内填充数据,相比现有技术的定制导入模板,本办法中的自定义模板灵活性更高,适用性更强。
43.二、本发明通过根据匹配程序根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值,进行导入,在批量导入的数据量大的情况下时,处理效率更高。
44.三、本发明通过读取数据,从模板中读取数据,并按单据头和单据体,分别填充到业务对象的数据实体里,同时并行根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充,采用将读取和转换分为两个并行的处理单元,并且通过多线程来执行,提升处理效率,导入的性能和效率更高。
45.上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
46.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
47.图1为本发明方法的流程图;
48.图2为本发明导入模板配置的示意图;
49.图3为本发明输入导入系统的系统模块图;
50.图4为本发明计算机设备的结构示意图。
具体实施方式
51.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本技术保护的范围。
52.本技术中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本技术实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
53.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
54.实施例一
55.如图1-4所示,本发明实施例提供了数据批量导入方法,包括以下步骤:
56.s1、加载程序加载根据业务对象模型的导入模板:所述导入模板包括业务对象的所有可导入字段;
57.s2、按需向导入模板内填充数据:按需保留需要导入的字段(列),并填充数据;
58.s3、配置导入模板:如图2所示,匹配程序根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值;
59.s4、多线程读取-转换数据:
60.读取数据:从模板中读取数据,填充到业务对象的数据实体内;
61.转换数据,根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充;
62.业务系统达到一定规模时,业务对象间会有很多引用关系。批量导入数据时需要解决引用字段的数据转换问题,会影响导入的性能和效率问题。
63.本方法将读取和转换分为两个并行的处理单元,并且通过多线程来执行,提升处理效率。
64.读取数据,根据s3的配置,从模板中读取数据,并按单据头和单据体,分别填充到业务对象的数据实体里。
65.转换数据,根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充;
66.s5、批量保存数据到数据库:保存处理单元从并发队列中批量获取数据,保存到数据库中。
67.本实施例中,具体的:所述s1中,导入模板将单据头和单据体进行拉平处理。
68.本实施例中,具体的:所述s3中,导入模板配置时,还包括设置行的匹配查字段,用于匹配已有数据并覆盖数据。
69.本实施例中,具体的:所述s4中,读取数据步骤和转换数据步骤时,通过多线程执行,并行处理。
70.本实施例中,具体的:所述读取数据步骤和转换数据步骤后,数据加入到并发队列中。
71.本实施例中,具体的:所述s5中,数据保存至到数据库时,按单据头和单据体,分别填充到业务对象的数据实体里。
72.本实施例中,具体的:所述数据保存时,控制批量处理的数据。
73.一种数据批量导入系统,包括:
74.加载模块,所述加载模块用于根据业务对象模型加载导入模板,所述导入模板包括业务对象的所有可导入字段;
75.填充模块,所述填充模块用于按需向导入模板内填充数据;
76.匹配模块,所述匹配模块用于根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值;
77.读取模块,所述读取模块用于从导入模块中,填充到业务对象的数据实体内;
78.转换模块,所述转换模块用于根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充;
79.存储模块,所述存储模块用于从并发队列中批量获取数据,保存到数据库中。
80.关于上述实施例数据批量导入系统中各模块实现技术方案的其他细节,可参见上述实施例中的数据批量导入方法中的描述,此处不再赘述。
81.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
82.一种计算机设备,所述计算机设备包括处理器、与所述处理器耦接的存储器,所述存储器中存储有程序指令,所述程序指令被所述处理器执行时,使得所述处理器执行如上述中任一项所述的数据批量导入方法的步骤。
83.处理器是一种集成电路芯片,具有信号的处理能力。处理器还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
84.一种存储介质,存储有能够实现如上述任一项所述的数据批量导入方法的程序指令,其中,该程序指令可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等计算机设备。服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
85.实施例二
86.本发明还提供了一种采用实施例一数据导入方法步骤的另一个实施例,具体步骤
如下所示:
87.(1)生成导入模板
88.根据业务对象的模型生成导入模板,此模板包含业务对象的所有可导入字段,可导入字段导入前自定义设置,如,设置字段属性为:商品、基本信息、整单、属性明细、产品销售组织、单位明细和包装明细;导入模板将单据头和单据体进行拉平处理,降低数据填充的学习成本。
89.(2)往导入模板按需填充数据
90.在第1步的基础上,按需保留需要导入的字段(列),并填充数据;
91.如:保留商品、基本信息等单据字段;
92.(3)配置导入模板
93.在第2步的基础上,把模板文件上传后,系统根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值,如图2所示:
94.导入单据字段:商品_编码、商品_名称、商品_k3主物料云链id、商品_k3子物料名称、基本信息_标准套件方案、基本信息_可单独销售、基本信息_商品详情描述、商品_是否启用材质辅助属性、商品_是否启用颜辅助属性;
95.接着进行匹配查字段,匹配查依据包括:【整单】查依据、【属性明细】行查、【产品销售组织】行查、【单位明细】行查、【包装明细】行查;
96.同时可设置行的匹配查字段,用于匹配已有数据并覆盖数据。
97.(4)多线程读取-转换数据
98.业务系统达到一定规模时,业务对象间会有很多引用关系。批量导入数据时需要解决引用字段的数据转换问题,会影响导入的性能和效率问题。
99.本办法将读取和转换分为两个并行的处理单元,并且通过多线程来执行,提升处理效率。
100.读取数据,根据第3步的配置,从模板中读取数据,并按单据头和单据体,分别填充到业务对象的数据实体里。
101.转换数据,根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充。
102.(5)批量保存数据到数据库
103.经过第4步里的数据处理后,会加入到一个并发队列中,由保存处理单元从并发队列中批量获取数据,保存到数据库中。
104.在保存处理单元中,会控制批量处理的数据,避免造成数据库的io阻塞或死锁。
105.通过上述步骤完成批量数据的导入。
106.相比现有办法的定制导入模板,本办法中的自定义模板灵活性更高,适用性更强。
107.相比现有办法的读取-转换-保存是顺序执行,效率很低。本办法将这三个拆分为三个处理单元,类比流水线,一个单元处理完,就把“半成品”移交到下一个单元“加工”,并且可通过增加“流水线”(线程)来提升效率。
108.在本技术所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论
的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
109.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
110.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

技术特征:


1.一种数据批量导入方法,其特征在于,包括以下步骤:s1、加载程序加载根据业务对象模型的导入模板:所述导入模板包括业务对象的所有可导入字段;s2、按需向导入模板内填充数据:按需保留需要导入的字段,并填充数据;s3、匹配程序根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值;s4、多线程读取-转换数据:读取数据:从模板中读取数据,填充到业务对象的数据实体内;转换数据,根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充;s5、批量保存数据到数据库:保存处理单元从并发队列中批量获取数据,保存到数据库中。2.根据权利要求1所述的数据批量导入方法,其特征在于:所述s1中,导入模板将单据头和单据体进行拉平处理。3.根据权利要求1所述的数据批量导入方法,其特征在于:所述s3中,导入模板配置时,还包括设置行的匹配查字段,用于匹配已有数据并覆盖数据。4.根据权利要求1所述的数据批量导入方法,其特征在于:所述s4中,读取数据步骤和转换数据步骤时,通过多线程执行,并行处理。5.根据权利要求4所述的数据批量导入方法,其特征在于:所述读取数据步骤和转换数据步骤后,数据加入到并发队列中。6.根据权利要求1所述的数据批量导入方法,其特征在于:所述s5中,数据保存至到数据库时,按单据头和单据体,分别填充到业务对象的数据实体里。7.根据权利要求5所述的数据批量导入方法,其特征在于:所述数据保存时,控制批量处理的数据。8.一种根据权利要求1-7任意一项所述的数据批量导入系统,其特征在于,包括:加载模块,所述加载模块用于根据业务对象模型加载导入模板,所述导入模板包括业务对象的所有可导入字段;填充模块,所述填充模块用于按需向导入模板内填充数据;匹配模块,所述匹配模块用于根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值;读取模块,所述读取模块用于从导入模块中,填充到业务对象的数据实体内;转换模块,所述转换模块用于根据业务对象的编码或名称,从数据库中获取业务对象的id进行填充;存储模块,所述存储模块用于从并发队列中批量获取数据,保存到数据库中。9.一种计算机设备,其特征在于,所述计算机设备包括处理器、与所述处理器耦接的存储器,所述存储器中存储有程序指令,所述程序指令被所述处理器执行时,使得所述处理器执行如权利要求1-7中任一项权利要求所述的数据批量导入方法的步骤。10.一种存储介质,其特征在于,存储有能够实现如权利要求1-7中任一项所述的数据批量导入方法的程序指令。

技术总结


本发明提供了一种数据批量导入方法、系统、计算机装置及可读存储介质,所述方法包括加载程序加载根据业务对象模型的导入模板,按需向导入模板内填充数据,匹配程序根据模板的列名匹配业务对象的字段的对应关系,将列的数据作为到业务对象的字段值,多线程读取-转换数据,批量保存数据到数据库;本发明通过生成导入模板,并按需向导入模板内填充数据,相比现有技术的定制导入模板,本办法中的自定义模板灵活性更高,适用性更强。适用性更强。适用性更强。


技术研发人员:

尹学良

受保护的技术使用者:

广东杰诺软件科技有限公司

技术研发日:

2022.11.03

技术公布日:

2023/2/27

本文发布于:2023-02-28 23:27:15,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/61275.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   所述   对象   业务
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图