CN108491475A - 数据快速批量导入方法、电子装置及计算机可读存储介质 - Google Patents
数据快速批量导入方法、电子装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108491475A CN108491475A CN201810192796.3A CN201810192796A CN108491475A CN 108491475 A CN108491475 A CN 108491475A CN 201810192796 A CN201810192796 A CN 201810192796A CN 108491475 A CN108491475 A CN 108491475A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- verification
- suffix
- memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000008676 import Effects 0.000 title claims description 26
- 238000012795 verification Methods 0.000 claims abstract description 91
- 238000013515 script Methods 0.000 claims abstract description 73
- 230000015654 memory Effects 0.000 claims abstract description 58
- 238000013500 data storage Methods 0.000 claims abstract description 14
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 8
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
- G06F16/2386—Bulk updating operations
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据快速批量导入方法,属于计算机技术领域。一种数据快速批量导入方法,包括如下步骤:S1、接收上传的文件,对所述文件进行后缀校验,若后缀校验通过则执行S2;S2、读取所述文件中的数据,若数据读取成功则执行S3;S3、从预设的若干校验规则中获取与所述文件的后缀相对应的校验规则对读取的数据进行校验,若数据校验通过则执行S4;S4、从预设的数据存储脚本中获取与用于存储数据的存储器相对应的数据存储脚本;S5、根据获取的数据存储脚本调用相对应的存储器的连接信息,将所述文件中的数据保存至所述存储器中。
Description
技术领域
本发明涉及计算机技术领域,涉及一种数据快速批量导入方法、电子装置及计算机可读存储介质。
背景技术
企业办公或者其他管理类系统中,通过上传EXCEL或者CSV文件进行批量导入记录是常见的功能,在需要新增或者修改记录比较多的情况下,批量导入大大加快用户录入速度,且在单个工作窗口进行增加或调整记录,既可纵览全局数据以调整局部数据,如根据比例调整部分员工绩效,也可避免在业务系统中频繁点击类似“新增”、“修改”和“删除”等按钮切换页面的行为,更不易出错。针对更喜欢使用EXCEL进行数据管理的用户,批量导入也更加友好,历史EXCEL遗留数据也无须手动一条条添加至系统,只需要简单调整格式即可快速导入系统。
目前,业界业务系统批量导入实现,普遍由业务系统开发人员根据具体的业务场景,编写代码实现上传、读取、校验、保存数据库操作,存在如下问题:
1)工作量大,针对不同格式的文件,需要编写相应的读取文件内容的代码,以及与数据存储设施连接、通信、操作等代码,针对每个批量导入功能,都需要编写大量代码;
2)业务逻辑代码与文件读取、数据存储设施操作等代码混在一起,不易维护。
发明内容
本发明要解决的技术问题是为了克服现有技术中数据导入工作量和不易维护,提出了一种数据快速批量导入方法、电子装置及计算机可读存储介质,以减少业务系统开发人员的工作量,使其得以将精力主要集中于具体业务实现上。
本发明是通过下述技术方案来解决上述技术问题:
一种数据快速批量导入方法,包括如下步骤:
S1、接收上传的文件,对所述文件进行后缀校验,若后缀校验通过则执行S2,否则发送上传文件格式错误的提示并结束;
S2、读取所述文件中的数据,若数据读取成功则执行S3,否则发送上传文件格式错误的提示并结束;
S3、从预设的若干校验规则中获取与所述文件的后缀相对应的校验规则对读取的数据进行校验,若数据校验通过则执行S4,否则发送校验不通过的提示并结束;
S4、从预设的数据存储脚本中获取与用于存储数据的存储器相对应的数据存储脚本;
S5、根据获取的数据存储脚本调用相对应的存储器的连接信息,将所述文件中的数据保存至所述存储器中。
优选地,S1中所述的后缀校验具体为:截取所述文件的后缀名,判断该后缀名是否位于预设的后缀白名单中,若是则校验通过;
所述后缀白名单中包含的后缀名包括.csv、.txt、.xls和.xlsx。
优选地,S2具体包括以下分步骤:
S21、截取所述文件的后缀名以判断所述文件的格式;
S22、调用与所述文件的格式相对应的第三方组件;
S23、采用所述第三方组件读取所述文件中的数据;
S24、判断读取的数据是否为空,若是则读取失败,若否则读取成功。
优选地,S21中所述文件的格式包括纯文本文件、文本文档和excel电子表格,所述纯文本文件对应的后缀名为.csv,所述文本文档对应的后缀名为.txt,所述excel电子表格对应的后缀名为.xls或.xlsx。
优选地,S22中与所述纯文本文件或所述文本文档相对应的第三方组件为javaAPI,与所述excel电子表格相对应的第三方组件为apache poi。
优选地,S3中所述预设的校验规则包括重复行校验、脚本校验、表达式校验和全局校验。
优选地,S4中所述存储器包括数据库和目标存储设备;所述数据库对应的数据存储脚本为SQL脚本,所述目标存储设备对应的数据存储脚本为shell脚本。
一种电子装置,包括存储器和处理器,所述存储器上存储有可被所述处理器执行的数据快速批量导入系统,所述数据快速批量导入系统包括:
文件接收模块,用于接收上传的文件;
文件校验模块,用于对接收到的文件进行后缀校验;
数据读取模块,用于在后缀校验通过后读取文件中的数据;
数据校验模块,用于在数据读取成功后,从预设的若干校验规则中获取与所述文件的后缀相对应的校验规则对读取的数据进行校验;
脚本获取模块,用于在数据校验通过后,从预设的数据存储脚本中获取与用于存储数据的存储器相对应的数据存储脚本;
数据存储模块,用于根据获取的数据存储脚本调用相对应的存储器的连接信息,将所述文件中的数据保存至所述存储器中;
提示发送模块,用于在后缀校验不通过和数据读取失败后发送上传文件格式错误的提示,以及在数据校验不通过后发送校验不通过的提示。
优选地,所述数据读取模块具体包括以下子模块:
截取子模块,用于截取所述文件的后缀名以判断所述文件的格式;
调用子模块,用于根据所述文件的格式调用相对应的第三方组件;
读取子模块,用于通过所述第三方组件读取所述文件中的数据;
判断子模块,用于根据读取的数据是否为空来判断读取失败还是读取成功。
一种计算机可读存储介质,所述计算机可读存储介质内存储有数据快速批量导入系统,所述数据快速批量导入系统可被至少一个处理器所执行,以使所述至少一个处理器执行如前述中任一项所述的数据快速批量导入方法的步骤。
本发明的积极进步效果在于:
1)让开发人员只需要关注于具体业务实现,无需困扰于如何读取纯文本文件、文本文档和excel电子表格等文件,从各种格式文件读取、分析中解脱出来,让开发人员更加集中于数据业务逻辑,极大地减少了开发人员的工作量。
2)提供文件后缀白名单功能,加强系统安全性。
3)业务系统开发人员只需要提供脚本及目标存储器连接的相关信息,即可实现数据保存到目标存储器,业务系统开发人员无须实现与目标存储设施连接、通信、执行脚本等功能,大大减少工作量,且集中式配置脚本配置管理,很方便增加、删除、修改,极大提高了可维护性。
附图说明
图1示出了本发明电子装置一实施例的硬件架构示意图;
图2示出了本发明电子装置中数据快速批量导入系统一实施例的程序模块示意图;
图3示出了本发明电子装置中数据快速批量导入系统一实施例中数据读取模块的子模块示意图;
图4示出了本发明数据快速批量导入方法实施例一的流程图;
图5示出了本发明数据快速批量导入方法实施例二的流程图;
图6示出了采用excel电子表格记录的学生成绩表。
附图标记:
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
首先,本发明提出了一种电子装置。
参阅图1所示,是本发明电子装置一实施例的硬件架构示意图。本实施例中,所述电子装置2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述电子装置2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及数据快速批量导入系统20。其中:
所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如所述数据快速批量导入系统20的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置2的总体操作,例如执行与所述电子装置2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的数据快速批量导入系统20等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述电子装置2与外部终端相连,在所述电子装置2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Intemet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图1仅示出了具有组件21-23的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
在本实施例中,存储于存储器21中的所述数据快速批量导入系统20可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并可由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图2示出了所述数据快速批量导入系统20一实施例的程序模块示意图,该实施例中,所述数据快速批量导入系统20可以被分割为文件接收模块201、文件校验模块202、数据读取模块203、数据校验模块204、脚本获取模块205、数据存储模块206和提示发送模块207。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述数据快速批量导入系统20在所述电子装置2中的执行过程。以下描述将具体介绍所述程序模块201-207的具体功能。
所述文件接收模块201用于接收上传的文件。所述文件的格式有多种,主要包括纯文本文件、文本文档和excel电子表格等;需要指出的是,纯文本文档通常指后缀为.csv的文件,该文件默认使用逗号将文件内的数据分隔成列;文本文档是指后缀为.txt的文件,该文件没有默认的分隔符,需要由业务系统开发人员配置分隔符将文件内的数据分隔成列。最终,纯文本文件、文本文档和excel电子表格中的内容都能使用二维数组来表示。
所述文件校验模块202用于对接收到的文件进行后缀校验。
所述后缀校验具体为:业务系统开发人员预设有后缀白名单,根据可导数的类型进行设置;举例来说,如果可接收纯文本文件,则将后缀.csv加入到后缀白名单。如果上传的文件的后缀名在后缀白名单中,则后缀校验通过,可以进行后一步的操作。
所述数据读取模块203用于在后缀校验通过后读取文件中的数据。
这里所述读取文件直接采用第三方组件,由于本系统支持多种格式的批量导入,预先内置有多个第三方组件,比如用于读取excel电子表格的第三方组件apache poi,又比如用于读取纯文本文件或文本文档的第三方组件java API等。
采用何种第三方组件则由文件格式决定,而文件格式通过其后缀名来判断,进而所述数据读取模块203又可以进一步被分割为如图3示出的四个子模块2031-2034,这四个子模块的功能具体如下:
所述截取子模块2031用于截取所述文件的后缀名以判断所述文件的格式;所述调用子模块2032用于根据所述文件的格式调用相对应的第三方组件;所述读取子模块2033用于通过所述第三方组件读取所述文件中的数据;所述判断子模块2034用于根据读取的数据是否为空来判断读取失败还是读取成功。
所述数据校验模块204用于在数据读取成功后,从预设的若干校验规则中获取与所述文件的后缀相对应的校验规则对读取的数据进行校验。
所述数据校验包括重复行校验、脚本校验、表达式校验和全局校验。举例来说,全局校验主要校验行数据的全局唯一性,可以指定多列进行唯一性校验,如指定A、B、C三列,则只要存在某两行中的A、B、C列值相同,则校验不通过;又如行校验针对当前行记录的合法性进行校验,支持表达式校验,如行的A列是否为空或是否包含某个值,A列+B列是否等于C列等,多个表达式可以使用逻辑与、或、异或进行组合,这些都可以由开发人员根据实际需求进行配置。
所述脚本获取模块205用于在数据校验通过后,从预设的数据存储脚本中获取与用于存储数据的存储器相对应的数据存储脚本。
所述存储器可以是数据库或者其他目标存储设备,根据不同的存储器,需要采用不同的数据存储脚本;具体为,所述数据库对应的数据存储脚本为SQL脚本,所述目标存储设备对应的数据存储脚本为shell脚本。
这里所述存储器和相对应的数据存储脚本都由业务系统开发人员结合实际需求进行预先配置。
所述数据存储模块206用于根据获取的数据存储脚本调用相对应的存储器的连接信息,将所述文件中的数据保存至所述存储器中。
存储时,通过解析脚本,获取到列取值表达式,针对待导入文件的每一行,获取对应的列的实际值在存储器上执行脚本。
所述提示发送模块207用于在后缀校验不通过和数据读取失败后发送上传文件格式错误的提示,以及在数据校验不通过后发送校验不通过的提示。
所述提示都由业务系统开发人员进行预设,对应不同的校验设置有不同的提示语句。
通过采用本系统,让开发人员只需要关注于具体业务实现,无需困扰于如何读取纯文本文件、文本文档和excel电子表格等文件,从各种格式文件的读取、分析中解脱出来,让开发人员更加集中于数据业务逻辑,极大地减少了开发人员的工作量。
其次,本发明提出一种数据快速批量导入方法。
在实施例一中,如图4所示,所述的数据快速批量导入方法包括如下步骤:
S1、接收上传的文件,对所述文件进行后缀校验,若后缀校验通过则执行S2,否则发送上传文件格式错误的提示并结束。
所述的后缀校验具体为:截取所述文件的后缀名,判断该后缀名是否位于预设的后缀白名单中,若是则校验通过;
所述后缀白名单中包含的后缀名包括但不限于.csv、.txt、.xls和.xlsx,所述.csv对应纯文本文件格式,所述.txt对应文本文档格式,.xls和.xlsx均对应excel电子表格(区别在于版本不同)。假设所述后缀白名单仅包括.csv和.txt,则表示仅在上传的文件格式为纯文本文件或文本文档时,后缀校验可以通过,进而进入下一步的数据读取步骤。
需要指出的是,纯文本文档默认使用逗号将文件内的数据分隔成列,因而无需业务系统开发人员进行配置;但是文本文档没有默认的分隔符,需要由业务系统开发人员配置分隔符将文件内的数据分隔成列。最终,纯文本文件、文本文档和excel电子表格中的内容都能使用二维数组来表示。
S2、读取所述文件中的数据,若数据读取成功则执行S3,否则发送上传文件格式错误的提示并结束。
这里具体采用第三方组件来读取文件中的数据。
S3、从预设的若干校验规则中获取与所述文件的后缀相对应的校验规则对读取的数据进行校验,若数据校验通过则执行S4,否则发送校验不通过的提示并结束。
本步骤中,所述预设的校验规则包括重复行校验、脚本校验、表达式校验和全局校验,每种校验规则均适用于各种格式的文档。
具体而言,全局校验主要校验行数据的全局唯一性,可以指定多列进行唯一性校验,如指定A、B、C列,则只要存在某两行的A、B、C列值相同,校验不通过。
行校验则针对当前行记录的合法性进行校验,支持表达式校验;如行的A列是否为空或是否包含某个值,A列+B列是否等于C列等,多个表达式可以使用逻辑与、或、异或进行组合,这些都可以由开发人员根据实际需求进行配置。此外,这里的行校验还支持SQL脚本校验,将当前行加入到数据库的计算校验中,比如校验当前行的员工姓名是否存在于数据库中等。
此外,针对文件中的数据还可以定义其他多种校验规则,且针对不同的校验规则可以设置对应的错误提示语,提示语可以使用行号表达式,如“${rownum}行的第3列不能为空”等;对于校验失败,可配置为立即返回当前校验失败提示语,或这继续校验至文档末尾后整合多次校验失败提示语一并返回。
S4、从预设的数据存储脚本中获取与用于存储数据的存储器相对应的数据存储脚本。
本步骤中,所述存储器可以是数据库,也可以是其他的目标存储设备,针对数据库需要采用的数据存储脚本对应为SQL脚本,而针对其他目标存储设备需要采用的数据存储脚本对应为shell脚本。业务系统开发人员结合实际需求进行SQL脚本或者shell脚本的配置。
配置时,需要指定脚本类型type=[sql/shell],脚本可以使用列取值表达式(如$1代表取第一列实际值,$5代表取第5列实际值...)以取得行对应列的实际值;如果数据保存至数据库,可以提供SQL脚本,需要保存至其他存储设备则可以使用shell脚本。
S5、根据获取的数据存储脚本调用相对应的存储器的连接信息,将所述文件中的数据保存至所述存储器中。
本步骤中,根据脚本类型,为SQL脚本时需要预先提供数据库的连接信息,为shell脚本时,则需要预先提供目标服务器的连接信息。本步骤保存数据时会解析脚本,获取到列取值表达式,针对导入文件的每一行,获取对应的列的实际值在数据库或其他目标服务器上执行脚本以实现数据保存。
更进一步地,当脚本类型为SQL脚本时,为了提高执行效率,减少对数据库连接的占用,业务系统开发人员可以配置每次批量执行的数据的多少,对于大文件,还可以配置并发数以加快执行速度。
在实施例二中,基于实施例一的基础上,如图5所示,S2中数据的读取具体包括以下分步骤:
S21、截取所述文件的后缀名以判断所述文件的格式;
S22、调用与所述文件的格式相对应的第三方组件;
S23、采用所述第三方组件读取所述文件中的数据;
S24、判断读取的数据是否为空,若是则读取失败,若否则读取成功。
本实施例中,由于可以上传的文件格式不止一种,因而对应不同格式需要采用不同的第三方组件进行数据的读取;换言之,第三方组件的选取由上传的文件格式决定,而文件格式通过文件的后缀名来判断。举例来说,纯文本文档对应后缀为.csv,文本文档对应后缀为.txt,excel电子表格对应后缀为.xls或.xlsx。对应不同的文件格式,采用的第三方组件具体为:excel电子表格对应采用第三方组件apache poi读取文件中的数据,纯文本文件或文本文档则对应采用第三方组件java API读取文件中的数据。
此外,本实施例中对于数据读取的开始位置及结束位置,均可以由业务系统开发人员进行配置;举例来说,如果第一行为行头,则可以从第二行开始读取,或者配置表达式跳过某些符合表达式规则的行进行读取。
下面,以批量导入学生成绩至数据库中为例对本方法做进一步说明,所述学生成绩(如图6所示)采用excel电子表格的形式进行记录,A、B、C、D四列分别代表学号、语文、数学和总分,成绩批量导入的过程如下:
1、上传图6中示出的学生成绩表,该表采用excel电子表格的形式记录,后缀名为.xls,经后缀验证,确认后缀名.xls位于预设的后缀白名单中,因此验证通过进入文件读取步骤。
2、截取导入到文件的后缀名为.xls,对应为excel电子表格的文件格式,因此采用与该格式对应的第三方组件apache poi读取文件中的数据,数据读取完成后,判断读取的数据不为空,进入下一步数据校验步骤。
3、首先进行全局校验,对A、B、C、D四列中的值进行唯一性校验,校验得知这四列的值并不相同;接着进行行校验,校验得知学号20170156不存在于数据库中,还得知第四行中B列+C列不等于D列,针对这些错误,待全部文件中的数据校验完成之后,整合多次校验失败提示语一并返回。
4、假设前一步校验反馈的错误一一修正之后,文件重新上传,经后缀校验通过、文件中的数据读取成功且通过所有校验规则,之后进入到脚本获取阶段,由于本例中将学生成绩导入到数据库中,这里预先配置的脚本类型为SQL脚本,因此,本步骤中获取到的是预先配置的SQL脚本。
5、根据SQL脚本调用相对应的数据库连接信息,解析脚本,获取到列取值表达式,针对导入文件的每一行,获取对应的列的实际值(学生成绩)在数据库上执行脚本,最终将学生成绩的批量导入至数据库中。
通过使用本方法实现数据的批量导入,让开发人员只需要关注于具体业务实现,无需困扰于如何读取纯文本文件、文本文档和excel电子表格等文件,从各种格式文件读取、分析中解脱出来。其次,采用后缀白名单校验加强了系统安全性。此外,业务系统开发人员使用本方法实现数据的批量导入无须实现与目标存储器连接、通信、执行脚本等功能,只需要提供脚本及目标存储器连接的相关信息即可,工作量大大减少,且维护方便。
此外,本发明一种计算机可读存储介质,该计算机可读存储介质内存储有数据快速批量导入系统20,该数据快速批量导入系统20可被一个或多个处理器执行时,实现上述数据快速批量导入方法或电子装置的操作。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种数据快速批量导入方法,其特征在于,包括如下步骤:
S1、接收上传的文件,对所述文件进行后缀校验,若后缀校验通过则执行S2,否则发送上传文件格式错误的提示并结束;
S2、读取所述文件中的数据,若数据读取成功则执行S3,否则发送上传文件格式错误的提示并结束;
S3、从预设的若干校验规则中获取与所述文件的后缀相对应的校验规则对读取的数据进行校验,若数据校验通过则执行S4,否则发送校验不通过的提示并结束;
S4、从预设的数据存储脚本中获取与用于存储数据的存储器相对应的数据存储脚本;
S5、根据获取的数据存储脚本调用相对应的存储器的连接信息,将所述文件中的数据保存至所述存储器中。
2.根据权利要求1所述的数据快速批量导入方法,其特征在于,S1中所述的后缀校验具体为:截取所述文件的后缀名,判断该后缀名是否位于预设的后缀白名单中,若是则校验通过;
所述后缀白名单中包含的后缀名包括.csv、.txt、.xls和.xlsx。
3.根据权利要求1所述的数据快速批量导入方法,其特征在于,S2具体包括以下分步骤:
S21、截取所述文件的后缀名以判断所述文件的格式;
S22、调用与所述文件的格式相对应的第三方组件;
S23、采用所述第三方组件读取所述文件中的数据;
S24、判断读取的数据是否为空,若是则读取失败,若否则读取成功。
4.根据权利要求3所述的数据快速批量导入方法,其特征在于,S21中所述文件的格式包括纯文本文件、文本文档和excel电子表格,所述纯文本文件对应的后缀名为.csv,所述文本文档对应的后缀名为.txt,所述excel电子表格对应的后缀名为.xls或.xlsx。
5.根据权利要求4所述的数据快速批量导入方法,其特征在于,S22中与所述纯文本文件或所述文本文档相对应的第三方组件为java API,与所述excel电子表格相对应的第三方组件为apache poi。
6.根据权利要求1所述的数据快速批量导入方法,其特征在于,S3中所述预设的校验规则包括重复行校验、脚本校验、表达式校验和全局校验。
7.根据权利要求1所述的数据快速批量导入方法,其特征在于,S4中所述存储器包括数据库和目标存储设备;所述数据库对应的数据存储脚本为SQL脚本,所述目标存储设备对应的数据存储脚本为shell脚本。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器上存储有可被所述处理器执行的数据快速批量导入系统,所述数据快速批量导入系统包括:
文件接收模块,用于接收上传的文件;
文件校验模块,用于对接收到的文件进行后缀校验;
数据读取模块,用于在后缀校验通过后读取文件中的数据;
数据校验模块,用于在数据读取成功后,从预设的若干校验规则中获取与所述文件的后缀相对应的校验规则对读取的数据进行校验;
脚本获取模块,用于在数据校验通过后,从预设的数据存储脚本中获取与用于存储数据的存储器相对应的数据存储脚本;
数据存储模块,用于根据获取的数据存储脚本调用相对应的存储器的连接信息,将所述文件中的数据保存至所述存储器中;
提示发送模块,用于在后缀校验不通过和数据读取失败后发送上传文件格式错误的提示,以及在数据校验不通过后发送校验不通过的提示。
9.根据权利要求8所述的电子装置,其特征在于,所述数据读取模块具体包括以下子模块:
截取子模块,用于截取所述文件的后缀名以判断所述文件的格式;
调用子模块,用于根据所述文件的格式调用相对应的第三方组件;
读取子模块,用于通过所述第三方组件读取所述文件中的数据;
判断子模块,用于根据读取的数据是否为空来判断读取失败还是读取成功。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有数据快速批量导入系统,所述数据快速批量导入系统可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-7中任一项所述的数据快速批量导入方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810192796.3A CN108491475B (zh) | 2018-03-08 | 2018-03-08 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
PCT/CN2018/082976 WO2019169693A1 (zh) | 2018-03-08 | 2018-04-13 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810192796.3A CN108491475B (zh) | 2018-03-08 | 2018-03-08 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491475A true CN108491475A (zh) | 2018-09-04 |
CN108491475B CN108491475B (zh) | 2020-03-31 |
Family
ID=63338313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810192796.3A Active CN108491475B (zh) | 2018-03-08 | 2018-03-08 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108491475B (zh) |
WO (1) | WO2019169693A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635033A (zh) * | 2018-12-27 | 2019-04-16 | 贵州省广播电视信息网络股份有限公司 | 一种千万级存量数据的处理、日志收集及导入数据库的方法 |
CN110377563A (zh) * | 2019-07-23 | 2019-10-25 | 中国工商银行股份有限公司 | 文件处理方法和装置、以及电子设备和可读存储介质 |
CN110489251A (zh) * | 2019-08-15 | 2019-11-22 | 中国银行股份有限公司 | 一种基于信息系统的数据导入防重方法、设备以及系统 |
CN110765479A (zh) * | 2019-11-03 | 2020-02-07 | 长沙豆芽文化科技有限公司 | 一种大数据防丢失方法、装置及设备 |
CN110958292A (zh) * | 2019-09-17 | 2020-04-03 | 平安银行股份有限公司 | 文件上传方法、电子装置、计算机设备及存储介质 |
CN111291130A (zh) * | 2018-12-06 | 2020-06-16 | 北京沃东天骏信息技术有限公司 | Hive表一致性校验方法、系统、设备及存储介质 |
CN111445344A (zh) * | 2020-04-21 | 2020-07-24 | 重庆新致金服信息技术有限公司 | 保险业务清单处理方法、电子设备及存储介质 |
CN112287009A (zh) * | 2020-11-03 | 2021-01-29 | 平安普惠企业管理有限公司 | 接口调用和接口数据入库方法、装置、设备及存储介质 |
WO2021051627A1 (zh) * | 2019-09-19 | 2021-03-25 | 平安科技(深圳)有限公司 | 基于数据库的批量导入方法、装置、设备及存储介质 |
CN112738085A (zh) * | 2020-12-28 | 2021-04-30 | 深圳前海微众银行股份有限公司 | 文件安全校验方法、装置、设备及存储介质 |
CN112947846A (zh) * | 2019-12-11 | 2021-06-11 | 北京金山云网络技术有限公司 | 对象存储系统的批处理任务执行方法、装置及电子设备 |
CN113051224A (zh) * | 2021-04-08 | 2021-06-29 | 平安国际智慧城市科技股份有限公司 | 文件传输方法、装置、电子设备及计算机可读存储介质 |
CN113094359A (zh) * | 2021-02-24 | 2021-07-09 | 华南师范大学 | 基于决策规则的考试数据预处理方法、系统、装置及介质 |
CN113887188A (zh) * | 2021-10-09 | 2022-01-04 | 上海通联金融服务有限公司 | 一种基于excel文件解析生成制卡文件的实现方法 |
CN114567859A (zh) * | 2022-01-26 | 2022-05-31 | 银盛通信有限公司 | 一种移动转售系统机器卡批量套外限制设置的方法 |
CN116521092A (zh) * | 2023-06-30 | 2023-08-01 | 昆山工业大数据创新中心有限公司 | 一种工业设备数据的存储方法和装置 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865883B (zh) * | 2019-09-23 | 2022-06-03 | 平安科技(深圳)有限公司 | 一种大批量数据导入方法、装置、计算机设备及存储介质 |
CN111292040B (zh) * | 2020-02-18 | 2023-07-11 | 上海东普信息科技有限公司 | 快件代签收信息接入方法、系统及存储介质 |
CN111324783B (zh) * | 2020-03-18 | 2023-08-29 | 上海东普信息科技有限公司 | 数据处理方法及装置 |
CN111476009A (zh) * | 2020-03-23 | 2020-07-31 | 一汽奔腾轿车有限公司 | 一种新车报税配置信息一致性校验系统 |
CN111581210A (zh) * | 2020-04-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 数据的导入方法及系统 |
CN111476661B (zh) * | 2020-05-04 | 2023-07-11 | 武汉众邦银行股份有限公司 | 一种循环校验入账的总账系统批处理方法 |
CN111813439B (zh) * | 2020-07-17 | 2024-03-29 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN112163242A (zh) * | 2020-09-11 | 2021-01-01 | 杭州安恒信息技术股份有限公司 | 一种磁盘数据校验的方法 |
CN112463633B (zh) * | 2020-12-11 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种片上存储器的地址译码校验方法、装置、设备及介质 |
CN112597228B (zh) * | 2020-12-26 | 2024-06-07 | 中国农业银行股份有限公司 | 一种文件处理方法及系统 |
CN113505115A (zh) * | 2021-07-07 | 2021-10-15 | 北京金山云网络技术有限公司 | 一种数据批量导入方法、装置及电子设备 |
CN113626593B (zh) * | 2021-07-13 | 2024-04-19 | 深圳希施玛数据科技有限公司 | 一种Excel文件校验方法、装置及设备 |
CN113505580A (zh) * | 2021-07-26 | 2021-10-15 | 京东科技控股股份有限公司 | 表格文件的解析方法和装置 |
CN113641999A (zh) * | 2021-08-27 | 2021-11-12 | 四川中电启明星信息技术有限公司 | 一种在web系统文件上传过程中的文件类型自动校验方法 |
CN114331350A (zh) * | 2021-12-27 | 2022-04-12 | 中国邮政储蓄银行股份有限公司 | 服务编排的处理方法和装置 |
CN116757170B (zh) * | 2023-08-21 | 2023-10-20 | 成都数联云算科技有限公司 | 一种基于JAVA语言的Excel表格导入方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103347092A (zh) * | 2013-07-22 | 2013-10-09 | 星云融创(北京)信息技术有限公司 | 一种识别缓存文件的方法及装置 |
CN104081385A (zh) * | 2011-04-29 | 2014-10-01 | 汤姆森路透社全球资源公司 | 从文档表示信息 |
CN105245703A (zh) * | 2015-09-25 | 2016-01-13 | 努比亚技术有限公司 | 分类存储文件的移动终端及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280254A1 (en) * | 2013-03-15 | 2014-09-18 | Feichtner Data Group, Inc. | Data Acquisition System |
-
2018
- 2018-03-08 CN CN201810192796.3A patent/CN108491475B/zh active Active
- 2018-04-13 WO PCT/CN2018/082976 patent/WO2019169693A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104081385A (zh) * | 2011-04-29 | 2014-10-01 | 汤姆森路透社全球资源公司 | 从文档表示信息 |
CN103347092A (zh) * | 2013-07-22 | 2013-10-09 | 星云融创(北京)信息技术有限公司 | 一种识别缓存文件的方法及装置 |
CN105245703A (zh) * | 2015-09-25 | 2016-01-13 | 努比亚技术有限公司 | 分类存储文件的移动终端及方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291130B (zh) * | 2018-12-06 | 2024-03-01 | 北京沃东天骏信息技术有限公司 | Hive表一致性校验方法、系统、设备及存储介质 |
CN111291130A (zh) * | 2018-12-06 | 2020-06-16 | 北京沃东天骏信息技术有限公司 | Hive表一致性校验方法、系统、设备及存储介质 |
CN109635033B (zh) * | 2018-12-27 | 2023-03-21 | 贵州省广播电视信息网络股份有限公司 | 一种千万级存量数据的处理、日志收集及导入数据库的方法 |
CN109635033A (zh) * | 2018-12-27 | 2019-04-16 | 贵州省广播电视信息网络股份有限公司 | 一种千万级存量数据的处理、日志收集及导入数据库的方法 |
CN110377563A (zh) * | 2019-07-23 | 2019-10-25 | 中国工商银行股份有限公司 | 文件处理方法和装置、以及电子设备和可读存储介质 |
CN110489251A (zh) * | 2019-08-15 | 2019-11-22 | 中国银行股份有限公司 | 一种基于信息系统的数据导入防重方法、设备以及系统 |
CN110958292A (zh) * | 2019-09-17 | 2020-04-03 | 平安银行股份有限公司 | 文件上传方法、电子装置、计算机设备及存储介质 |
WO2021051627A1 (zh) * | 2019-09-19 | 2021-03-25 | 平安科技(深圳)有限公司 | 基于数据库的批量导入方法、装置、设备及存储介质 |
CN110765479B (zh) * | 2019-11-03 | 2020-04-24 | 长沙豆芽文化科技有限公司 | 一种大数据防丢失方法、装置及设备 |
CN110765479A (zh) * | 2019-11-03 | 2020-02-07 | 长沙豆芽文化科技有限公司 | 一种大数据防丢失方法、装置及设备 |
CN112947846A (zh) * | 2019-12-11 | 2021-06-11 | 北京金山云网络技术有限公司 | 对象存储系统的批处理任务执行方法、装置及电子设备 |
CN111445344A (zh) * | 2020-04-21 | 2020-07-24 | 重庆新致金服信息技术有限公司 | 保险业务清单处理方法、电子设备及存储介质 |
CN112287009A (zh) * | 2020-11-03 | 2021-01-29 | 平安普惠企业管理有限公司 | 接口调用和接口数据入库方法、装置、设备及存储介质 |
CN112738085A (zh) * | 2020-12-28 | 2021-04-30 | 深圳前海微众银行股份有限公司 | 文件安全校验方法、装置、设备及存储介质 |
CN112738085B (zh) * | 2020-12-28 | 2023-08-08 | 深圳前海微众银行股份有限公司 | 文件安全校验方法、装置、设备及存储介质 |
CN113094359A (zh) * | 2021-02-24 | 2021-07-09 | 华南师范大学 | 基于决策规则的考试数据预处理方法、系统、装置及介质 |
CN113051224A (zh) * | 2021-04-08 | 2021-06-29 | 平安国际智慧城市科技股份有限公司 | 文件传输方法、装置、电子设备及计算机可读存储介质 |
CN113887188A (zh) * | 2021-10-09 | 2022-01-04 | 上海通联金融服务有限公司 | 一种基于excel文件解析生成制卡文件的实现方法 |
CN114567859A (zh) * | 2022-01-26 | 2022-05-31 | 银盛通信有限公司 | 一种移动转售系统机器卡批量套外限制设置的方法 |
CN114567859B (zh) * | 2022-01-26 | 2023-10-13 | 银盛通信有限公司 | 一种移动转售系统机器卡批量套外限制设置的方法 |
CN116521092A (zh) * | 2023-06-30 | 2023-08-01 | 昆山工业大数据创新中心有限公司 | 一种工业设备数据的存储方法和装置 |
CN116521092B (zh) * | 2023-06-30 | 2023-09-05 | 昆山工业大数据创新中心有限公司 | 一种工业设备数据的存储方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108491475B (zh) | 2020-03-31 |
WO2019169693A1 (zh) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491475A (zh) | 数据快速批量导入方法、电子装置及计算机可读存储介质 | |
CN109558575B (zh) | 在线表格编辑方法、装置、计算机设备及存储介质 | |
US20190273732A1 (en) | Custom authenticator for enterprise web application | |
CN110704521A (zh) | 接口数据接入方法及系统 | |
CN111241182A (zh) | 数据处理方法和装置、存储介质和电子装置 | |
CN105786998A (zh) | 数据库中间件系统及利用其处理数据的方法 | |
CN112615759B (zh) | 全链路压测组件、全链路压测方法及装置 | |
CN109669859A (zh) | 服务测试方法、装置、计算机设备和存储介质 | |
CN110008447A (zh) | 电子表格的处理方法及装置 | |
CN110347673A (zh) | 数据文件加载方法、装置、计算机设备以及存储介质 | |
CN117556008A (zh) | 基于大语言模型的交互方法、介质、装置和计算设备 | |
US10839090B2 (en) | Digital data processing system for efficiently storing, moving, and/or processing data across a plurality of computing clusters | |
CN114443039A (zh) | 输入参数校验方法、装置、电子设备及存储介质 | |
CN110275703B (zh) | 键值对数据的赋值方法、装置、计算机设备和存储介质 | |
CN111159226A (zh) | 指标查询方法及系统 | |
WO2022033079A1 (zh) | 一种皮基站配置方法、装置、存储介质和电子装置 | |
CN113282591B (zh) | 权限过滤方法、装置、计算机设备及存储介质 | |
CN105677800B (zh) | 一种访问网页时出错的处理方法及装置 | |
CN117493309A (zh) | 一种标准模型生成方法、装置、设备及存储介质 | |
CN112699027A (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN112134707A (zh) | 一种针对多个kerberos集群的并发访问方法和装置 | |
CN113190236B (zh) | Hql脚本校验方法及装置 | |
CN114968917A (zh) | 一种文件数据快速导入方法及装置 | |
US20220171785A1 (en) | Systems and methods of automating data processing and movement | |
CN112597531A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |