数据存储方法、装置、设备及存储介质与流程
未命名
10-26
阅读:94
评论:0
1.本技术涉及但不限于数据存储技术领域,尤其涉及一种数据存储方法、装置、设备及存储介质。
背景技术:
2.现有的分布式存储位置技术,主要是通过既定的机架位置规则,存放不同副本的数据;或者是根据服务器节点的负载状态来分配数据的写入位置。这两种方式,都是从集群服务端考虑出发,没有考虑到业务数据之间的关联性,不能更加高效地实现数据的存取。
技术实现要素:
3.有鉴于此,本技术实施例至少提供一种数据存储方法、装置、设备及存储介质。
4.本技术实施例的技术方案是这样实现的:
5.第一方面,本技术实施例提供一种数据存储方法,所述方法包括:
6.响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;其中,所述数据关系网络表征集群中机架的各节点与每一所述节点所包含的数据标签之间的映射关系;将所述数据转发到所述目标节点进行存储。
7.在一些实施方式中,所述方法还包括:以所述集群中的机架、所述机架的各节点以及每一所述节点所包含的数据标签为点,以相邻所述机架之间的距离为边构建所述数据关系网络;其中,所述距离的长度表征不同所述机架下各节点之间的关联度。
8.在一些实施方式中,所述基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点,包括:基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息;其中,n为所述集群设置的副本数;利用所述集群负载信息,按照预设规则从所述n个位置信息对应的节点中筛选所述目标节点。
9.在一些实施方式中,所述基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息,包括:确定所述数据关系网络中是否存在包含所述标签信息的候选节点;在存在所述候选节点的情况下,确定所述候选节点所属的第一候选机架;在所述第一候选机架所包括的节点数目m大于或等于n的情况下,从所述m个节点中选择n个节点的位置信息作为所述最关联的n个位置信息。
10.在一些实施方式中,所述基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息,还包括:在m小于n的情况下,从所述数据关系网络中筛选与所述第一候选机架距离最近的第二候选机架;将所述第一候选机架所包括的m个节点的位置信息和所述第二候选机架所包括的n-m个节点的位置信息,作为所述最关联的n个位置信息。
11.在一些实施方式中,所述方法还包括:在不存在所述候选节点的情况下,确定所述标签信息与所述集群中各机架下每一节点所包含的数据标签之间的相似度;确定所述相似
度满足第一阈值的数据标签所存放的第一节点的位置信息;基于所述第一节点的位置信息,从所述数据关系网络中筛选与所述第一节点相同或相近的n个位置信息,作为所述最关联的n个位置信息。
12.在一些实施方式中,所述利用所述集群负载信息,按照预设规则从所述n个位置信息对应的节点中筛选所述目标节点,包括:基于所述集群负载信息,分别确定所述n个位置信息对应的每一节点的负载值;选择所述负载值最少的相应节点作为所述目标节点。
13.第二方面,本技术实施例提供一种数据存储装置,包括:
14.信息获取模块,用于响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;
15.节点筛选模块,用于基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;其中,所述数据关系网络表征集群中机架的各节点与每一所述节点所包含的数据标签之间的映射关系;
16.数据存储模块,用于将所述数据转发到所述目标节点进行存储。
17.第三方面,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
18.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
19.本技术实施例中,首先,响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;其次,基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;最后,将所述数据转发到所述目标节点进行存储;这样,通过在元数据管理中构建数据标签与节点关系的数据关系网络,可以清晰得知道各数据之间的关系和存储节点的位置,这样根据数据关联的大小决定存储节点的位置,可以起到数据查询的聚簇效应;同时结合集群负载信息筛选出最合适存储的节点位置,提高存储效率。
20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本技术的实施例,并与说明书一起用于说明本技术的技术方案。
22.图1a为相关技术中低版本hadoop副本节点选择的示意图;
23.图1b为相关技术中高版本hadoop副本节点选择的示意图;
24.图1c为相关技术中提供的tdengine分布式架构示意图;
25.图2为本技术实施例提供的数据存储方法的可选的流程示意图;
26.图3为本技术实施例提供的数据存储方法的可选的流程示意图;
27.图4为本技术实施例提供的数据存储方法的可选的流程示意图;
28.图5为本技术实施例提供的数据存储方法的可选的流程示意图;
29.图6为本技术实施例提供的一种数据存储方法的流程框图;
30.图7为本技术实施例提供的数据关系网络的构建示意图;
31.图8为本技术实施例提供的一种数据存储装置的组成结构示意图;
32.图9为本技术实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
33.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图和实施例对本技术的技术方案进一步详细阐述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
34.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
35.所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
36.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术的目的,不是旨在限制本技术。
37.在对本技术实施例进行进一步详细说明之前,先对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
38.元数据(metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
39.hadoop是一个分布式处理的软件框架,能在由大量计算机组成的集群中运行海量数据并进行分布式计算。由于其具有可扩展、低成本、高效性与可靠性等优点,hadoop在分布式计算领域得到了广泛运用。
40.hadoop是当前主流的企业大数据分析平台。hadoop采用的是hdfs(hadoop distributed file system,分布式文件系统)来进行数据存储。hdfs采用主从式架构设计模式(master/slavearchitecture),一个名称节点(namenode)和若干数据节点(datanode)构成hdfs集群。其中hdfs采用三副本冗余机制保证数据的安全性。hdfs默认的副本放置策略原则为:尽最大可能将其中两个数据块数据存储在一个机架上,将另一个数据块数据存储在另一个机架上,很好地在带宽资源及可靠性方面做了平衡。
41.在hdfs集群中,在对文件进行存储时,为了提高数据块的可用性,hdfs集群采取多副本的措施,首先将文件分成一系列的数据块,并将数据块存储在datanode数据节点上。
42.针对时序数据库元数据的数据副本存放节点的选择,相关技术中有基于hadoop分布式架构方式(包括低版本hadoop副本节点选择和高版本hadoop副本节点选择),还有基于tdengine分布式架构方式。
43.图1a为相关技术中低版本hadoop副本节点选择的示意图,如图1a所示,核心交换机11所在集群中包括3个机架:交换机1、交换机2、交换机3,每一交换机均包括6个节点(datenode),第一个副本101在客户端12(client)所处的节点上,如果客户端12在集群外,
随机选一个机架例如交换机1;第二个副本102和第一个副本101位于不相同机架的随机节点上,例如分别位于图1a中示出的交换机1的第1个节点和交换机3的第1个节点;第三个副本103和第二个副本102位于相同机架上,节点随机,例如分别位于图1a中示出的交换机3的第1个节点和第6个节点。
44.图1b为相关技术中高版本hadoop副本节点选择的示意图,如图1b所示,核心交换机21所在集群中3个机架:交换机1、交换机2、交换机3,每一交换机均包括6个节点(datenode),第一个副本111在客户端22所处的节点上,如果客户端22在集群外,随机选一个机架例如交换机1;第二个副本112和第一个副本111分别位于相同机架例如图1b示出的交换机1上随机的第1节点和第6节点;第三个副本113位于不同机架上的随机节点,例如图1b示出的交换机2上的第6个节点。
45.图1c为相关技术中提供的tdengine分布式架构示意图,如图1c所示,一个完整的tdengine系统是运行在一到多个物理节点上的。逻辑上,tdengine系统包含数据节点、tdengine客户端32(taosc)以及应用31(app)。图1c示出的tdengine集群(cluster)中包括6个数据节点,分别为节点0、节点1、节点2、节点3、节点4和节点5,其中节点2、节点3、节点4为管理节点,通过管理节点,负责所有数据节点运行状态的监控和维护,以及节点之间的负载均衡;同时,管理节点也负责元数据(包括用户、数据库、表、静态标签等)的存储和管理。也就是说,tdengine方案是根据节点的负载状态来分配数据库的写入位置。
46.现有的分布式存储位置技术,主要是通过既定的机架位置规则,存放不同副本的数据;或者是根据服务器节点的负载状态来分配数据的写入位置。这两种方式,都是从集群服务端考虑出发。
47.本技术实施例提供一种数据存储方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据存储能力的设备。图2为本技术实施例提供的数据存储方法的可选的流程示意图,如图2所示,该方法包括如下步骤s210至步骤s230:
48.步骤s210,响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;
49.这里,所述标签信息为数据的位置信息标签,例如机房的物理位置或客户端所在计算设备的位置信息。在物联网和设备监测中数据通常会带有明显的位置信息标签,且大多数业务数据的数据之间的位置信息彼此关联,本技术实施例旨在基于数据标签信息将相似的的数据存储在相同或相近的节点上。
50.所述集群负载信息表征所述集群中各节点的cpu使用状态、内存使用状态等,包括集群中资源信息、集群已分配的用于处理作业任务的资源信息、集群处理作业任务所需要的资源信息等,其中资源信息包括集群中节点的cpu核的数量,集群中节点的内存容量,集群中节点的fpga资源数量,集群中节点的网络处理资源的规格与容量等。
51.步骤s220,基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;
52.这里,所述数据关系网络表征集群中机架的各节点与每一所述节点所包含的数据标签之间的映射关系。本技术实施例通过在元数据管理中构建数据标签与节点关系,可以清晰得知道各数据之间的关系和存储节点的位置。
53.在实施中可以根据数据的标签信息在数据关系网络中进行关联度查询,结合集群负载信息来确定数据副本的存放位置,做到数据查询的聚簇效应,提高查询效率和时间。数据标签与节点的关系可以以标签信息关联性的权重进行衡量,根据待存储的数据与数据关系网络中已有数据之间的关联度大小,以及关联度较大的已有数据所在节点的负载信息确定出最合适存存储的节点位置。
54.步骤s230,将所述数据转发到所述目标节点进行存储。
55.这里,在确定出目标节点之后,直接将数据写入该目标节点完成数据存储。
56.本技术实施例中,首先,响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;其次,基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;最后,将所述数据转发到所述目标节点进行存储;这样,通过在元数据管理中构建数据标签与节点关系的数据关系网络,可以清晰得知道各数据之间的关系和存储节点的位置,这样根据数据关联的大小决定存储节点的位置,可以起到数据查询的聚簇效应;同时结合集群负载信息筛选出最合适存储的节点位置,提高存储效率。
57.在一些实施例中,所述方法还包括如下步骤s240:
58.步骤s240,以所述集群中的机架、所述机架的各节点以及每一所述节点所包含的数据标签为点,以相邻所述机架之间的距离为边构建所述数据关系网络。
59.这里,所述距离的长度表征不同所述机架下各节点之间的关联度,从而使得数据标签与存储节点之间有了关系。距离越长关系越弱,距离越短关系越强。
60.示例的,机架1与机架2之间的距离长度小于机架1与机架3之间的距离长度,则表明机架1下各节点与机架2下各节点的关联度越大,从而将标签信息相似的数据存入机架1的节点与机架2的节点中。
61.在数据关系网络中,数据标签与节点之间的关系可以以数据标签关联程度的权重表征。越是相似的数据标签数据,越容易存在相同或相近的节点上。从而关联性越大的数据被一起查到的概率就越大。
62.上述实施例中,预先以机架、机架中的节点、节点包含的数据标签为点,机架之间的距离为边构建数据关系网络,同时以距离长度表示各节点之间的关联度,使得数据标签与存储节点之间有了关系。这样,针对后续新数据的存储节点选择,可以直接从数据关系网络中查询到相似或相同标签数据所占的节点作为目标节点。
63.图3为本技术实施例提供的数据存储方法的可选的流程示意图,如图3所示,该方法包括如下步骤s310至步骤s340:
64.步骤s310,响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;
65.这里,上述步骤s310对应于前述步骤s210,在实施时可以参照前述步骤s210的具体实施方式。
66.步骤s320,基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息;
67.这里,n为所述集群设置的副本数;例如2或3等自然数,具体取值依赖于不同分布式系统的设置,本技术实施例对此不作限定。
68.如果数据的标签信息在数据关系网络中已经存储,则查询返回的是相应数据标签所在节点位置信息。如果数据的标签信息在数据关系网络中不存在,则查询返回的是集群
中所有机架及机架下各节点的位置信息。
69.本技术实施例在接收到客户端发送的新数据需要存储时,首先将新数据的标签信息与数据关系网络中已存储数据的数据标签一一对比,筛选出最相似的数据标签的数据所在机架或节点位置,从而确保将关联度大的数据即数据标签越相似的数据存储在相同或相近的节点上,起到聚簇效应,提高后续数据查询效率和时间。
70.步骤s330,利用所述集群负载信息,按照预设规则从所述n个位置信息对应的节点中筛选所述目标节点。
71.在一些实施方式中,通过以下过程实现上述步骤s330:基于所述集群负载信息,分别确定所述n个位置信息对应的每一节点的负载值;选择所述负载值最少的相应节点作为所述目标节点。这样,在确保相似数据存储在相同或相近节点的基础上同时考虑节点的负载状态来分配待存储数据的最终存储节点,提高数据的存储性能。
72.步骤s340,将所述数据转发到所述目标节点进行存储。
73.上述实施例中,在接收到客户端发送的携带标签信息的数据之后,首先基于标签信息从已搭建的数据关系网络中查询出与标签信息关联性最大的元数据存储机架或节点位置,再结合集群负载信息确定出最合适的存储节点。这样,可以在确保相似数据存储在相同或相近节点的基础上同时考虑节点的负载状态来分配待存储数据的最终存储节点,提高数据的存储性能。
74.基于图3,图4为本技术实施例提供的数据存储方法的可选的流程示意图,如图4所示,上述步骤s320“基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息”包括如下步骤s410至步骤s450:
75.步骤s410,确定所述数据关系网络中是否存在包含所述标签信息的候选节点;
76.步骤s420,在存在所述候选节点的情况下,确定所述候选节点所属的第一候选机架;
77.这里,如果数据关系网络中存在包含待存储数据的标签信息的候选节点,则根据数据标签的关联度直接存在候选节点所述机架下的其它节点上,这样后续关联性大的多个数据可以连带查询,提升存储和查询性能。
78.步骤s430,在所述第一候选机架所包括的节点数目m大于或等于n的情况下,从所述m个节点中选择n个节点的位置信息作为所述最关联的n个位置信息。
79.这里,如果存在包含待存储数据的标签信息的候选节点且该候选节点所在机架还有剩余存储位置,可以从同一机架上选择n个节点的位置信息作为最关联的位置信息,这样确保该数据的n个副本的元数据存储在该候选节点及其相近节点上,起到聚簇效应,提供查询效率和时间。
80.步骤s440,在m小于n的情况下,从所述数据关系网络中筛选与所述第一候选机架距离最近的第二候选机架。
81.步骤s450,将所述第一候选机架所包括的m个节点的位置信息和所述第二候选机架所包括的n-m个节点的位置信息,作为所述最关联的n个位置信息。
82.这里,从距离相近的第一候选机架和第二候选机架中筛选出n个位置信息。
83.上述实施例中,如果存在包含待存储数据的标签信息的候选节点且该候选节点所在机架的剩余存储位置不够,可以从附近机架上选择其他节点的位置信息补充,确定出最
关联的n个位置信息,这样确保该数据的n个副本的元数据存储在该候选节点及其相近机架的节点上,起到聚簇效应,提供查询效率和时间。
84.基于图3,图5为本技术实施例提供的数据存储方法的可选的流程示意图,如图5所示,上述步骤s320“基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息”包括如下步骤s510至步骤s540:
85.步骤s510,确定所述数据关系网络中是否存在包含所述标签信息的候选节点;
86.步骤s520,在不存在所述候选节点的情况下,确定所述标签信息与所述集群中各机架下每一节点所包含的数据标签之间的相似度;
87.这里,如果在数据关系网络中不存在包含对应数据标签信息的候选节点,则可以通过对比各机架下每一节点的数据标签,选出包含相似数据标签的节点,来存储新标签的数据。
88.步骤s530,确定所述相似度满足第一阈值的数据标签所存放的第一节点的位置信息。
89.这里,所述第一阈值为预设值,根据实际情况调整。第一节点为数据关系网中任意存储相似数据标签的节点,可以为一个或多个。
90.步骤s540,基于所述第一节点的位置信息,从所述数据关系网络中筛选与所述第一节点相同或相近的n个位置信息,作为所述最关联的n个位置信息。
91.这里,第一节点上可以存储多个数据标签,在第一节点的存储位置不够的情况下,选择与第一节点同一机架下的其它节点的位置信息。
92.上述实施例中,在数据关系网络中不存在包含待存储数据的标签信息的情况下,确定出包含相似数据标签的数据所在的第一节点的位置信息,进而筛选出与第一节点相关的n个位置信息以存储数据的副本。这样,实现新标签的数据存放节点的选择,与已经存在数据关系网络中的已有数据标签存放节点位置有关,越是相似的数据标签数据,越容易存在到相同或相近的节点上。
93.下面结合一个具体实施例对上述数据存储方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本技术,并不构成对本技术的不当限定。
94.由于大多数业务的数据之间都是有关联的,对于这些有关联的数据,按照关联关系去选择较近节点存放,将会提高数据的本地性率,从而显著提高查询性能。因此,本技术实施例提出了一种基于数据标签的数据副本存放节点选择的方法,主要包括使用数据关系处理装置以机架为节点,根据存储的数据标签信息形成数据标签与节点的关系网;当有带标签信息的数据存储发生时,根据数据的标签信息,在数据关系处理装置中进行关系度查询,以此来决定数据副本的存放位置,做到相关性越强的数据,越能存放到一起的聚蔟效应。
95.图6为本技术实施例提供的一种数据存储方法的流程框图,如图6所示,分布式集群61中包括集群管理节点600、机架601、机所架602、机架603、数据位置抉择装置604、数据关系处理装置605(上述数据关系网络所在装置),其中机架601包括节点1-1、节点1-2、节点1-3,机架602包括节点2-1、节点2-2、节点2-3,机架603包括节点3-1、节点3-2、节点3-3;数据位置抉择装置604和数据关系处理装置605均设置在集群管理节点600中,数据关系处理装置605可以是由图数据库等关系数据库构建的。当客户端62需要存储数据时,通过以下步
骤s1至步骤s6实施:
96.步骤s1,客户端62发送带有标签信息的数据到分布式集群62。
97.步骤s2,由集群管理节点600将数据中的数据标签信息和集群负载信息,发送给数据位置抉择装置604,以通过数据位置抉择装置604来确定数据存储的节点位置。
98.步骤s3,数据位置抉择装置604将数据标签信息发送给数据关系处理装置605。
99.步骤s4,数据关系处理装置605根据数据标签信息,查询返回与数据标签信息关联性最大的元数据存储机架(或节点)位置n个(n由集群设置的副本数决定)。
100.步骤s5,数据位置抉择装置604根据预设好的规则,计算出数据存储的节点位置,返回给集群管理节点。
101.在一些实施方式中,如果数据标签信息在数据关系处理装置605中已经存在,则数据位置抉择装置604收到的是节点信息,给集群管理节点600返回最合适的节点位置。
102.在一些实施方式中,如果数据标签信息在数据关系处理装置605中不存在,则收到的是集群中的机架信息。数据位置抉择装置604再根据集群负载信息,选择机架中负载最少的节点位置,给集群管理节点600返回节点位置。同时将元数据存储到数据关系处理装置605。
103.步骤s6,集群管理节点600收到响应后,将数据转发到相应节点进行存储即完成数据写入。
104.图7为本技术实施例提供的数据关系网络的构建示意图,如图7所示,以机架、服务器节点、数据标签作为数据关系网络的节点,机架之间的距离作为边,边上的数值即距离权重表示关系紧密度的判断依据,距离越长关系越弱,距离越短关系越强。机架1与机架2之间的距离权重为30,机架2与机架3之间的距离权重为10,机架1与机架3之间的距离权重为25。同一个机架下的多个节点之间,任意节点之间关联度相同;服务器节点所属于机架,服务器节点包含有多个数据标签信息。
105.本技术实施例针对集群的元数据管理,使用数据关系处理装置构建以机架、服务器节点、数据标签为点,机架之间的距离、服务器节点属于机架、服务器节点包含数据标签等构建边,构成数据关系网络,以距离权重的大小表示各节点之间的关系值,使得数据标签与存储节点之间有了关系。同时,新标签的数据存放节点的选择,与已经存在数据关系处理装置中的已有数据标签存放节点位置有关,越是相似的数据标签数据,越容易存在到相同或相近的节点上。
106.本技术实施例至少具有以下技术效果:一方面,管理节点使用数据关系处理装置做元数据之间关系的维护,可以清晰得知道各数据之间的关系和存储节点的位置。另一方面,现代数据查询的特征,往往都是和数据的关联度大小有关,关联性大的数据,被一起查询到的概率就大。根据数据关联的大小决定存储节点的位置,可以起到聚蔟效应,提高查询效率和时间。
107.值得注意的是,本技术实施例的关键点在于在元数据管理中构建数据标签与节点之间的关系,而数据标签与节点的关系,是以标签数据关联性的权重进行衡量。在其他一些实施例中还可以对构建数据关系网络的方法进行优化,例如可以加入机房、网络宽带信息等维度进行构建数据关系网络,从而提供更丰富更精准的数据查找。
108.本技术实施例所提供的数据存储方法属于分布式系统数据文件存储位置选择的
一种方法,特别是在物联网和设备监测中,数据通常都会带有明显的位置信息标签,且相关性数据连带查询的场景非常多。使用本技术实施例提供的数据存储方法存储数据副本,可以使查询性能大幅度提升。
109.基于前述的实施例,本技术实施例提供一种数据存储装置,该装置包括所包括的各模块、以及各模块所包括的各子模块及各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(microprocessor unit,mpu)、数字信号处理器(digital signal processor,dsp)或现场可编程门阵列(field programmable gate array,fpga)等。
110.图8为本技术实施例提供的一种数据存储装置的组成结构示意图,如图8所示,装置800包括:信息获取模块810、节点筛选模块820和数据存储模块830,其中:
111.所述信息获取模块810,用于响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;
112.所述节点筛选模块820,用于基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;其中,所述数据关系网络表征集群中机架的各节点与每一所述节点所包含的数据标签之间的映射关系;
113.所述数据存储模块830,用于将所述数据转发到所述目标节点进行存储。
114.在一些可能的实施例中,所述装置还包括关系构建模块,用于以所述集群中的机架、所述机架的各节点以及每一所述节点所包含的数据标签为点,以相邻所述机架之间的距离为边构建所述数据关系网络;其中,所述距离的长度表征不同所述机架下各节点之间的关联度。
115.在一些可能的实施例中,所述节点筛选模块820包括:查询子模块,用于基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息;其中,n为所述集群设置的副本数;筛选子模块,用于利用所述集群负载信息,按照预设规则从所述n个位置信息对应的节点中筛选所述目标节点。
116.在一些可能的实施例中,所述查询子模块包括:第一确定单元,用于确定所述数据关系网络中是否存在包含所述标签信息的候选节点;第二确定单元,用于在存在所述候选节点的情况下,确定所述候选节点所属的第一候选机架;第一选择单元,用于在所述第一候选机架所包括的节点数目m大于或等于n的情况下,从所述m个节点中选择n个节点的位置信息作为所述最关联的n个位置信息。
117.在一些可能的实施例中,所述查询子模块还包括:第二选择单元,用于在m小于n的情况下,从所述数据关系网络中筛选与所述第一候选机架距离最近的第二候选机架;第三确定单元,用于将所述第一候选机架所包括的m个节点的位置信息和所述第二候选机架所包括的n-m个节点的位置信息,作为所述最关联的n个位置信息。
118.在一些可能的实施例中,所述查询子模块还包括:第四确定单元,用于在不存在所述候选节点的情况下,确定所述标签信息与所述集群中各机架下每一节点所包含的数据标签之间的相似度;第五确定单元,用于确定所述相似度满足第一阈值的数据标签所存放的第一节点的位置信息;第二选择单元,用于基于所述第一节点的位置信息,从所述数据关系网络中筛选与所述第一节点相同或相近的n个位置信息,作为所述最关联的n个位置信息。
119.在一些可能的实施例中,所述筛选子模块包括:第六确定单元,用于基于所述集群负载信息,分别确定所述n个位置信息对应的每一节点的负载值;第三选择单元,用于选择所述负载值最少的相应节点作为所述目标节点。
120.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
121.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的数据存储方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
122.本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
123.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
124.本技术实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
125.本技术实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
126.这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
127.需要说明的是,图9为本技术实施例中计算机设备的一种硬件实体示意图,如图9所示,该计算机设备900的硬件实体包括:处理器901、通信接口902和存储器903,其中:
128.处理器901通常控制计算机设备900的总体操作。
129.通信接口902可以使计算机设备通过网络与其他终端或服务器通信。
130.存储器903配置为存储由处理器901可执行的指令和应用,还可以缓存待处理器901以及计算机设备900中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。处理器901、通信接口902和存储器903之间可以通过总线904进行数据传输。
131.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
132.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
133.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
134.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
135.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
136.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
137.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
138.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
技术特征:
1.一种数据存储方法,其特征在于,应用于集群管理节点,所述方法包括:响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;其中,所述数据关系网络表征集群中机架的各节点与每一所述节点所包含的数据标签之间的映射关系;将所述数据转发到所述目标节点进行存储。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:以所述集群中的机架、所述机架的各节点以及每一所述节点所包含的数据标签为点,以相邻所述机架之间的距离为边构建所述数据关系网络;其中,所述距离的长度表征不同所述机架下各节点之间的关联度。3.根据权利要求1所述的方法,其特征在于,所述基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点,包括:基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息;其中,n为所述集群设置的副本数;利用所述集群负载信息,按照预设规则从所述n个位置信息对应的节点中筛选所述目标节点。4.根据权利要求3所述的方法,其特征在于,所述基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息,包括:确定所述数据关系网络中是否存在包含所述标签信息的候选节点;在存在所述候选节点的情况下,确定所述候选节点所属的第一候选机架;在所述第一候选机架所包括的节点数目m大于或等于n的情况下,从所述m个节点中选择n个节点的位置信息作为所述最关联的n个位置信息。5.根据权利要求4所述的方法,其特征在于,所述基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息,还包括:在m小于n的情况下,从所述数据关系网络中筛选与所述第一候选机架距离最近的第二候选机架;将所述第一候选机架所包括的m个节点的位置信息和所述第二候选机架所包括的n-m个节点的位置信息,作为所述最关联的n个位置信息。6.根据权利要求4所述的方法,其特征在于,所述基于所述标签信息,从所述数据关系网络中查询与所述标签信息最关联的n个机架或节点的位置信息,还包括:在不存在所述候选节点的情况下,确定所述标签信息与所述集群中各机架下每一节点所包含的数据标签之间的相似度;确定所述相似度满足第一阈值的数据标签所存放的第一节点的位置信息;基于所述第一节点的位置信息,从所述数据关系网络中筛选与所述第一节点相同或相近的n个位置信息,作为所述最关联的n个位置信息。7.根据权利要求3至6任一项所述的方法,其特征在于,所述利用所述集群负载信息,按照预设规则从所述n个位置信息对应的节点中筛选所述目标节点,包括:基于所述集群负载信息,分别确定所述n个位置信息对应的每一节点的负载值;选择所述负载值最少的相应节点作为所述目标节点。
8.一种数据存储装置,其特征在于,所述装置包括:信息获取模块,用于响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;节点筛选模块,用于基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;其中,所述数据关系网络表征集群中机架的各节点与每一所述节点所包含的数据标签之间的映射关系;数据存储模块,用于将所述数据转发到所述目标节点进行存储。9.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述方法中的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述方法中的步骤。
技术总结
本申请实施例公开了一种数据存储方法、装置、设备及存储介质,其中,所述方法包括:响应于接收客户端发送的带有标签信息的数据,获取集群负载信息;基于所述标签信息和所述集群负载信息,从预设的数据关系网络中筛选出目标节点;其中,所述数据关系网络表征集群中机架的各节点与每一所述节点所包含的数据标签之间的映射关系;将所述数据转发到所述目标节点进行存储。行存储。行存储。
技术研发人员:潘鑫 张彤 王建荣 苏大为 杨晨
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2023.01.04
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/