一种数据存储系统和方法与流程

文档序号:32161226发布日期:2022-11-12 02:37阅读:61来源:国知局
一种数据存储系统和方法与流程

1.本发明涉及数据处理技术领域,具体而言,涉及一种数据存储系统和方法。


背景技术:

2.工业互联网是新一代信息通信技术与工业经济深度融合的新型基础设施、应用模式和工业生态,通过对人、机、物、系统等的全面连接,构建起覆盖全产业链、全价值链的全新制造和服务体系,为工业乃至产业数字化、网络化、智能化发展提供了实现途径。可见,发展工业互联网的重要性不言而喻,而随着工业互联网的发展,工业领域设备的数据增长迅速并且体量庞大,工业设备数据的存储成为新的难题。
3.传统的存储方式常将工业设备数据转换为行转列进行存储,容易破坏数据在语义上的完整性,导致数据的可读性差,并且多以json的格式存储,数据存储效率低、成本高。因此,亟需一种数据存储方案,以保证工业设备数据的存储完整性并提高对工业设备数据的存储效率。


技术实现要素:

4.有鉴于此,本技术的目的之一在于提供一种数据存储系统和方法,可以至少解决上述部分技术问题。
5.第一方面,本技术实施例提供了一种数据存储系统,所述数据存储系统包括:数据输入端、主节点、至少两个从节点、第一数据库和第二数据库,所述主节点和至少两个从节点通信连接,各从节点之间通信连接,其中,
6.所述主节点用于从所述数据输入端读取初始数据,并将所述初始数据发送至所述至少两个从节点,所述至少两个从节点用于按预设数据处理流程计算所述初始数据,得到设备数据和所述设备数据对应的元数据;
7.所述主节点还用于接收所述元数据并将所述元数据以模式存储至第一数据库的hive表中,所述至少两个从节点还用于将所述设备数据存储至所述第二数据库。
8.在一种可能的实施方式中,所述第一数据库用于根据预设模式表校验所述模式,其中,
9.若所述模式为全新模式,所述第一数据库用于生成新的hive表并将所述全新模式存储至所述新的hive表中。
10.在一种可能的实施方式中,所述预设数据处理流程包括数据清洗、数据分组和数据聚合中的至少一种,其中,
11.目标节点用于对目标数据进行数据清洗,以滤除异常的目标数据;
12.所述目标节点还用于获取所述目标数据中的设备标识并将相同设备标识的目标数据发送至同一个目标节点;
13.所述目标节点还用于按预设聚类算法计算所述目标数据,得到所述设备数据和所述设备数据的元数据;
14.其中,所述目标节点为各从节点中的任一从节点,所述目标数据为所述目标节点接收到的初始数据,所述异常的目标数据包括缺少所述设备数据和/或所述元数据的初始数据。
15.在一种可能的实施方式中,各从节点还用于从所述数据输入端读取所述初始数据,在所述主节点出现宕机且在预设时段内所述主节点和各从节点仍未恢复通信的情形下,所述至少两个从节点还用于按预设选取机制从各从节点中选取一个从节点作为新的主节点。
16.在一种可能的实施方式中,所述数据存储系统还包括元数据缓存器,所述元数据缓存器用于缓存各从节点计算的所述元数据,其中,所述主节点和所述至少两个从节点分别和所述元数据缓存器通信连接。
17.在一种可能的实施方式中,所述主节点还用于按预设分配算法将所述初始数据等量发送至各从节点,其中,所述预设分配算法包括按数据大小分片、按照预设条件进行hash中的至少一种。
18.在一种可能的实施方式中,所述主节点还用于按轮询的方式从所述数据输入端读取所述初始数据。
19.第二方面,本技术实施例提供了一种数据存储方法,应用于数据存储系统,所述数据存储系统包括数据输入端、主节点、至少两个从节点、第一数据库和第二数据库,所述主节点和至少两个从节点通信连接,各从节点之间通信连接,所述数据存储方法包括:
20.所述主节点从所述数据输入端读取初始数据,并将所述初始数据发送至所述至少两个从节点,所述至少两个从节点按预设数据处理流程计算所述初始数据,得到所述设备数据和所述设备数据对应的元数据;
21.所述主节点接收所述元数据并将所述元数据以模式存储至所述第一数据库的hive表中,所述至少两个从节点还用于将所述设备数据存储至所述第二数据库。
22.在一种可能的实施方式中,所述数据存储方法包括:
23.所述第一数据库用于根据预设模式表校验所述模式;
24.若所述模式为全新模式,所述第一数据库生成新的hive表并将所述全新模式存储至所述新的hive表中。
25.在一种可能的实施方式中,所述数据存储方法包括:
26.所述主节点按预设分配算法将所述初始数据等量发送至各从节点,其中,所述预设分配算法包括按数据大小分片、按照预设条件进行hash中的至少一种。
27.本技术实施例提供的数据存储系统和方法,通过建立主从节点之间的通信连接,可以从数据输入端获取数据并读取初始数据,并计算得到初始数据的设备数据和与该设备数据对应的元数据,然后各从节点将计算得到的设备数据存储至第二数据库,计算得到的元数据以模式存储至第一数据库中的hive表中,避免了使用json格式进行存储而导致的数据存储效率低和成本高的问题,并且以模式存储的方式保证了初始数据在语义上的完整性,并不会影响数据的可读性。
附图说明
28.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
29.图1示出了本技术实施例提供的一种数据存储系统的功能模块示意图;
30.图2示出了本技术实施例提供的一种数据存储方法的方法流程示意图。
31.图标:
32.数据输入端100;主节点110;从节点120;第一数据库130;第二数据库140。
具体实施方式
33.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
34.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
36.在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
37.此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
38.需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
39.请参见图1,图1为本技术实施例提供的一种数据存储系统的功能模块示意图。其中,所述数据存储系统包括数据输入端100、主节点110、至少两个从节点120、第一数据库130和第二数据库140,所述主节点110和至少两个从节点120通信连接,各从节点120之间通信连接,其中,
40.所述主节点110用于从所述数据输入端100读取初始数据,并将所述初始数据发送至所述至少两个从节点120,所述至少两个从节点120用于按预设数据处理流程计算所述初始数据,得到设备数据和所述设备数据对应的元数据;
41.所述主节点110还用于接收所述元数据并将所述元数据以模式存储至第一数据库130的hive表中,所述至少两个从节点120还用于将所述设备数据存储至所述第二数据库140。
42.在本实施例中:
43.数据输入端100为作为数据存储系统的数据输入接口,可以连接提供数据的客户端,本实施例中的初始数据一般指工业领域的机器数据,在工业领域,机器种类多,与机器
的相关数据的存储形式不仅会影响数据存储的效率,还会影响后续数据的查询效率。
44.主节点110和从节点120可以构成主从架构,主节点110和从节点120之间可以理解为master-slave模式,其中,主节点110可以看作master节点,是计算任务的主节点110,主要负责计算任务的调度和状态管理,是整个计算任务的大脑。从节点120可以看作slave节点,是计算任务的执行节点,负责执行master节点分发的初始数据。
45.第一数据库130和第二数据库140主要是实现数据的存储功能,其中,第一数据库130可以用于存储从节点120计算的元数据,第二数据库140可以用于存储从节点120计算的设备数据。需要说明的是,各从节点120独立执行计算任务,数据处理的效率高,各从节点120完成计算后可单独将计算的设备数据存储至第二数据库140,各从节点120计算出的元数据是以模式的形式存储至第一数据库130的hive表中,其中,本实施例中的“模式”为schema,也即,本实施例中的元数据是以schema的形式存储至第一数据库130的hive表中,避免了传统方式以json的格式进行存储而导致的问题,不会破坏各初始数据的语义,并且以schema的形式进行存储,存储效率高,后续的查询也会更加便捷。
46.可选的,所述数据存储系统还包括元数据缓存器,所述元数据缓存器用于缓存各从节点120计算的所述元数据,其中,所述主节点110和所述至少两个从节点120分别和所述元数据缓存器通信连接。
47.除主节点110和各个从节点120通信连接之外,主节点110和各个从节点120还可以通过本实施例中的元数据缓存器连接,元数据缓存器可以用来暂存各个从节点120计算得到元数据,无需要主节点110对元数据进行存储,可以减轻主节点110的数据缓存压力。
48.综上所述,本技术实施例提供的数据存储系统,通过建立主从节点之间的通信连接,可以从数据输入端获取数据并读取初始数据,并计算得到初始数据的设备数据和与该设备数据对应的元数据,然后各从节点将计算得到的设备数据存储至第二数据库,计算得到的元数据以模式存储至第一数据库中的hive表中,避免了使用json格式进行存储而导致的数据存储效率低和成本高的问题,并且以模式存储的方式保证了初始数据在语义上的完整性,并不会影响数据的可读性。
49.在一种可能的实施方式中,所述第一数据库130用于根据预设模式表校验所述模式,其中,
50.若所述模式为全新模式,所述第一数据库130用于生成新的hive表并将所述全新模式存储至所述新的hive表中。
51.在本实施例中,预设模式表存储在第一数据库130中,第一数据库130可以将主节点110存储的模式和预设模式表进行比对,若模式信息不在预设模式表内,则第一数据库130可以生成新的hive表并将不在预设模式表内的模式信息存储至新生成的hive表中。并且,若第一数据库130检测到主节点110存储的模式和预设模式表中的模式不完全一致,则第一数据库130可以找到不完全一致的模式对应的hive表并将主节点110存储的模式存储至该hive表,以替换原存储的模式,实现对该hive表的更新。
52.在一种可能的实施方式中,所述预设数据处理流程包括数据清洗、数据分组和数据聚合中的至少一种,其中,
53.目标节点用于对目标数据进行数据清洗,以滤除异常的目标数据;
54.所述目标节点还用于获取所述目标数据中的设备标识并将相同设备标识的目标
数据发送至同一个目标节点;
55.所述目标节点还用于按预设聚类算法计算所述目标数据,得到所述设备数据和所述设备数据的元数据;
56.其中,所述目标节点为各从节点120中的任一从节点120,所述目标数据为所述目标节点接收到的初始数据,所述异常的目标数据包括缺少所述设备数据和/或所述元数据的初始数据。
57.在本实施例中,从节点120对主节点110分发的初始数据进行计算得到初始数据中的设备数据和设备数据的元数据。具体的,数据清洗可以滤除掉异常数据库,示例性的,以a组初始数据{“t”:
“”
,“a”:“2”,“b”:“bb”,}为例,其中,t、a和b可以表示元数据,2表示元数据a的设备数据,bb表示元数据b的设备数据,很明显t元数据的设备数据缺失,在这种情形下,可以认定a组初始数据为异常数据,相应的,若元数据t、a和b中任一元数据发生缺失,同样可认定a组初始数据为异常数据。
58.其中,初始数据经过清洗后,需要根据与初始数据对应的设备类型将同一设备类型的初始数据分配到同一个从节点120进行处理,由同一个从节点120处理设备类型相同的初始数据,能够明显加快从节点120的数据处理速度。
59.在一种可能的实施方式中,各从节点120还用于从所述数据输入端100读取所述初始数据,在所述主节点110出现宕机且在预设时段内所述主节点110和各从节点120仍未恢复通信的情形下,所述至少两个从节点120还用于按预设选取机制从各从节点120中选取一个从节点120作为新的主节点110。
60.主节点110和各个从节点120之间是通信连接的,各个从节点120直接也是通信连接的,当主节点110出现故障,无法正常工作时,势必会影响数据存储的进行,这种情形下,需要从正常工作的从节点120中确定出一个新的主节点110,保证数据存储工作的正常进行。具体的,在本实施例中,从节点120和主节点110之间通信中断且在预设时段如2分钟仍未恢复通信,各个从节点120可通过预设选取机制从所有从节点120中选取一个从节点120作为主节点110,其中,预设选取机制可以采用zookeeper的主从选取机制。
61.可选的,所述主节点110还用于按预设分配算法将所述初始数据等量发送至各从节点120,其中,所述预设分配算法包括按数据大小分片、按照预设条件进行hash中的至少一种。具体的,数据大小分片中用到的算法包括哈希的割环算法,预设条件包括设备类型信息。
62.在本实施例中,主节点110可根据预设分配算法将全部初始数据等量分配到各个从节点120中,实现了对从节点120的充分利用,提升了数据的存储效率。
63.可选的,所述主节点110还用于按轮询的方式从所述数据输入端100读取所述初始数据。
64.具体的,主节点110轮询获取初始数据,实现了主节点110自动获取数据,也同样提升了数据的存储效率。
65.综上,本技术实施例提供的数据存储系统,通过建立主从节点之间的通信连接,可以从数据输入端获取数据并读取初始数据,并计算得到初始数据的设备数据和与该设备数据对应的元数据,然后各从节点将计算得到的设备数据存储至第二数据库,计算得到的元数据以模式存储至第一数据库中的hive表中,避免了使用json格式进行存储而导致的数据
存储效率低和成本高的问题,并且以模式存储的方式保证了初始数据在语义上的完整性,并不会影响数据的可读性。
66.与上述方法实施例相对应,本技术还提供一种数据存储方法。请参见图2,图2为本技术实施例提供的一种数据存储方法的方法流程示意图,该数据存储方法可应用于上述实施例中的数据存储系统,所述数据存储系统包括数据输入端100、主节点110、至少两个从节点120、第一数据库130和第二数据库140,所述主节点110和至少两个从节点120通信连接,各从节点120之间通信连接,所述数据存储方法包括:
67.s210,所述主节点110从所述数据输入端100读取初始数据,并将所述初始数据发送至所述至少两个从节点120,所述至少两个从节点120按预设数据处理流程计算所述初始数据,得到所述设备数据和所述设备数据对应的元数据;
68.s220,所述主节点110接收所述元数据并将所述元数据以模式存储至所述第一数据库130的hive表中,所述至少两个从节点120还用于将所述设备数据存储至所述第二数据库140。
69.本实施例中的具体实施过程可参照上述数据存储实施例的描述,此处不再一一赘述。
70.在一种可能的实施方式中,所述数据存储方法包括:
71.所述第一数据库130用于根据预设模式表校验所述模式;
72.若所述模式为全新模式,所述第一数据库130生成新的hive表并将所述全新模式存储至所述新的hive表中。
73.本实施例中的具体实施过程可参照上述数据存储实施例的描述,此处不再一一赘述。
74.可选的,所述数据存储方法包括:
75.所述主节点110按预设分配算法将所述初始数据等量发送至各从节点120,其中,所述预设分配算法包括按数据大小分片、按照预设条件进行hash中的至少一种。
76.本技术实施例提供的数据存储方法,通过建立主从节点之间的通信连接,可以从数据输入端获取数据并读取初始数据,并计算得到初始数据的设备数据和与该设备数据对应的元数据,然后各从节点将计算得到的设备数据存储至第二数据库,计算得到的元数据以模式存储至第一数据库中的hive表中,避免了使用json格式进行存储而导致的数据存储效率低和成本高的问题,并且以模式存储的方式保证了初始数据在语义上的完整性,并不会影响数据的可读性。
77.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1