一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文件导入方法、系统、存储介质及电子系统与流程

2022-11-28 14:23:14 来源:中国专利 TAG:


1.本技术涉及智能家居/智慧家庭技术领域,尤其涉及一种文件导入方法、系统、存储介质及电子系统。


背景技术:

2.数据仓库的建设中,数据源除了关系型数据库所承载的数据,还包括大量的以excel表格文件作为传输介质的数据。关系型数据库所承载的数据,使用sql(structured query language,结构化查询语言)进行导入和查询时,可以较好地避免数据错列的问题,而excel表格文件所承载的数据通常自由度较高,数据质量较难保证,导致集成至数据库的难度较大。因此如何确保excel表格文件所承载的数据顺利导入数据仓库,是目前亟待解决的技术问题之一。
3.现有技术中,为了确保excel表格文件所承载的数据顺利导入数据仓库需要人工进行相关导入操作,如对表头信息进行核对和对excel进行列映射等均需要人工操作,然后借助数据库客户端工具将excel表格文件导入数据库,对于百兆级别的excel表格文件,用户在操作时极易因为个人电脑的性能局限性,无法处理此类文件,导入效率低,并且人工核对的步骤依赖于人员的细心程度,尤其是面对大量的不同类别的excel文件表头进行校对或复杂的列映射时,很容易出错。
4.因此,通过人工进行excel表格文件导入数据库操作,存在效率低和出错率高的问题。


技术实现要素:

5.本技术提供一种文件导入方法、系统、存储介质及电子系统,用以解决现有技术中人工执行excel表格文件导入数据库,存在效率低和出错率高的缺陷,实现自动准确地对文件进行导入。
6.本技术提供一种文件导入方法,包括:
7.接收文件导入请求,从所述文件导入请求中解析出待导入文件的属性信息;
8.根据所述待导入文件的属性信息,查找所述待导入文件的处理规则;
9.在查找到所述待导入文件的至少一条处理规则的情况下,根据所述处理规则中的连接标识,与目标数据库建立连接;
10.根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中。
11.根据本技术提供的一种文件导入方法,所述处理规则包括断言处理子规则和导入处理子规则;
12.所述根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中,包括:
13.根据所述断言处理子规则,从所述待导入文件中截取目标内容,并对所述目标内
容进行校验;
14.在所述目标内容通过校验的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入所述目标数据库中;所述导入处理操作包括数据转换操作和数据映射操作。
15.根据本技术提供的一种文件导入方法,所述在所述目标内容通过校验的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入所述目标数据库中,包括:
16.在所述目标内容通过校验的情况下,若确定所述处理规则中包含第一数据库处理子规则,则对所述目标数据库执行所述第一数据库处理子规则对应的第一处理操作;所述第一处理操作包括目标文件清除操作和/或缓存释放操作;
17.在确定所述第一处理操作执行完成的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入处理后的目标数据库中。
18.根据本技术提供的一种文件导入方法,所述方法还包括:
19.在所述确定所述待导入文件处于导入完成状态的情况下,若确定所述处理规则中包含第二数据库处理子规则,则对导入后的目标数据库执行所述第二数据库处理子规则对应的第二处理操作;
20.其中,所述第二处理操包括所述待导入文件的汇总操作、内容增加操作和内容删除操作中的一种或多种组合。
21.根据本技术提供的一种文件导入方法,所述方法还包括:
22.在确定所述处理规则中包含多种模式的导入处理子规则的情况下,若根据任一模式的导入处理子规则,将所述待导入文件成功导入所述目标数据库中,则将所述待导入文件更新为导入完成状态。
23.根据本技术提供的一种文件导入方法,所述根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中,包括:
24.根据所述处理规则中的数据库表属性信息,获取所述目标数据库中的目标数据库表;
25.根据所述处理规则中的工作表属性信息,获取所述待导入文件中的目标工作表;
26.根据所述多种处理子规则,将所述目标工作表导入所述目标数据库表中。
27.根据本技术提供的一种文件导入方法,所述根据所述处理规则中的连接标识,与目标数据库建立连接,包括:
28.根据所述连接标识,查找所述目标数据库的连接地址、账号、密码,以及数据库类型;
29.通过所述数据库类型对应的连接模块,以及所述账号和所述密码,登录所述连接地址;
30.根据登录结果,与所述目标数据库建立连接。
31.根据本技术提供的一种文件导入方法,所述根据所述待导入文件的属性信息,查找所述待导入文件的处理规则,包括:
32.根据所述待导入文件的属性信息,查找所述待导入文件的匹配规则;
33.根据所述匹配规则和所述属性信息,查找所述待导入文件的类型标识;
34.在查找到所述待导入文件的类型标识的情况下,查找所述类型标识对应的处理规则标识;
35.根据所述处理规则标识,查找所述待导入文件的处理规则。
36.根据本技术提供的一种文件导入方法,所述根据所述待导入文件的属性信息,查找所述待导入文件的处理规则,包括:
37.在确定所述待导入文件为压缩文件,且所述待导入文件处于待解压缩状态的情况下,对所述待导入文件进行解压缩,得到所述待导入文件的多个子文件;
38.根据每一子文件的属性信息,查找所述待导入文件的处理规则。
39.本技术还提供一种文件导入系统,包括:
40.解析模块,用于接收文件导入请求,从所述文件导入请求中解析出待导入文件的属性信息;
41.匹配模块,用于根据所述待导入文件的属性信息,查找所述待导入文件的处理规则;
42.连接模块,用于在查找到所述待导入文件的至少一条处理规则的情况下,根据所述处理规则中的连接标识,与目标数据库建立连接;
43.导入模块,用于根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中。
44.本技术还提供一种电子系统,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行实现如上述任一种所述文件导入方法。
45.本技术还提供一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行实现如上述任一种所述文件导入方法。
46.本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述文件导入方法。
47.本技术提供的文件导入方法、系统、存储介质及电子系统,通过从用户输入的文件导入请求中解析出待导入文件的属性信息,以根据待导入文件的属性信息,获取待导入文件的处理规则,并根据待导入文件的处理规则中的连接标识,自动与目标数据库建立连接,根据多种处理子规则对待导入文件进行处理,以将待导入文件自动导入目标数据库中,整个文件导入流程均在线上自动完成,用户只需要输入文件导入请求,即可自动将待导入文件导入目标数据库,不仅操作简单,而且有效提高导入的效率、精度,以及数据库中的信息安全性。
附图说明
48.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
49.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
50.图1是本技术提供的文件导入方法的流程示意图之一;
51.图2是本技术提供的文件导入系统的结构示意图之一;
52.图3是本技术提供的文件导入方法中实体关系模型的结构示意图;
53.图4是本技术提供的文件导入方法的流程示意图之二;
54.图5是本技术提供的文件导入方法的流程示意图之三;
55.图6是本技术提供的文件导入系统的结构示意图之二;
56.图7是根据本技术实施例的一种文件导入方法的硬件环境示意图;
57.图8是本技术提供的电子系统的结构示意图。
具体实施方式
58.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
59.需要说明的是,本技术中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
60.现有技术中,通常通过人工进行excel表格文件导入数据库操作,导致整个数据集成,包括数据提取、传输和导入,无法自动化进行,自动化程度低,存在效率低和出错率高的问题,并且通过人工导入文件至数据库,则需要用户与数据库直连,存在信息安全风险。
61.现有技术中,还有部分用户使用数据仓库集成工具talend etl(extract transform load,数据仓库集成)工具开发工作流,在工作流中配置好文件清单,工作流运行的时候会遍历文件清单,根据文件名路由到对应的数据处理节点。数据处理节点中配置excel文件需要扫描的行列信息,并将特定行列的数据取出来,最后将取到的数据写入关系型数据库。但是这种文件导入方法存在如下缺陷:1)现有的技术扫描的文件清单是配置到工作流中的,修改需要导入的文件的路径时需要修改工作流之后重新编译执行,操作需要专业的etl开发知识,技术门槛较高。2)当有新的结构的excel文件需要处理时,使用现有技术需要开发一套新的工作流。多种结构的excel文件使得需要维护多套工作流,最终导致整套工作流极为笨重。3)工作流不是以明文的形式进行表示,使得从多个工作流中按照某些条件进行查询极为困难。例如,当用户想查看某一文件的处理规则时,需要逐个点开工作流,查看工作流的规则配置。除非维护有额外的文档来支持此类查询工作,而额外的文档维护又会导致工作量的增加。4)现有技术无法方便地实现excel表头的校验,如果实现此功能,需要针对每套工作流添加多个节点,此时会使维护工作更加困难,工作流更加笨重。
62.针对上述问题,本实施例提供一种文件导入方法,该方法将excel文件校验及处理的操作抽象为处理规则,并将处理规则、文件、数据库之间以er(entity relationship,实体关系)模型的形式固化在关系型数据库中,在接收到导入请求后,自动从文件导入请求中
解析出待导入文件的属性信息,根据待导入文件的属性信息,匹配获取相应的处理规则,根据处理规则中的连接标识,与目标数据库建立连接,并执行处理规则中的多种处理子规则,以将待导入文件自动导入所述目标数据库中,整个集成过程均在线上执行,具有以下优势:1)用户不需要关心底层配置细节,不需要专业的互联网知识,无需关心工作流编译等操作,只需要在浏览器里输出文件导入请求,即可自动实现文件的导入,有效降低人工编码经验,解决人工操作效率低和出错率高的问题;2)可将用户与数据库隔开,保证信息的安全性;3)新增文件处理规则轻量化,避免为每类文件的处理规则创建工作流,而是当有新的结构的文件需要处理时只需要在关系型数据库中新增几条处理规则配置记录,便能完整描述该新增文件的处理规则;4)处理规则在关系型数据库中以明文形式进行表示,规则数据以结构化形式存储,配置好的处理规则便于用户从多个维度对处理规则进行筛选查询,无需额外维护文档。5)文件校验(如表头校验)使用简洁的配置规则进行表述,只需在处理规则中配置校验规则,便可以灵活实现文件校验。
63.下面结合图1-图5描述本技术实施例的文件导入方法。
64.如图1所示,为本技术实施例提供的文件导入方法的流程示意图之一,该方法包括如下步骤:
65.步骤101,接收文件导入请求,从所述文件导入请求中解析出待导入文件的属性信息;
66.需要说明的是,该方法的执行主体为文件导入系统,该系统可以基于服务器、计算机等电子设备构建形成的,本实施例对此不作具体地限定。该系统可以基于b/s(browser/server,,浏览器/服务器架构)架构工具构建生成。
67.如图2所示,文件导入系统的前端ui中至少集成有以下技术栈:html(hypertext markup language,超文本标记语言)、css(cascading style sheets,层叠样式表)、快速和简洁的javascript框架jquery、和web(world wide web,全球广域网)框架bootstrap。
68.文件导入系统的应用逻辑逻辑可以使用python语言实现,具体借助python语言中的re(正则表达式)模块,以实现文件名和文件类型的匹配、借助xlrd模块实现文件处理,itertools模块实现遍历操作、借助jiaja2模块负责前置sql和后置sql的渲染,并将处理规则等配置信息保存至sqlite数据库中,由轻量级网络开发框架flask来构建文件导入系统的web应用。
69.文件导入系统的服务端应用可以部署在linux服务系统中。
70.其中,文件导入请求用于请求将待导入文件导入目标数据库;
71.文件导入请求为用户在文件导入系统的前端ui(user interface,用户界面)以语音、文字和下拉选择等形式输入的。
72.待导入文件为需要导入数据库的文件,如excel表格文件等。
73.文件导入请求中至少携带有待导入文件以及待导入文件的属性信息等文件信息。
74.属性信息包括但不限于名称和编号,本实施例对此不做具体地限定。
75.可选地,文件导入系统实时监听文件导入请求,在接收到用户输入的文件导入请求的情况下,对文件导入请求做出响应,并从文件导入请求中解析出待导入文件的属性信息。
76.步骤102,根据所述待导入文件的属性信息,查找所述待导入文件的处理规则;
77.其中,关系型数据库的er模型中预先配置有多种文件的属性信息与处理规则之间的直接或间接的实体关系。其中,直接的实体关系为文件的属性信息与处理规则之间直接对应,间接的实体关系为文件的属性信息与中间信息之间直接对应,中间信息与处理规则之间直接对应。
78.如图3所示,为关系型数据库中的er模型的结构示意图,主要包括三个实体,依次为连接清单列表、处理规则列表和文件清单列表;
79.其中,连接清单与处理规则具有1对多的关系,即一个连接信息可以被多个处理规则引用;文件类型与处理规则是1对多的关系,即一个文件类型可以拥有多条处理规则;一条处理规则只能归属于一个连接标识,一条处理规则只能对应一个文件类型。
80.连接清单列表中的每一连接信息包括但不限于,连接标识,如id(identity document,身份标识)、连接信息描述、数据库类型、连接地址、账号和密码。
81.处理规则列表中的每一处理规则包括但不限于,处理规则标识,如id、处理规则信息描述、处理规则模式划分、文件类型标识、前置断言处理子规则、工作表(简称sheet)属性信息,如名称或编号、导入内容所在头行数、导入行数限制、目标列映射子规则、附加列映射子规则、连接标识、数据库表属性信息、数据库前置处理子规则(下文也称前置sql或第一数据库处理子规则)、数据库后置处理子规则(下文也称后置sql或第二数据库处理子规则)、处理规则标签和处理规则删除标记。
82.文件类型清单表中的每一文件类型信息中包括但不限于,文件类型标识、文件类型信息描述、文件正则匹配规则。
83.需要说明的是,关系型数据库还可以根据实际需求进行适应性地扩展和配置修改,如当有新的结构的excel表格文件需要处理时只需要在关系型数据库中增加该文件的属性信息与处理规则之间的实体关系记录,便能完整描述该新增文件的处理规则。并且关系型数据库还可供用户随时查看,以供用户实时获取各种文件的处理规则,实现可对处理规则从多个维度进行查看、筛选和分析。并且处理规则在关系型数据库里以明文形式进行存储,配置好处理规则之后自然而然可以从多个维度对处理规则进行筛选查询,无需额外维护文档。
84.可选地,在获取到待导入文件的属性信息之后,可以在关系型数据库的er模型中直接或间接查找与待导入文件的属性信息匹配的处理规则,以将查找到的处理规则作为待导入文件的处理规则。
85.每一待导入文件的属性信息可以与一条或多条处理规则对应;相应地,查找到的处理规则可以是一条或多条,本实施例对此不做具体地限定。
86.步骤103,在查找到所述待导入文件的至少一条处理规则的情况下,根据所述处理规则中的连接标识,与目标数据库建立连接;
87.其中,连接标识用于标识文件导入系统与待接入目标数据库之间的连接信息,以由文件导入系统根据连接信息与目标数据库建立连接。
88.连接信息包括但不限于连接地址、账号和密码。
89.目标数据库为待导入文件所需导入数据的数据库。
90.可选地,在查找到待导入文件的至少一条处理规则时,可以依次执行每一条处理规则,以将待导入文件顺利导入目标数据库。
91.对于每一处理规则执行如下操作:
92.从该处理规则中解析出连接标识,根据连接标识查找相应的连接信息,进而根据连接信息与目标数据库建立连接。
93.需要说明的是,在建立连接后还可以将连接记录存放到连接缓存中,以使得文件导入系统下次再向该目标数据库中导入文件时,可直接利用该连接,以将文件导入该目标数据库,避免重复连接,提高连接效率,进而提高文件导入效率。
94.在未查找到处理规则时,则直接向用户返回告警信息,以警示用户待导入文件导入失败或文件导入请求格式错误等,文件导入流程结束。
95.步骤104,根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中。
96.其中,处理子规则包括但不限于数据校验处理规则、格式转换处理规则和数据映射处理规则,本实施例对此不做具体地限定。
97.可选地,在与目标数据库成功建立连接的情况下,可以根据处理规则中的各种处理子规则的处理顺序,依次执行各处理子规则,以将待导入文件导入目标数据库,在导入完成后,整个流程结束。
98.本实施例通过从用户输入的文件导入请求中解析出待导入文件的属性信息,以根据待导入文件的属性信息,获取待导入文件的处理规则,并根据待导入文件的处理规则中的连接标识,自动与目标数据库建立连接,根据多种处理子规则对待导入文件进行处理,以将待导入文件自动导入目标数据库中,整个文件导入流程均在线上自动完成,用户只需要输入文件导入请求,即可自动将待导入文件导入目标数据库,不仅操作简单,而且有效提高导入的效率、精度,以及数据库中的信息安全性。
99.在一些实施例中,所述处理规则包括断言处理子规则和导入处理子规则;
100.步骤104中所述根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中,包括:
101.根据所述断言处理子规则,从所述待导入文件中截取目标内容,并对所述目标内容进行校验;
102.在所述目标内容通过校验的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入所述目标数据库中;所述导入处理操作包括数据转换操作和数据映射操作。
103.其中,断言处理子规则用于在对待导入文件进行导入操作之前执行,以实现对待导入文件的前置校验,包括但不限于校验待导入excel文件的表头,或者用来校验待导入excel文件任意单元格的内容是否符合预期条件。其中,断言处理子规则可以是以json(javascript object notation,js对象简谱)等格式存储在关系型数据库中。
104.导入处理子规则用于在对待导入文件进行导入时执行,以实现将待导入文件导入目标数据库。
105.目标内容为待导入文件中与断言处理子规则相匹配的待校验数据,如表头数据和任意单元格的内容等。
106.可选地,在确定与目标数据库之间的连接状态为连接成功的情况下,根据断言处理子规则(下文也称pre_assert)的描述信息从待导入文件中截取目标内容,并将目标内容
与期望条件进行匹配,以确定目标内容是否满足期望条件,在不满足期望条件的情况下,确定目标内容未通过校验,返回告警信息,并标识该处理规则结束。
107.例如,从待导入文件中截取表头信息,并将表头信息与期望条件进行比较,以对表头信息进行验证。通过对待导入文件的表头校验的规则进行提炼,将待导入文件(excel表格文件)的表头校验功能使用简洁的配置规则进行表述,只需根据相应的规则配置即可灵活进行excel表头校验。
108.在满足期望条件的情况下,确定目标内容通过校验;此时继续执行下一处理子规则。
109.其中,下一处理子规则可以是导入处理子规则,也可以是导入处理子规则之前的相关处理子规则,本实施例对此不做具体地限定。
110.在下一处理子规则为导入处理子规则的情况下,执行导入处理子规则对应的数据转换操作和数据映射操作等导入处理操作,将待导入文件导入该条处理规则描述的数据库信息中,即目标数据库中。
111.其中,数据转换操作包括格式转换操作和内容转换操作;数据映射操作包括目标列映射处理操作和附加列映射处理操作。
112.本实施例中通过对待导入文件执行断言处理子规则,可以有效确保待导入文件的正确性,在确定待导入文件通过验证的情况下,对待导入文件进行导入操作,以提高文件导入的成功率和可靠性。
113.在一些实施例中,步骤104中所述在所述目标内容通过校验的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入所述目标数据库中,包括:
114.在所述目标内容通过校验的情况下,若确定所述处理规则中包含第一数据库处理子规则,则对所述目标数据库执行所述第一数据库处理子规则对应的第一处理操作;所述第一处理操作包括目标文件清除操作和/或缓存释放操作;
115.在确定所述第一处理操作执行完成的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入处理后的目标数据库中。
116.其中,第一数据库处理子规则(即前置sql,简称pre_sql)用于在对待导入文件进行导入操作之前执行,以实现对数据库的第一处理操作,即前置sql操作。第一数据库处理子规则具体可以根据实际需求进行设置,包括但不限于目标文件清除处理规则和/或缓存释放处理规则。
117.可选地,在目标内容校验通过的情况下,继续判断处理规则中是否包含第一数据库处理子规则,在确定处理规则中不包含第一数据库处理子规则的情况下,直接执行导入处理子规则对应的导入处理操作,将待导入文件导入目标数据库中。
118.在确定处理规则中包含第一数据库处理子规则的情况下,先对第一数据库处理子规则的内容进行渲染,如采用jinja2 render工具进行渲染,以将第一数据库处理子规则中的待使用变量替换成相应的数值,然后,再对目标数据库执行渲染后的第一数据库处理子规则对应的目标文件清除操作和/或缓存释放操作等,以对目标数据库中的目标文件进行清除和/或存储释放。
119.然后,再执行导入处理子规则对应的导入处理操作,以将待导入文件导入目标数
据库中。
120.本实施例中,可以根据实际需求灵活设置第一数据库处理子规则,以在将待导入文件导入目标数据库之前,对目标数据库中进行相关处理,使得目标数据库具有良好性能,进而提高文件导入的成功率。
121.在一些实施例中,所述方法还包括:
122.在所述确定所述待导入文件处于导入完成状态的情况下,若确定所述处理规则中包含第二数据库处理子规则,则对导入后的目标数据库执行所述第二数据库处理子规则对应的第二处理操作;
123.其中,所述第二处理操包括所述待导入文件的汇总操作、内容增加操作和内容删除操作中的一种或多种组合。
124.其中,第二数据库处理子规则(即后置sql,简称suf_sql)用于在对待导入文件进行导入操作之后执行,以实现对数据库的第二处理操作,即后置sql操作。第二数据库处理子规则具体可以根据实际需求进行设置,包括但不限于文件汇总规则、内容增加规则和内容删除规则等。
125.可选地,在确定待导入文件处于导入完成状态的情况下,继续判断处理规则中是否包含第二数据库处理子规则,在确定处理规则中不包含第二数据库处理子规则的情况下,直接结束文件导入流程。
126.在确定处理规则中包含第二数据库处理子规则的情况下,先对第二数据库处理子规则的内容进行渲染,如采用jinja2 render工具进行渲染,以将第二数据库处理子规则中的待使用变量替换成相应的数值,然后,再对目标数据库执行渲染后的第二数据库处理子规则对应的汇总操作、内容增加操作和内容删除操作中的一种或多种组合的处理从操作,以对目标数据库中的待导入文件进行汇总、内容增加和内容删除。
127.本实施例中,可以根据实际需求灵活设置第二数据库处理子规则,以在将待导入文件导入目标数据库之后,对目标数据库中进行相关处理,以实现自动对目标数据库中的待导入文件进行汇总、内容增加和内容删除等处理操作,提高对待导入文件的管理效率。
128.如图4所示,将待导入文件导入目标数据库的具体步骤包括:
129.步骤401,执行处理规则时,先根据连接标识(简称conn_id)与目标数据库建立连接,并将连接记录放入缓存中;
130.步骤402,获取到连接后,根据断言处理子规则(即pre_assert),对待导入文件的目标内容进行校验;
131.步骤403,判断待导入文件的目标内容是否校验通过;
132.步骤404,在目标内容通过校验的情况下,判断处理规则中是否包含第一数据库处理子规则(即pre_sql);在确定处理规则中包含pre_sql的情况下,执行步骤405;在确定处理规则中不包含pre_sql的情况下,执行步骤407;
133.步骤405,采用jinja2 render工具对pre_sql进行渲染;
134.步骤406,执行渲染后的pre_sql,以对目标数据库进行前置处理;
135.步骤407,执行导入处理子规则,以将待导入文件导入目标数据库;
136.步骤408,在确定待导入文件处于导入完成状态的情况下,继续判断处理规则中是否包含第二数据库处理子规则(即suf_sql);在确定处理规则中不包含suf_sql的情况下,
结束文件导入流程;在确定处理规则中包含suf_sql的情况下,执行步骤409;
137.步骤409,采用jinja2 render工具对suf_sql进行渲染;
138.步骤410,执行渲染后的suf_sql,以对目标数据库进行后置处理。
139.在一些实施例中所述方法还包括:
140.在确定所述处理规则中包含多种模式的导入处理子规则的情况下,若根据任一模式的导入处理子规则,将所述待导入文件成功导入所述目标数据库中,则将所述待导入文件更新为导入完成状态。
141.其中,处理规则中包含多种模式的导入处理子规则,以适应不同时间节点待导入文件的内容或格式变化,进而提高文件导入的成功率。
142.可选地,判断处理规则中是否包含多种模式的导入处理子规则,在确定处理规则中包含多种模式的导入处理子规则的情况下,若执行任一模式的导入处理子规则之后,可将待导入文件成功导入目标数据库,则将该待导入文件更新为导入完成状态。
143.在一些实施例中,步骤104中所述根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中,包括:
144.根据所述处理规则中的数据库表属性信息,获取所述目标数据库中的目标数据库表;
145.根据所述处理规则中的工作表属性信息,获取所述待导入文件中的目标工作表;
146.根据所述多种处理子规则,将所述目标工作表导入所述目标数据库表中。
147.其中,处理规则中还包括数据库表属性信息和工作表属性信息。
148.数据库表属性信息包括但不限于数据库表名称和数据库表编号,本实施例对此不做具体地限定。每一数据库表具有唯一的数据库表属性信息。
149.工作表属性信息包括但不限于工作表名称和工作表编号,本实施例对此不做具体地限定。每一工作表具有唯一的工作表属性信息。
150.目标数据库表为目标数据库中接收待导入文件的导入数据的数据库表,目标工作表为待导入文件中所需导入的工作表。
151.可选地,根据er模型中预先存储的数据库表属性信息与数据库之间的实体关系,即可获取到与数据库表属性信息相应的目标数据库表;同时,根据er模型中预先存储的工作表属性信息与工作表之间的实体关系,即可获取到与工作表属性信息相应的工作表。
152.然后,根据多种处理子规则,将目标工作表中的内容导入目标数据库表中。
153.本实施例中根据数据库表属性信息和工作表属性信息,即可将目标工作表精准导入目标数据库表中。
154.在一些实施例中,步骤103中所述根据所述处理规则中的连接标识,与目标数据库建立连接,包括:
155.根据所述连接标识,查找所述目标数据库的连接地址、账号、密码,以及数据库类型;
156.通过所述数据库类型对应的连接模块,以及所述账号和所述密码,登录所述连接地址;
157.根据登录结果,与所述目标数据库建立连接。
158.如图3所示,连接标识与连接地址、账号、密码,以及数据库类型之间的实体关系,
预先存储在关系型数据库中的连接清单列表中。
159.不同数据库类型对应的不同的连接模块,不同连接模块具有不同的连接策略。
160.可选地,从处理规则中解析出连接标识后,可以根据连接标识,在连接清单列表中查找与该连接标识对应的连接地址、账号、密码,以及数据库类型;
161.通过数据库类型对应连接模块,采用相应的连接策略,将相应的账号和密码输入相应的连接地址,以在登录成功的情况下,与目标数据库建立连接。
162.本实施例通过连接标识即可获取相应的连接地址、账号、密码,以及数据库类型,以快速有效地与目标数据库建立连接,进而提高文件导入的效率和准确性。
163.在一些实施例中,步骤102中所述根据所述待导入文件的属性信息,查找所述待导入文件的处理规则,包括:
164.根据所述待导入文件的属性信息,查找所述待导入文件的匹配规则;
165.根据所述匹配规则和所述属性信息,查找所述待导入文件的类型标识;
166.在查找到所述待导入文件的类型标识的情况下,查找所述类型标识对应的处理规则标识;
167.根据所述处理规则标识,查找所述待导入文件的处理规则。
168.如图3所示,待导入文件的属性信息与匹配规则,以及属性信息与类型标识之间的实体关系存储在关系型数据库中的文件清单列表中。类型标识与处理规则标识,处理规则标识与处理规则之间的实体关系存储在关系型数据库中的处理规则列表中。
169.可选地,匹配待导入文件的处理规则的步骤具体包括:
170.根据待导入文件的属性信息(如名称),在文件清单列表中查找待导入文件的属性信息对应的匹配规则,然后根据匹配规则,将待导入文件的属性信息与文件清单列表中类型标识进行匹配,以获取待导入文件的类型标识;然后,根据类型标识在处理规则列表中查找类型标识对应的处理规则标识,然后,根据处理规则标识在处理规则列表中查找处理规则标识对应的处理规则。
171.本实施例中通过待导入文件的属性信息在关系型数据库中实体关系列表中进行层层查找,即可快速准确地获取待导入文件的处理规则,有效提高文件导入的准确性和高效性。
172.在一些实施例中,步骤102中所述根据所述待导入文件的属性信息,查找所述待导入文件的处理规则,包括:
173.在确定所述待导入文件为压缩文件,且所述待导入文件处于待解压缩状态的情况下,对所述待导入文件进行解压缩,得到所述待导入文件的多个子文件;
174.根据每一子文件的属性信息,查找所述待导入文件的处理规则。
175.可选地,在对待导入文件进行处理规则查找之前,可先判断待导入文件是否为压缩文件,即判断待导入文件的文件格式是否为rar、zip和7z等他压缩格式。
176.在确定待导入文件的文件格式为rar、zip或7z等他压缩格式的情况下,确定待导入文件为压缩文件。并判断文件待导入文件是否处于待解压缩状态,在确定待导入文件未处于待解压缩状态的情况下,直接根据待导入文件的属性信息,查找待导入文件的处理规则,以将待导入文件导入目标数据库。
177.在确定待导入文件处于待解压缩状态的情况下,对待导入文件进行解压缩处理,
以得到待导入文件的多个子文件。然后,根据每一子文件的属性信息,查找待导入文件的处理规则,以将待导入文件导入目标数据库。
178.本实施例根据待导入文件的待解压缩状态,实时对待导入文件进行解压缩处理,避免受文件压缩状态的影响,以更加精准地获取待导入文件的处理规则,进而提高文件导入的成功率。
179.如图5所示,为文件导入方法的整体流程示意图,具体步骤包括:
180.步骤501,获取待导入文件;
181.步骤502,文件导入系统中的程序先判断待导入文件是否为压缩文件,若待导入文件为压缩文件,则执行步骤503后针对单个文件进行导入处理;若为非压缩文件,则执行步骤504,直接对待导入文件进行导入处理;
182.步骤503,对待导入文件进行解压缩;
183.步骤504,对待导入文件进行处理时,先对文件属性信息进行正则匹配,匹配到一个唯一的文件类型标识(简称file_cat);
184.步骤505,判断是否匹配到文件类型标识;若匹配到文件类型标识,则执行步骤506,若未匹配到文件类型标识,则执行步骤509;
185.步骤506,根据file_cat在关系型数据库的er模型中匹配相应的处理规则,此时会匹配到0到多条处理规则。
186.步骤507,判断是否匹配到处理规则,若匹配到处理规则,则执行步骤508,若匹配到处理规则,则执行步骤509;
187.步骤508,根据处理规则的描述对文件进行处理。若匹配到多条处理规则时,将会对每个处理规则进行处理。处理完成之后,整个文件导入流程结束。
188.步骤509,直接返回报错信息,然后整个文件导入流程结束。
189.下面对本技术提供的文件导入系统进行描述,下文描述的文件导入系统与上文描述的文件导入方法可相互对应参照。
190.如图6所示,本实施例提供一种文件导入系统,该系统包括解析模块601、匹配模块602、连接模块603和导入模块604,其中:
191.解析模块601用于接收文件导入请求,从所述文件导入请求中解析出待导入文件的属性信息;
192.匹配模块602用于根据所述待导入文件的属性信息,查找所述待导入文件的处理规则;
193.连接模块603用于在查找到所述待导入文件的至少一条处理规则的情况下,根据所述处理规则中的连接标识,与目标数据库建立连接;
194.导入模块604用于根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中。
195.本实施例通过从用户输入的文件导入请求中解析出待导入文件的属性信息,以根据待导入文件的属性信息,获取待导入文件的处理规则,并根据待导入文件的处理规则中的连接标识,自动与目标数据库建立连接,根据多种处理子规则对待导入文件进行处理,以将待导入文件自动导入目标数据库中,整个文件导入流程均在线上自动完成,用户只需要输入文件导入请求,即可自动将待导入文件导入目标数据库,不仅操作简单,而且有效提高
导入的效率、精度,以及数据库中的信息安全性。
196.在一些实施例中,所述处理规则包括断言处理子规则和导入处理子规则;
197.导入模块,具体用于:根据所述断言处理子规则,从所述待导入文件中截取目标内容,并对所述目标内容进行校验;在所述目标内容通过校验的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入所述目标数据库中;所述导入处理操作包括数据转换操作和数据映射操作。
198.在一些实施例中,导入模块,还用于:在所述目标内容通过校验的情况下,若确定所述处理规则中包含第一数据库处理子规则,则对所述目标数据库执行所述第一数据库处理子规则对应的第一处理操作;所述第一处理操作包括目标文件清除操作和/或缓存释放操作;在确定所述第一处理操作执行完成的情况下,根据所述导入处理子规则,对所述待导入文件执行导入处理操作,以将所述待导入文件导入处理后的目标数据库中。
199.在一些实施例中,导入模块,还用于:在所述确定所述待导入文件处于导入完成状态的情况下,若确定所述处理规则中包含第二数据库处理子规则,则对导入后的目标数据库执行所述第二数据库处理子规则对应的第二处理操作;其中,所述第二处理操包括所述待导入文件的汇总操作、内容增加操作和内容删除操作中的一种或多种组合。
200.在一些实施例中,导入模块,还用于:在确定所述处理规则中包含多种模式的导入处理子规则的情况下,若根据任一模式的导入处理子规则,将所述待导入文件成功导入所述目标数据库中,则将所述待导入文件更新为导入完成状态。
201.在一些实施例中,导入模块,还用于:根据所述处理规则中的数据库表属性信息,获取所述目标数据库中的目标数据库表;根据所述处理规则中的工作表属性信息,获取所述待导入文件中的目标工作表;根据所述多种处理子规则,将所述目标工作表导入所述目标数据库表中。
202.在一些实施例中,连接模块,具体用于:根据所述连接标识,查找所述目标数据库的连接地址、账号、密码,以及数据库类型;通过所述数据库类型对应的连接模块,以及所述账号和所述密码,登录所述连接地址;根据登录结果,与所述目标数据库建立连接。
203.在一些实施例中,匹配模块,具体用于:根据所述待导入文件的属性信息,查找所述待导入文件的匹配规则;根据所述匹配规则和所述属性信息,匹配所述待导入文件的类型标识;在查找到所述待导入文件的类型标识的情况下,查找所述类型标识对应的处理规则标识;根据所述处理规则标识,查找所述待导入文件的处理规则。
204.在一些实施例中,匹配模块,还用于:在确定所述待导入文件为压缩文件,且所述待导入文件处于待解压缩状态的情况下,对所述待导入文件进行解压缩,得到所述待导入文件的多个子文件;根据每一子文件的属性信息,查找所述待导入文件的处理规则。
205.根据本技术实施例的一个方面,提供了一种文件导入方法。该文件导入方法广泛应用于智慧家庭(smart home)、智能家居、智能家用设备生态、智慧住宅(intelligence house)生态等全屋智能数字化控制应用场景。可选地,在本实施例中,上述文件导入方法可以应用于如图7所示的由终端设备701和服务器702所构成的硬件环境中。如图7所示,服务器702通过网络与终端设备701进行连接,可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器702提供数据存储服务,可在服务器上或独立于服务器配置云计算和/或边缘计算服务,用于为服务器702
提供数据运算服务。
206.上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:wifi(wireless fidelity,无线保真),蓝牙。终端设备701可以并不限定于为pc、手机、平板电脑、智能空调、智能烟机、智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、智能门锁等。
207.图8示例了一种电子系统的实体结构示意图,如图8所示,该电子系统可以包括:处理器(processor)801、通信接口(communications interface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行文件导入方法,该方法包括:接收文件导入请求,从所述文件导入请求中解析出待导入文件的属性信息;根据所述待导入文件的属性信息,查找所述待导入文件的处理规则;在查找到所述待导入文件的至少一条处理规则的情况下,根据所述处理规则中的连接标识,与目标数据库建立连接;根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中。
208.此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
209.另一方面,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在计算机可读的存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的文件导入方法,该方法包括:接收文件导入请求,从所述文件导入请求中解析出待导入文件的属性信息;根据所述待导入文件的属性信息,查找所述待导入文件的处理规则;在查找到所述待导入文件的至少一条处理规则的情况下,根据所述处理规则中的连接标识,与目标数据库建立连接;根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中。
210.又一方面,本技术还提供一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述各方法提供的文件导入方法,该方法包括:接收文件导入请求,从所述文件导入请求中解析出待导入文件的属性信息;根据所述待导入文件的属性信息,查找所述待导入文件的处理规则;在查找到所述待导入文件的至少一条处理规则的情况下,根据所述处理规则中的连接标识,与目标数据库建立连接;根据所述处理规则中的多种处理子规则,将所述待导入文件导入所述目标数据库中。
211.以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可
以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
212.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
213.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献