数据文件的存储方法、装置、电子设备及存储介质与流程

文档序号:29702175发布日期:2022-04-16 14:48阅读:140来源:国知局
数据文件的存储方法、装置、电子设备及存储介质与流程

1.本技术涉及数据处理技术领域,尤其涉及一种数据文件的存储方法、装置、电子设备及存储介质。


背景技术:

2.数据库是结构化信息或数据的有组织的集合,通常由数据库管理系统来控制。现有技术中,针对不同类型的的数据,往往需要针对数据存储使用方式进行技术选型,选用适合场景的数据库。
3.但是,针对现有技术的情况,如果存储的类型较复杂,需要用户自己去分解需要存储的数据,操作过程复杂,不方便使用。


技术实现要素:

4.有鉴于此,本技术的目的在于提出一种数据文件的存储方法、装置、电子设备及存储介质以解决或部分解决上述技术问题。
5.基于上述目的,本技术的第一方面提供了一种数据文件的存储方法,应用于电子设备,在所述电子设备上设有与关系型数据库相匹配的存储入口;
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.在一些实施例中,所述响应于确定所述关系型数据库中存储的目标数据满足转换存储条件,从多个复杂类型存储数据库中确定所述目标数据对应的转换存储数据库,包括:
51.响应于所述关系型数据库中存储的目标数据的读取频率大于等于预定频率阈值,确定所述目标数据对应的转换存储数据库为远程字典数据库。
52.在一些实施例中,所述方法还包括:
53.接收终端发来的查询条件;
54.响应于确定所述查询条件为单个数据类型的查询条件,根据所述查询条件从对应存储数据库中调取查询数据,根据所述查询数据从所述关系型数据库中确定对应的目标索引信息,基于所述关系型数据库根据所述目标索引信息查找与所述查询数据相关联的关联数据;
55.将所述查询数据与所述关联数据组合后反馈至所述终端。
56.在一些实施例中,所述方法还包括:
57.接收终端发来的查询条件;
58.响应于确定所述查询条件为组合数据类型的查询条件,根据所述查询条件在所述关系型数据库中筛选多个目标索引信息,其中,组合数据类型包括至少两个数据类型;
59.基于所述关系型数据库根据所述多个目标索引信息确定多个查询数据,将多个查询数据组合后反馈至所述终端。
60.基于同一个发明构思,本技术的第二方面提出了一种数据文件的存储装置,所述
存储装置设置在所述电子设备上,所述电子设备上设有与所述存储装置中的关系型数据库相匹配的存储入口,所述存储装置包括:
61.接收模块,用于通过所述存储入口接收数据文件,对所述数据文件进行数据类型分析得到所述数据文件的目标数据类型;
62.复杂数据存储模块,用于响应于确定所述目标数据类型包括复杂数据类型,从多个复杂类型存储数据库中匹配与所述目标数据类型对应的目标存储数据库,确定所述目标存储数据库中的目标存储地址,根据所述目标存储地址生成索引信息存储在所述关系型数据库中,并将所述数据文件存储在所述目标存储地址中;
63.简单数据存储模块,用于响应于确定所述目标数据类型包括简单数据类型,将所述数据文件存储在所述关系型数据库中。
64.基于同一个发明构思,本技术的第三方面提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
65.基于同一个发明构思,本技术的第四方面提出了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行第一方面所述的方法。
66.从上面所述可以看出,本技术提供的数据文件的存储方法、装置、电子设备及存储介质,能够利用统一的存储入口接收数据文件,并自动对数据文件进行数据类型分析,这样用户无需手动选择数据类型;然后会根据数据文件的目标数据类型自动分配相应的存储数据库,存储过程中分为两种情况,一种是针对复杂数据类型的存储需要在关系型数据库中形成索引信息,再存储在对应目标存储数据库的目标存储地址中,另一种是针对简单数据类型,可以直接在关系型数据库中进行存储。这样,无需用户手动选择数据类型,给用户带来便利,并且针对复杂数据类型的数据文件还能在关系型数据库中形成索引进而方便根据索引进行数据查找,提高数据查询的效率。
附图说明
67.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
68.图1为本技术实施例的应用场景示意图;
69.图2a为本技术实施例的数据文件的存储方法的流程图;
70.图2b为本技术实施例的转换存储步骤的流程图;
71.图2c为本技术实施例的数据查询步骤的一个流程图;
72.图2d为本技术实施例的数据查询步骤的另一个流程图;
73.图3为本技术实施例的数据文件的存储装置的结构框图;
74.图4为本技术实施例的电子设备的结构示意图。
具体实施方式
75.下面将参考若干示例性实施方式来描述本技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本技术,而并非以任何方式限制本技术的范围。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
76.根据本技术的实施方式,提出了一种程序测试项目的部署方法、访问方法及相关设备。
77.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
78.下面参考本技术的若干代表性实施方式,详细阐释本技术的原理和精神。
79.为了方便理解,下面对本技术实施例中涉及的名词进行解释:
80.数据库:按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在电子设备内的、有组织的、可共享的、统一管理的大量数据的集合。
81.mysql:是一种关系型数据库管理系统,由瑞典mysql ab公司开发,属于oracle旗下产品,使用的sql(structured query language,结构化查询语言)编写,能够将数据保存在不同的表中。
82.mongodb:基于分布式文件存储的数据库,有c++语言编写,旨在为web(网络)应用提供可扩展的高性能数据存储解决方案。
83.postgresql:是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ordbms),是以加州大学计算机系开发的postgres,4.2版本为基础的对象-关系型数据库管理系统。
84.elasticsearch:是一个基于lucene(全文检索)的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于restful web接口,elasticsearch是用java语言开发的,并作为apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
85.对象存储:基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象,对象包含数据,每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级;文件和对象都有与它们所包含的数据相关的元数据,对象是以扩展元数据为特征的,每个对象都被分配一个唯一的标识符,允许一个服务器或者最终用户来检索对象,而不必知道数据的物理地址。
86.redis:远程字典服务,是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。
87.influxdb:由influxdata开发的开源时序型数据库,由go写成,着力于高性能地查询与存储时序型数据。
88.json:(javascript object notation,js对象简谱)是一种轻量级的数据交换格式,基于ecmascript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
89.uuid:universally unique identifier,通用唯一识别码,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分,其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
90.本技术提供了一种数据文件的存储方案,能够利用统一的存储入口接收数据文件,并自动对数据文件进行数据类型分析,这样用户无需手动选择数据类型;然后会根据数据文件的目标数据类型自动分配相应的存储数据库,存储过程中分为两种情况,一种是针对复杂数据类型的存储需要在关系型数据库中形成索引信息,再存储在对应目标存储数据库的目标存储地址中,另一种是针对简单数据类型,可以直接在关系型数据库中进行存储。这样,无需用户手动选择数据类型,给用户带来便利,并且针对复杂数据类型的数据文件还能在关系型数据库中形成索引进而方便根据索引进行数据查找,提高数据查询的效率。
91.参考图1,其为本技术实施例提供的数据文件的存储方法的应用场景示意图。该应用场景包括终端设备101、服务器102、和数据存储系统103。其中,终端设备101、服务器102以及数据存储系统103之间均可通过有线或无线的通信网络连接。终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备视、个人数字助理(personal digital assistant,pda)或其它能够实现上述功能的电子设备等。服务器102和数据存储系统103均可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
92.服务器102用于向终端设备101的用户提供数据文件的存储服务,终端设备101中安装有与服务器102通信的客户端,用户可以通过客户端向服务器发送数据文件给服务器。服务器102利用统一的存储入口接收数据文件,并自动对数据文件进行数据类型分析,这样用户无需手动选择数据类型;然后会根据数据文件的目标数据类型自动分配相应的存储数据库,存储过程中分为两种情况,一种是针对复杂数据类型的存储需要在关系型数据库中形成索引信息,再存储在对应目标存储数据库的目标存储地址中,另一种是针对简单数据类型,可以直接在关系型数据库中进行存储。数据存储系统103为服务器102的工作运行提供数据存储支持。
93.下面结合图1的应用场景,来描述根据本技术示例性实施方式的程序测试项目的部署方法以及程序测试项目的访问方法。需要注意的是,上述应用场景仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。相反,本技术的实施方式可以应用于适用的任何场景。
94.本技术实施例提供了一种数据文件的存储方法,该数据文件的存储方法应用于电子设备,在所述电子设备上设有与关系型数据库相匹配的存储入口。其中,该电子设备优选为服务器。
95.参考图2a,本实施例的数据文件的存储方法,可以包括以下步骤:
96.步骤201,通过所述存储入口接收数据文件,对所述数据文件进行数据类型分析得到所述数据文件的目标数据类型。
97.目标数据类型可以包括复杂数据类型和/或简单数据类型,其中,复杂数据类型组成较为复杂,需要复杂的存储方案进行存储,简单数据类型只需简单的存储方案就可以进行存储。
98.得到的目标数据类型可能是复杂数据类型和简单数据类型的组合形式,也可能是多个复杂数据类型的组合形式,也可能是只有复杂数据类型的形式,也可能是只有简单数
据类型的形式。本实施例是优选针对复杂数据类型和简单数据类型的组合形式或者多个复杂数据类型的组合形式进行存储的方案。
99.在一些实施例中,复杂数据类型包括下列至少之一:非结构化对象简谱类、矢量数据类、音视频/文件类、键值对数据类、时序积累数据类、长文本类。
100.对应的复杂类型存储数据库包括下列至少之一:分布式文件存储数据库、对象-关系型数据库、对象存储数据库、分布式全文检索数据库、开源时序型数据库、远程字典数据库。
101.其中,分布式文件存储数据库用于存储非结构化对象简谱类的数据,对象-关系型数据库用于存储矢量数据类的数据,对象存储数据库用于存储音视频/文件类的数据,分布式全文检索数据库用于存储键值对数据类的数据,开源时序型数据库用于存储时序积累数据类的数据,远程字典数据库用于存储长文本类的数据。
102.简单数据类型包括下列至少之一:短字符串类、标量数据类。简单数据类型对应分配的存储库为关系型数据库。
103.其中,复杂数据类型还包括其他数据类。对应复杂类型存储数据库还包括其他数据库。如果不能归类到上述任一数据类型中,就将其归类到其他数据类,并对应存储在其他数据库中。
104.步骤202,响应于确定所述目标数据类型包括复杂数据类型,从多个复杂类型存储数据库中匹配与所述目标数据类型对应的目标存储数据库,确定所述目标存储数据库中的目标存储地址,根据所述目标存储地址生成索引信息存储在所述关系型数据库中,并将所述数据文件存储在所述目标存储地址中。
105.复杂数据类型的数据不能直接存储在关系型数据库中,需要根据目标存储地址生成对应的索引信息,将索引信息存储在关系型数据库中。其中,可以先生成索引信息,在存储数据文件;也可以先存储数据文件,再生成索引信息;也可以存储数据文件和生成索引信息同时进行,具体顺序可以根据实际需要进行选定,这里不作具体限定。
106.针对各种复杂数据类型的存储过程具体如下:
107.在步骤202中,响应于确定所述目标数据类型包括:非结构化对象简谱类(即,非结构化json);根据所述非结构化对象简谱类从多个复杂类型存储数据库中匹配分布式文件存储数据库(即,mongodb),确定所述数据文件中所述非结构化对象简谱类对应的非结构化数据,在所述分布式文件存储数据库中的目标存储地址;将所述目标存储地址作为索引信息存储在所述关系型数据库中;将所述非结构化数据转换成计算机数据交换格式存储在所述分布式文件存储数据库的目标存储地址中。
108.在上述实施例中,针对非结构化对象简谱类的数据可以将其在mongodb中的存储地址作为索引信息存储在关系型数据库中,这样后续查询过程中直接根据关系型数据库中的索引信息从mongodb中调取对应存储的数据即可完成查询。
109.在步骤202中,响应于确定所述目标数据类型包括:矢量数据类;根据所述矢量数据类从多个复杂类型存储数据库中匹配对象-关系型数据库(即,postgresql),确定所述数据文件中所述矢量数据类对应的矢量数据(例如,对应的位置坐标),在所述对象-关系型数据库中的目标存储地址;将所述矢量数据存储在所述对象-关系型数据库中的目标存储地址;生成所述矢量数据在所述对象-关系型数据库中的表名;将所述表名和所述目标存储地
址组合作为索引信息存储在所述关系型数据库中。
110.在上述实施例中,针对矢量数据需要存储在postgresql中,如果直接存储在postgresql中不方便查找,由于矢量数据在postgresql中是以表格的方式进行存储的,因此根据矢量数据生成对应的表名,将表名和目标存储地址组合形成索引信息,将索引信息存储在关系型数据库中。这样后续查询矢量数据时,可以根据索引信息中的表名找到对应的查询目标,根据目标存储地址从postgresql中调取其中的矢量数据,进而完成快速查询矢量数据的过程。
111.在步骤202中,响应于确定所述目标数据类型包括:音视频/文件类;根据所述音视频/文件类从多个复杂类型存储数据库中匹配对象存储数据库,确定所述数据文件中所述音视频/文件类对应的音视频/文件数据,在所述对象存储数据库中的目标存储地址;根据所述目标存储地址生成对应的通用唯一识别码(即,uuid);将所述通用唯一识别码作为索引信息存储在所述关系型数据库中;将所述音视频/文件数据存储在所述对象存储数据库中的目标存储地址中。
112.在上述实施例中,由于音视频或者大文件(文件大小≥预定存储量)需要的存储空间较大,所以也不能直接存储在关系型数据库中,需要为音视频/文件数据分配对象存储数据库,利用对象存储数据库进行存储。存储过程中利用一种不会重复的字符串uuid代替音视频/文件数据的位置,形成索引信息,将索引信息存储在关系型数据库中。这样就可以根据索引信息中的uuid调取对应的音视频/文件数据,简单快捷。
113.其中,由于音视频/文件数据一般比较大,所以,会先生成索引信息,再存储音视频/文件数据。
114.在步骤202中,响应于确定所述目标数据类型包括:长文本类;根据所述长文本类从多个复杂类型存储数据库中匹配分布式全文检索数据库(即,elasticsearch),确定所述数据文件中所述长文本类对应的长文本数据,在所述分布式全文检索数据库中的目标存储地址;将所述长文本数据存储在所述分布式全文检索数据库中的目标存储地址;根据所述目标存储地址和所述长文本数据生成对应的唯一字段;将所述唯一字段作为索引信息存储在所述关系型数据库中。
115.在上述实施例中,长文本数据(例如,100字以上的文章)由于内部的文本量较大,也不能直接存储在关系型数据库中,需要给长文本数据分配对应的elasticsearch进行存储。将长文本数据存储在elasticsearch中之后,获取长文本数据对应的_uid(即,elasticsearch中的唯一字段),将_uid作为索引信息存储在关系型数据库中。进而保证后续根据关系型数据库中的索引信息直接从elasticsearch中调取对应的长文本数据,操作简单方便。
116.步骤203,响应于确定所述目标数据类型包括简单数据类型,将所述数据文件存储在所述关系型数据库中。
117.针对简单数据类型的数据文件(例如,短字符串和/或标量数据),可以直接将其存储在关系型数据库中。这样能够将复杂数据类型的数据和简单数据类型的数据进行分别存储,方便用户快速进行调取查找。
118.在一些实施例中,如果需要存储的数据文件对应的目标数据类型包含有多种,具体可以分为如下两种情况:
119.第一种:所述目标数据类型包括:所述简单数据类型中的至少之一和所述复杂数据类型中的至少之一。
120.本实施例的方法还包括:
121.步骤204a,将所述数据文件中所述复杂数据类型对应生成的索引信息,与所述数据文件中所述简单数据类型对应的简单数据(例如,短字符串和/或标量数据)进行关联,将关联后的数据存储在所述关系型数据库中。
122.具体实施时,可以按照上述步骤202或203的方式将数据文件按照对应的数据类型进行分解存储,并且将复杂数据类型对应生成的索引信息与简单数据在关系型数据库中的同一行或者同一列中存储,这样能够保证数据文件的完整性。
123.第二种,目标数据类型包括:所述复杂数据类型中的至少两个。
124.本实施例的方法还包括:
125.步骤204b,将所述数据文件中至少两个所述复杂数据类型对应生成的至少两个索引信息进行关联,将关联后的至少两个索引信息存储在所述关系型数据库中。
126.具体实施时,针对要存储的数据文件可以按照上述步骤202的过程将至少两个复杂数据类型对应的数据分别进行存储之后,为了保证数据的完整性,方便后续查找,需要将至少两个复杂数据类型对应生成的至少两个索引信息存储在关系型数据库的同一行或同一列中。
127.通过上述实施例,后续进行查找时,只要查找其中的一类数据,就可以依据关系型数据库查找到与该类数据相关的其他数据,并将查找到的所有数据整合形成完整的数据文件。这种方式能够自动完成对存储数据的分解和整合,无需用户手动操作,给用户带来便利的同时,提高数据存储效率。
128.在一些实施例中,如图2b所示,所述方法还包括:
129.步骤205,响应于确定所述关系型数据库中存储的目标数据满足转换存储条件,从多个复杂类型存储数据库中确定所述目标数据对应的转换存储数据库。
130.步骤206,将所述目标数据从所述关系型数据库中转换存储至所述转换存储数据库中。
131.具体实施时,对于关系型数据库中存储的简单数据类型的目标数据,也可能在后续存储和查询调用过程中会触发对应的复杂数据类型的转换存储条件,一旦被触发,就会将目标数据转换到对应的复杂类型存储数据库中进行存储。进而能够适配该目标数据的具体使用场景。
132.其中转换存储条件包括下列至少之一:
133.属于非结构化json、属于矢量数据、属于大文件数据、属于频繁读取小键值对数据、属于时序积累数据、属于长文本数据。
134.在一些实施例中,针对转换存储条件中的频繁读取小键值对数据的情况,步骤205包括:
135.响应于所述关系型数据库中存储的目标数据在预定时间段内写入次数大于等于第一预定次数,读取次数小于第二预定次数,确定所述目标数据对应的转换存储数据库为开源时序型数据库(即,influxdb)。
136.具体实施时,存储时会首先将目标数据存储到mysql中,在使用时,发现用户对于
该目标数据长期积累且写多读少无修改,在保证用户无感知的情况下,将该目标数据从mysql中转换到influxdb中进行存储,以适配具体使用场景。
137.在一些实施例中,步骤205还包括:
138.响应于所述关系型数据库中存储的目标数据的读取频率大于等于预定频率阈值,确定所述目标数据对应的转换存储数据库为远程字典数据库(即,redis)。
139.具体实施时,存储时会首先将目标数据存储到mysql中,在使用时,发现用户读写频繁且数据结构保持简单,在保证用户无感知的情况下,将该目标数据从mysql中转换到redis中进行存储,以适配具体使用场景。
140.在一些实施例中,按照上述实施例的步骤将数据文件存储完成后,用户可以通过终端发送查询条件。
141.则方法还包括:
142.步骤207,接收终端发来的查询条件,根据查询条件查找用户需要的数据。
143.在一些实施例中,如图2c所示,步骤207具体为:
144.步骤2071,接收终端发来的查询条件。
145.步骤2072,响应于确定所述查询条件为单个数据类型的查询条件,根据所述查询条件从对应存储数据库中调取查询数据,根据所述查询数据从所述关系型数据库中确定对应的目标索引信息,基于所述关系型数据库根据所述目标索引信息查找与所述查询数据相关联的关联数据。
146.步骤2073,将所述查询数据与所述关联数据组合后反馈至所述终端。
147.具体实施时,可以分为如下几种情况:
148.第一种,如果单个数据类型的查询条件是针对关系型数据库中的字段(例如,短字符串或标量数据)进行查询,调取关系型数据库中的字段,并从关系型数据库中查找该字段相关的目标索引信息,根据目标索引信息调取与该字段相关的关联数据,组合后返给终端以供用户查看。其中,该字段也可能没有对应的关联数据,如果没有,则只将查询到的字段返给终端。
149.第二种,如果单个数据类型的查询条件是针对复杂数据库中的数据进行查询,从对应的复杂数据库中调取对应的查询数据,然后再根据关系型数据库中查找与该查询数据相关的目标索引信息,根据目标索引信息调取与该查询数据相关的关联数据,组合后返给终端以供用户查看。其中,该查询数据也可能没有对应的关联数据,如果没有,则只将查询到的复杂数据库中的查询数据返给终端。
150.例如,以长文本作为查询条件,则从elasticsearch中调取长文本数据,并从elasticsearch中查出长文本数据对应的_uid,然后通过_uid去从关系型数据库中索引与该长文本相关的短字符串、标量数据或者其他索引信息,根据这些信息查找与长文本相关的所有数据并组合后返给终端。
151.又如,以矢量数据作为查询条件,则从postgresql中调取矢量数据,并查找对应的存储地址(id),用矢量数据的表名和id组合从关系型数据库中索引与该矢量数据相关的短字符串、标量数据或者其他索引信息,根据这些信息查找与矢量数据相关的所有数据并组合后返给终端。
152.在一些实施例中,如图2d所示,步骤207具体为:
153.步骤2071’,接收终端发来的查询条件。
154.步骤2072’,响应于确定所述查询条件为组合数据类型的查询条件,根据所述查询条件在所述关系型数据库中筛选多个目标索引信息,其中,组合数据类型包括至少两个数据类型。
155.步骤2073’,基于所述关系型数据库根据所述多个目标索引信息确定多个查询数据,将多个查询数据组合后反馈至所述终端。
156.具体实施时,对应的查询条件可能为组合数据类型的查询条件,需要根据查询条件在关系型数据中筛选,确定与该查询条件对应的多个目标索引信息,从与各个目标索引信息对应的存储数据库中调取相应的查询数据,将这些查询数据组合后返给终端,以供用户查看查询结果。
157.通过上述实施例的方案,能够利用统一的存储入口接收数据文件,并自动对数据文件进行数据类型分析,这样用户无需手动选择数据类型;然后会根据数据文件的目标数据类型自动分配相应的存储数据库,存储过程中分为两种情况,一种是针对复杂数据类型的存储需要在关系型数据库中形成索引信息,再存储在对应目标存储数据库的目标存储地址中,另一种是针对简单数据类型,可以直接在关系型数据库中进行存储。这样,无需用户手动选择数据类型,给用户带来便利,并且针对复杂数据类型的数据文件还能在关系型数据库中形成索引进而方便根据索引进行数据查找,提高数据查询的效率。
158.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
159.需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
160.基于同一发明构思,与上述任意实施例的数据文件的存储方法相对应的,本技术还提供了一种数据文件的存储装置,所述存储装置设置在所述电子设备上,所述电子设备上设有与所述存储装置中的关系型数据库相匹配的存储入口。
161.参考图3,数据文件的存储装置,包括:
162.接收模块31,用于通过所述存储入口接收数据文件,对所述数据文件进行数据类型分析得到所述数据文件的目标数据类型;
163.复杂数据存储模块32,用于响应于确定所述目标数据类型包括复杂数据类型,从多个复杂类型存储数据库中匹配与所述目标数据类型对应的目标存储数据库,确定所述目标存储数据库中的目标存储地址,根据所述目标存储地址生成索引信息存储在所述关系型数据库中,并将所述数据文件存储在所述目标存储地址中;
164.简单数据存储模块33,用于响应于确定所述目标数据类型包括简单数据类型,将所述数据文件存储在所述关系型数据库中。
165.在一些实施例中,所述复杂数据类型包括下列至少之一:
166.非结构化对象简谱类、矢量数据类、音视频/文件类、键值对数据类、时序积累数据类、长文本类;
167.所述复杂类型存储数据库包括下列至少之一:
168.分布式文件存储数据库、对象-关系型数据库、对象存储数据库、分布式全文检索数据库、开源时序型数据库、远程字典数据库;
169.所述简单数据类型包括下列至少之一:
170.短字符串类、标量数据类。
171.在一些实施例中,复杂数据存储模块32还用于:
172.响应于确定所述目标数据类型包括:非结构化对象简谱类;根据所述非结构化对象简谱类从多个复杂类型存储数据库中匹配分布式文件存储数据库,确定所述数据文件中所述非结构化对象简谱类对应的非结构化数据,在所述分布式文件存储数据库中的目标存储地址;将所述目标存储地址作为索引信息存储在所述关系型数据库中;将所述非结构化数据转换成计算机数据交换格式存储在所述分布式文件存储数据库的目标存储地址中。
173.在一些实施例中,复杂数据存储模块32还用于:
174.响应于确定所述目标数据类型包括:矢量数据类;根据所述矢量数据类从多个复杂类型存储数据库中匹配对象-关系型数据库,确定所述数据文件中所述矢量数据类对应的矢量数据,在所述对象-关系型数据库中的目标存储地址;将所述矢量数据存储在所述对象-关系型数据库中的目标存储地址;生成所述矢量数据在所述对象-关系型数据库中的表名;将所述表名和所述目标存储地址组合作为索引信息存储在所述关系型数据库中。
175.在一些实施例中,复杂数据存储模块32还用于:
176.响应于确定所述目标数据类型包括:音视频/文件类;根据所述音视频/文件类从多个复杂类型存储数据库中匹配对象存储数据库,确定所述数据文件中所述音视频/文件类对应的音视频/文件数据,在所述对象存储数据库中的目标存储地址;根据所述目标存储地址生成对应的通用唯一识别码;将所述通用唯一识别码作为索引信息存储在所述关系型数据库中;将所述音视频/文件数据存储在所述对象存储数据库中的目标存储地址中。
177.在一些实施例中,复杂数据存储模块32还用于:
178.响应于确定所述目标数据类型包括:长文本类;根据所述长文本类从多个复杂类型存储数据库中匹配分布式全文检索数据库,确定所述数据文件中所述长文本类对应的长文本数据,在所述分布式全文检索数据库中的目标存储地址;将所述长文本数据存储在所述分布式全文检索数据库中的目标存储地址;根据所述目标存储地址和所述长文本数据生成对应的唯一字段;将所述唯一字段作为索引信息存储在所述关系型数据库中。
179.在一些实施例中,所述目标数据类型的数量为至少两个,包括:所述简单数据类型中的至少之一和所述复杂数据类型中的至少之一;
180.所述装置还包括:
181.关联模块,用于将所述数据文件中所述复杂数据类型对应生成的索引信息,与所述数据文件中所述简单数据类型对应的简单数据进行关联,将关联后的数据存储在所述关系型数据库中。
182.在一些实施例中,所述目标数据类型的数量为至少两个,包括:所述复杂数据类型中的至少两个;
183.关联模块,还用于将所述数据文件中至少两个所述复杂数据类型对应生成的至少两个索引信息进行关联,将关联后的至少两个索引信息存储在所述关系型数据库中。
184.在一些实施例中,装置还包括:转换存储模块,用于响应于确定所述关系型数据库中存储的目标数据满足转换存储条件,从多个复杂类型存储数据库中确定所述目标数据对应的转换存储数据库;将所述目标数据从所述关系型数据库中转换存储至所述转换存储数据库中。
185.在一些实施例中,转换存储模块,还用于响应于所述关系型数据库中存储的目标数据在预定时间段内写入次数大于等于第一预定次数,读取次数小于第二预定次数,确定所述目标数据对应的转换存储数据库为开源时序型数据库。
186.在一些实施例中,转换存储模块,还用于响应于所述关系型数据库中存储的目标数据的读取频率大于等于预定频率阈值,确定所述目标数据对应的转换存储数据库为远程字典数据库。
187.在一些实施例中,装置还包括:查询模块,用于接收终端发来的查询条件;响应于确定所述查询条件为单个数据类型的查询条件,根据所述查询条件从对应存储数据库中调取查询数据,根据所述查询数据从所述关系型数据库中确定对应的目标索引信息,基于所述关系型数据库根据所述目标索引信息查找与所述查询数据相关联的关联数据;将所述查询数据与所述关联数据组合后反馈至所述终端。
188.在一些实施例中,查询模块,还用于接收终端发来的查询条件;响应于确定所述查询条件为组合数据类型的查询条件,根据所述查询条件在所述关系型数据库中筛选多个目标索引信息,其中,组合数据类型包括至少两个数据类型;基于所述关系型数据库根据所述多个目标索引信息确定多个查询数据,将多个查询数据组合后反馈至所述终端。
189.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
190.上述实施例的装置用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
191.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法。
192.图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
193.处理器410可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
194.存储器420可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
195.输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
196.通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
197.总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
198.需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
199.上述实施例的电子设备用于实现前述任一实施例中相应的数据文件的存储方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
200.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法。
201.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
202.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
203.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
204.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
205.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
206.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1