CN113420022A - 数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质 - Google Patents

数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质 Download PDF

Info

Publication number
CN113420022A
CN113420022A CN202010479687.7A CN202010479687A CN113420022A CN 113420022 A CN113420022 A CN 113420022A CN 202010479687 A CN202010479687 A CN 202010479687A CN 113420022 A CN113420022 A CN 113420022A
Authority
CN
China
Prior art keywords
data
partition
data storage
identification information
written
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.)
Pending
Application number
CN202010479687.7A
Other languages
English (en)
Inventor
梁卜元
酆晓杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010479687.7A priority Critical patent/CN113420022A/zh
Publication of CN113420022A publication Critical patent/CN113420022A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质。该方法包括:接收数据写入请求;根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息;根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息;根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。本申请实施例能够利用反映了处理节点的运行状态的写路由表来对基于数据写入请求所涉及的数据计算出的分片的分配进行调整,从而实现分片的适应性调整并从而消除热点,避免节点性能下降对于用户体验造成影响。

Description

数据处理方法和装置、数据系统、计算节点、电子设备以及计 算机可读存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种用于数据存储的数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质。
背景技术
随着数据处理技术的发展,对于数据存储的需求也越来越大。为此已经出现了分布式存储技术,能够通过基于物理连接或互联网连接的多个节点的存储服务器来存储大量数据。分布式存储由于将数据存储分散到多个节点上,因此具有较高的可扩展性和灵活性。对于以数据库存储数据的场景来说,需要额外考虑存储在各数据库中的数据与数据库的所属关系,因此,出现了基于分布式存储的分布式数据库技术,即将单个数据库划分为多个分片(Shard),从而存储到多个节点上。
但是,由于数据库的规模不同,换言之,租用云服务器的租户所使用的数据库会根据租户的需求跟不同,因此,在分布式数据库系统中,数据规模较大的数据库虽然已经通过分片的方式将其分割为多个小型数据库并从而存储在多个节点上,但是由于租户的数据使用需求可能会导致某个分片在一定时间段内产生大量的数据写入需求,并且这样的数据写入需求还可能会引起该数据库中其他节点上相关的分片的数据写入需求的激增。因此,在分布式数据库的日常使用中,会出现短时间内集中到某一个节点或某几个节点的大量数据写入操作,从而产生了所谓的“热点”。这样的热点的产生会使得承担该分片的单个节点或相关分片的几个节点的负荷突然增加,造成节点的存储性能的下降,从而影响用户的体验。因此,分布式数据库的提供方在管理分片时希望能够确保节点间数据操作量的均匀分配,尽量避免热点的产生,或者在热点产生时尽快地消除热点。
发明内容
本申请实施例提供一种数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质,以解决现有技术中无法消除热点的缺陷。
为达到上述目的,本申请实施例提供了一种数据处理方法,包括:
接收数据写入请求,所述数据写入请求包括指示待写入数据的第一数据信息;
根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息;
根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
本申请实施例还提供了一种数据处理装置,其中,包括:
控制节点,用于接收数据写入请求,并且用于根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息,所述数据写入请求包括指示待写入数据的第一数据信息;
多个数据存储节点,所述多个数据存储节点中的每一个分别用于存储与其对应的数据存储分区的数据;
路由模块,用于根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
其中,所述控制节点进一步用于根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
本申请实施例还提供了一种数据系统,包括:客户端节点以及数据处理设备,其中,
所述客户端节点用于根据用户的操作将数据写入请求发送给所述数据处理设备,所述数据写入请求包括指示待写入数据的第一数据信息,并且,所述数据处理设备包括:
控制节点,用于接收来自所述客户端节点的数据写入请求,并且用于根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息;
多个数据存储节点,所述多个数据存储节点中的每一个分别用于存储与其对应的数据存储分区的数据;
路由模块,用于根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
其中,所述控制节点进一步用于根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
本申请实施例还提供了一种数据处理装置,包括:
控制节点,用于接收数据写入请求,,所述数据写入请求包括指示待写入数据的第一数据信息,并且用于根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息;
路由模块,用于根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
其中,所述控制节点进一步用于根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
本申请实施例还提供了一种计算节点,包括:
状态计算单元,用于确定节点的运行状态;
通信单元,用于发送所述状态计算单元确定的所述运行状态,
其中,所述通信单元进一步用于接收根据所发送的运行状态确定的数据处理任务。
本申请实施例还提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行如本申请实施例提供的数据处理方法。
本申请实施例还提供了一种计算机可读存储介质,其上存储有可被处理器执行的计算机程序,其中,该程序被处理器执行时实现如本申请实施例提供的数据处理方法。
本申请实施例提供的数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质,通过在接收到数据写入请求之后,先计算出处理该请求的分片,并且然后将计算出的分片通过记载有处理节点的运行状态的写路由表来进行热点检查和调整,从而确定最终处理该数据写入请求的分片。因此,本申请实施例的数据存储方案,能够利用反映了处理节点的运行状态的写路由表来对基于数据写入请求所涉及的数据计算出的分片的分配进行调整,从而实现分片的适应性调整并从而消除热点,避免节点性能下降对于用户体验造成影响。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1a为本领域中现有技术的数据处理方法的示意图;
图1b为本申请实施例提供的数据处理方法的应用场景示意图;
图2为本申请提供的数据处理方法一个实施例的流程图;
图3为本申请提供的数据处理方法另一个实施例的流程图;
图4为本申请提供的数据处理装置实施例的结构示意图;
图5为本申请提供的电子设备实施例的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
本申请实施例提供的方案可应用于任何具有数据处理能力的数据处理系统。图1b为本申请实施例提供的数据处理方法的应用场景示意图,图1b所示的场景仅仅是本申请的技术方案可以应用的场景的示例之一。
随着分布式数据库技术的发展,越来越多的云服务器提供商为租户提供分布式数据库的服务,但是由于租户的规模不同,或者说租户租用分布式数据库服务的使用情况不同,因此,存在着数据库的数据读写操作量不同的问题。换言之,作为分布在多个节点上的分布式数据库来说,尤其是规模较大的数据库需要使用较多的节点来存储其多个分片。通常情况下,分布式数据库的管理节点在接收到需要存储的数据时通过散列算法来计算其所属的分片,从而将其引导至对应的节点进行存储。例如,某一个大型分布式数据库可以按照时间来进行分片,从而在一天内的数据按用户ID将数据聚集以存储在一个DN(节点)上,并且可以将第二天的数据存储在另一个DN(节点)上,从而用户查询某天的数据时可以直接将请求发送到该节点,而无需广播到全体节点,从而确保了查询的效率。但是另一方面,随着数据库使用的范围越来越广,尤其是在应用于云计算时,租用分布式数据库的租户租用多个节点来进行云计算的部署,在该情况下,租户会根据用户的需求对实例进行新建和删除的操作,并且这样的操作在发生比较频繁时可能会造成对分片节点的数据写入流量的较大负荷。因此,现在技术中只能够通过预先对租户的类别进行设置,例如设置大租户,和/或对租户的流量进行预先估计以预先确定应对策略。
例如,图1a为本领域中现有技术的数据处理方法的示意图,如图1a中所示,所示在现有技术中,可以预先根据租户的规模或数据量的大小或需要提供的数据库的规模来将租户分为大租户和小租户,例如图1a中所示的大商户白名单,并且相应地设置不同的分片分配策略。例如,根据租户ID字段来将具有属于小租户的ID的数据引导至用于小租户的Shard路由,并且将具有属于大租户的ID的数据引导至用于大租户的Shard路由。可以对小租户的数据采用以租户ID进行hash的方式确定其分片并发送到对应的节点存储。对于大租户的数据库,由于数据库规模较大,例如对于每个节点DN来说可能会承载10-1000个租户的数据,因此,可以采用按天在一个DN上存储分片的方式,从而多个租户的当天的数据都存储在同一个DN上,从而来实现分片的均匀性。
但是上述方案显然需要分布式数据库的管理方预先对于租户的情况进行了解并且预先设置分组并且给予不同的管理策略,从而在管理节点对于接收到的数据进行所属的分片计算时能够将数据确定至相应的分片节点。因此,在云计算的场景下,云数据库管理的实例存在着多样化的特点,因此,在租户购买分布式数据库来进行云计算的场景下,由于租户对于实例的新增操作和删除操作导致的频繁的实例迁移变动,因此上述现有技术中通过预先手动设置名单并给予相应的管理策略的方式就无法适应这样的情况。特别是,上述预先手动设置的方式无法解决由于租户的频繁操作导致的分片热点的及时消除的问题,从而会产生数据写入瓶颈,影响租户的使用体验。
具体地,例如,如本申请的图1b中所示,在分布式云数据库的使用中,租户可以将数据写入请求1-3发送给分布式云数据库的控制节点(RC),其中,该数据写入请求可以是对于租户所提供的数据库的数据写入,例如,数据写入请求1和3是大租户的数据写入请求,并且数据写入请求2是小租户的数据写入请求。在该过程中,租户的数据写入请求会被分布式云数据库根据负载均衡SLB策略,例如如上所述的大小租户的识别策略,而发送到相应的控制节点RC。例如,控制节点RC1可以接受到被识别为大租户的数据写入请求的数据写入请求1和3,并且控制节点RC2可以接收到被识别为小租户的数据写入请求的数据写入请求2。在接收到租户的数据写入请求之后,控制节点RC1和RC2可以进行散列算法计算,以确定接收到的数据写入请求所针对的数据分片(Shard),或者说将要写入的数据所属于的数据分片shard。例如,控制节点RC1可以确定数据写入请求1所针对的数据分片为shard1,数据写入请求2所针对的数据分片为shard2,并且数据写入请求3针对的数据分片为shard3。因此,控制节点RC1和RC2可以将数据写入请求分别发送至计算节点1-3中的对应的计算节点来进行处理,以完成数据的写入。在具体实施中,例如,计算节点RC1可以先根据数据写入请求1将对应的数据1输入到一个表队列(TableQueue),之后将该表队列中的数据发送给对应的表引擎(TableEngine)来进行处理。具体地,例如,每个表中的数据分片可以对应于一个表引擎,并且相应地数据在写入表引擎时可以先被输入到实时引擎(RealTime Engine)并通过周期性的处理来将将该事实引擎中的数据排序并建立索引,以最终写入到对应的分区数据引擎(PartitionEngine)中。因此,如上所述,现有技术中通过预先设定SLB策略来根据租户的情况对租户的数据写入请求引导到相应的控制节点来处理,从而实现数据处理的负载均衡。
但是如上所述,由于在上述方案中确定数据写入请求被分配到的控制节点所依据的SLB是预先设定的,并不能够做到根据实际情况而实时更新或调整。因此,在当前云计算大数据的场景中,计算节点处理数据的处理量会由于租户的实际操作而实时变化,因此容易产生热点。例如,在上述情况下,数据写入请求1和3是大租户发出的数据写入请求,并且如果数据写入请求1所涉及到的数据量较大,甚至数据写入请求1所涉及的数据的变化会引起相关分片中数据的改变,例如,数据写入请求1针对的分片对应于计算节点1,但是其涉及的数据的变化引起了对应于计算节点4的分片中数据的变化,因此在这种情况下,由于数据写入请求1涉及的数据较大,从而不仅导致计算节点1需要处理很大的数据量,而且也会导致计算节点4也需要处理很大的数据量,即计算节点1和4都在这时成为了热点。
在这样的情况下,如果不能给对策略进行及时的调整,会导致热点最终成为数据写入的瓶颈。因此,如图1b中所示,在本申请实施例中,租户的数据写入请求1-3仍然可以通过SLB来分配给对应的控制节点RC,并且同样在控制节点RC1-3处可以进行例如散列算法计算,以确定各数据写入请求1-3所针对的数据分片Shard。在此,与现有技术中不同的是,在确定了数据分片shard之后,如图1b中所示,控制节点RC1-3可以根据本申请实施例中的策略调整模块给出的数据分片来确定数据写入请求1-3应该被发送到的计算节点worker,而不是如现有技术那样仅基于散列算法来确定数据写入请求应该被发送到的计算节点。
例如,在如图1b中所示,本申请实施例的分布式数据库可以将数据写入请求1-3发送给分布式云数据库的控制节点(RC),其中,该数据写入请求可以是对于租户所提供的数据库的数据写入,例如,数据写入请求1和3是大租户的数据写入请求,并且数据写入请求2是小租户的数据写入请求。在该过程中,根据预设的负载均衡SLB策略,可以将数据写入请求1-3发送到相应的控制节点RC1或2。例如,控制节点RC1可以接受到被识别为大租户的数据写入请求的数据写入请求1和3,并且控制节点RC2可以接收到被识别为小租户的数据写入请求的数据写入请求2。在接收到租户的数据写入请求之后,控制节点RC1和RC2可以进行散列算法计算,以确定接收到的数据写入请求所针对的数据分片(Shard),或者说将要写入的数据所属于的数据分片shard。例如,控制节点RC1可以确定数据写入请求1所针对的数据分片为shard1,数据写入请求2所针对的数据分片为shard2,并且数据写入请求3针对的数据分片为shard3。这时,与现有技术不同的是,本申请实施例的分布式数据库系统通过额外提供了路由模块,来确定控制节点RC1和RC2将数据写入请求分别发送至计算节点1-3中的哪个计算节点来进行处理。具体地,控制节点RC1可以将接收到的数据写入请求1-3在发送给计算节点之前先按照路由模块中的写路由表发送到例如bucket的缓存单元中,并且之后根据写路由表中指定的计算节点将bucket中的数据发送给相应的计算节点。在本申请实施例中,可以根据对于计算节点的运行状态的检测来更新写路由表,例如,可以根据预先设置的节点状态指标来对计算节点的运行状态进行评估,并且根据评估结果来对各节点或节点对应的分片shard进行打分,从而能够根据分数来确定当前节点或shard是否存在热点,即数据写入量较大。因此,在如图1b中所示的本申请实施例中,路由模块可以根据实时的数据写入情况来改变数据写入请求1和3所针对的分片shard,从而平衡计算节点的负载压力。例如当数据写入请求1引起了对于计算节点1的计算负载压力增大,并且如上所述还额外引起了计算节点4的计算负载压力的增加,因此,可以在路由模块处检测到热点的产生,从而为bucket缓存单元中的数据写入请求1调整分片shard,使得数据写入操作不会集中在计算节点1处,从而实现了计算节点之间的负载平衡和均匀。
因此,根据本申请实施例的数据存储方案,通过在接收到数据写入请求之后,先计算出处理该请求的分片,并且然后将计算出的分片通过记载有处理节点的运行状态的写路由表来进行热点检查和调整,从而确定最终处理该数据写入请求的分片。因此,本申请实施例的数据存储方案,能够利用反映了处理节点的运行状态的写路由表来对基于数据写入请求所涉及的数据计算出的分片的分配进行调整,从而实现分片的适应性调整并从而消除热点,避免节点性能下降对于用户体验造成影响。
上述实施例是对本申请实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本申请实施例具体技术方案进行详细描述。
实施例二
图2为本申请提供的数据处理方法一个实施例的流程图,该方法的执行主体可以为具有数据处理能力的各种终端或服务器设备,也可以为集成在这些设备上的装置或芯片。如图2所示,该数据处理方法包括如下步骤:
S201,接收数据写入请求。
在本申请实施例中,分布式云数据库的租户可以将数据写入请求发送给分布式云数据库的节点,例如控制节点RC。该数据写入请求可以包括指示待写入数据的第一数据信息。换言之,数据写入请求可以是分布式数据库的租户对数据库进行操作导致的数据写入请求。例如,在本申请的云数据库为电商网站的销售记录数据库时,数据写入请求可以是由于用户的购买行为导致在作为租户的电商平台的数据库中对商品出售记录和用户的购买记录进行更新写入的数据写入请求,并且因此该数据写入请求中可以包括被购买的商品的商品信息以及购买了商品的用户信息,例如用户ID数据,或者也可以包括这些数据的数据源链接信息,从而在存储节点进行存储时可以从数据源来获取这些信息。在本申请的实施例中,数据写入请求可以是批量数据的写入请求,例如,在电商平台的数据的情况下,可以将预定时间间隔内发生的数据汇总为一个批量数据写入请求来发送给控制节点RC进行处理,从而能够提高处理效率。
S202,根据第一数据信息确定待写入数据所属的第一数据存储分区的第一分区标识信息。
在本申请实施例中,在接收到包含有待写入数据的数据写入请求时,在本申请实施例中,例如,可以在控制节点上根据散列键来计算待写入数据所属于的数据分片(shard),即数据存储分区。例如,可以根据数据写入请求来对待写入数据进行散列函数的计算,从而确定待写入数据应该被发送到的数据存储分区的第一分区标识信息。例如,在上述电商平台的情况下,可以根据在一天内发生的商品交易信息来确定待写入的购买记录数据应该写入到分区标识为shard0的数据存储分区中。在一些实施例中,可以进一步根据所确定的数据存储分区来确定对应的计算节点worker。
S203,根据写路由表和第一分区标识信息确定待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息。
在本申请实施例中,在步骤S202中确定了待写入数据所属于的数据存储分区之后,可以进一步根据写路由表来对步骤S202中确定的数据存储分区是否是热点来进行检测,并且可以根据检测的结果来确定将待写入数据写入到的另外的数据存储分区。特别地,写路由表可以与数据存储分区对应的数据存储节点的运行状态相关,从而写路由表可以反映数据存储节点的运行状态。例如,可以定期对存储节点的运行状态进行检测,并且根据检测的结果来评估存储节点的运行状态,例如确定存储节点当前是否处于热点状态或者处于热点状态的程度,从而在本申请实施例中,在步骤S202中已经确定了待写入数据所属于的数据存储分区之后,不会直接将待写入数据写入到该计算出的数据存储分区,而是根据这样反映了存储节点的运行状态的写路由表来对所计算出的数据存储分区对应的存储节点进行检查。当根据写路由表中的记录确认当前数据存储分区对应的存储节点为热点节点,即负荷较重时,则可以通过写路由表为当前待存储数据分配另外的节点来减轻当前的存储节点的压力。
即,在步骤S203中通过写路由表对当前待写入数据将要写入的数据存储节点进行状态评估,从而可以为当前的待写入数据分配另外的数据存储分区,即第二数据存储分区。
S204,根据第二分区标识信息将待写入数据写入到由第二分区标识信息标识的第二数据存储分区。
如上所述,在步骤S203中为当前待写入数据分配了第二数据存储分区之后,可以根据写路由表中的分配结果来将待写入数据引导至步骤S203中确认的第二数据存储分区来进行存储,从而能够在租户所要进行的数据写入引起了较高的数据节点的负荷时,及时通过写路由表来对数据进行引导,从而减轻数据存储节点的压力,实现消除热点的效果。
因此,根据本申请实施例的数据存储方案,通过在接收到数据写入请求之后,先计算出处理该请求的数据存储分区以及对应的数据存储节点,并且然后将计算出的数据存储节点通过反映了存储节点的运行状态的写路由表来进行热点检查和调整,从而确定最终写入数据的数据存储节点。因此,本申请实施例的数据存储方案,能够利用反映了处理节点的运行状态的写路由表来对基于数据写入请求所涉及的数据计算出的存储节点的分配进行调整,从而实现存储节点的适应性调整并从而消除热点,避免节点性能下降对于用户体验造成影响。
实施例三
图3为本申请提供的数据处理方法另一个实施例的流程图,该方法的执行主体可以为具有数据处理能力的各种终端或服务器设备,也可以为集成在这些设备上的装置或芯片。如图3所示,该数据处理方法包括如下步骤:
S301,根据预设的指标获取至少一个数据存储节点的运行状态数据。
在本申请实施例中,为了准确地判断待写入数据所属于的数据存储分区的节点是否为热点,可以实时或定期地获取各个数据存储节点的运行状态。特别地,可以预先指定能够衡量节点的负载情况的指标,并且根据这些指标来获取相应的运行数据。当然,在本申请实施例中,也可以直接获取运行节点的所有相关状态数据,并且再根据评估方案来挑选有用的状态数据。
例如,在本申请实施例中,可以利用定时任务调度采集器来定期向存储节点(worker)获取标识运行状态的数据,例如负载压力情况数据。使用的评估指标可以包括:TPS:数据库每秒能够处理的事务数;Lqueue:节点每张表的表队列(Table Queue)的长度;Nrt_:节点中实时计算引擎内存中存储的数据条数;GAPraft:三副本sync log apply存储模块的gap。
S302,获取至少一个数据库实例的规格参数。
在租户将根据本申请实施例的分布式云数据库应用于云计算的场景下,租户在进行云计算服务时会涉及数据库的各种实例,因此,根据本申请实施例,可以进一步使用与实例相关的各种指标来评估节点的运行状态。例如,可以使用下述指标作为与实例相关的评估指标:
Ncpu:cpu核数;
Cmem:内存大小;
Ncon:连接数;
Niops:节点的IOPS(每秒进行读写操作的次数,Input/Output Operations PerSecond);
Nrc:控制节点数目;
Nworker:存储节点数目;
n:shard总数量。
S303,根据运行状态计算至少一个数据存储节点中的每一个的状态分数。
在步骤S301中根据评估指标获取了各种运行状态数据和在步骤S302中获取了数据库实例的规格参数之后,可以在步骤S303中根据这些运行状态数据和数据库实例的规格参数来计算存储节点的状态分数。例如,可以根据节点指标的数据(例如,TPS、Lqueue、Nrt_row和GAPraft)中的一个或多个来计算状态分数。例如,在实际使用中,热点的产生是逐步发生的。例如,会先随着TPS的升高,导致处理的事务数逐渐增多并导致积累而使得rt_rows增加,而当rt_rows增加到一定程度时,节点的Lqueue,即表队列会增加而堆积数据,最终当队列数据堆满时,会导致GAPraft增加,即raft同步的间隙增加。换言之,上述四个指标从四个不同的维度反应了不同的热点情况,因此,在本申请实施例中,可以在步骤S303中选择其中的一个指标来计算状态分数,或者也可以使用多个指标来综合计算状态分数。
特别地,在使用多个指标,例如使用全部四个指标数据来计算状态分数时,可以根据指标对于热点产生的影响来给予指标数据不同的权重系数,并且从而计算这些指标数据的权重和来作为节点的状态分数。
例如,Zshard=αTPS+βNrt_wors+γLqueue+δGAPraft
其中,α、β、γ和δ为各指标数据的权重系数,并且如上所述可以具有关系:α<β<γ<δ。
此外,在步骤S302中获取了数据库规格参数的情况下,可以进一步来根据数据库的各个规格参数来计算数据库的规格分数。由于云数据库的规格指标能够进一步反映存储节点上存储的数据所属于的数据库的属性,因此对于存储节点的状态的判定也具有辅助和补充作用。因此,可以综合上述数据库的指标中的一个或全部来计算该存储节点上的数据库的分数。
例如,Zdb=F(Ncpu,Cmem,Ncon,Niops,Nrc,Nworker,n)。
在计算出数据库分数的情况下,可以进一步综合根据节点运行状态的指标数据计算出的分数和数据库分数来计算节点的最终状态分数。例如:
Figure BDA0002516889590000141
根据上述计算方式,当数据库的规格越高,则可以认为对节点变为热点的容忍度越高,从而节点的分数越低,即不太容易变为热点。而相反地,如果节点上存储的数据库的规格越低,则可以认为该数据库对于节点负载的容忍度越低,从而节点的分数越高,即容易成为热点。
此外,在数据存储系统在使用中的情况下,由于已经在使用过程中积累了节点的状态分数,因此,可以使用经过已有数据训练的数学模型来计算节点的状态分数。例如,在计算出状态数据之后,可以使用下述公示来计算状态分数Z。
Figure BDA0002516889590000142
其中,λZscore为数学模型计算出的状态分数的调整值,并且因此,根据本申请实施例的数据处理方法,可以进一步包括:
S304,获取包括已存储的存储数据以及关联的数据存储指令的训练数据集合。
S305,使用所获取的训练数据集合对预设的数据模型进行训练,以获得更新后的数据模型。
例如,在本申请实施例中,可以定期获取已存储的存储数据以及相关的数据写入指令来作为训练数据,因为已存储的存储数据是基于数据写入指令进行处理之后存储的,因此,其可以反映根据本申请实施例的数据处理方法的实际处理情况。并且也可以相应地包括消除了热点的正样本的训练数据集和未能消除热点或者导致了热点或加剧热点的负样本的训练数据集。
例如,在本申请实施例中,在使用训练数据计算上述公式中的score时,可以使用基于密度的dbscan聚类方法用于区分热点与非热点,再用皮尔森相关系数对非热点的聚类中心与各个热点shard的相关性程度计算出Zscore
例如,当样本集为D=(x1,x2,......,xn),其中n为存储分区shard的数目,Xi为存储分区的运行状态的指标的向量(包括TPS,Nrt_wors,Lqueue,GAPraft等)。在本申请实施例中,可以如下地定义DBSCAN密度。
∈-邻域:对于xj∈D,其∈-邻域包含样本集D中与xj的距离不大于∈的子样本集,即N∈(xj)={xi∈D|dist(xi,xj)≤∈}N∈(xj)={xi∈D|distance(xi,xj)≤∈}
核心对象:对于任一样本xj∈D,如果其∈∈-邻域对应的N∈(xj)至少包含MinPts个样本,即如果|N∈(xj)|≥MinPts,则xj是核心对象。
密度直达:如果xi位于xj的∈-邻域中,且xj是核心对象,则称xi由xj密度直达。
密度可达:对于xi和xj如果存在样本样本序列p1,p2,...,pT,满足p1=xi,pT=xj,且pt+1由pt密度直达,则称xj由xi密度可达。也就是说,密度可达满足传递性。此时序列中的传递样本p1,p2,...,pT-1均为核心对象,因为只有核心对象才能使其他样本密度直达。注意密度可达也不满足对称性,这个可以由密度直达的不对称性得出。
密度相连:对于xi和xj,如果存在核心对象样本xk,使xi和xj均由xk密度可达,则称xi和xj密度相连。
在本申请实施例中,例如,当输入为:训练数据的样本集D=(x1,x2,...,xm),邻域参数(∈,MinPts),样本距离度量方式时,输出可以为:簇划分C,即数据存储节点为热点还是非热点。
1)初始化核心对象集合
Figure BDA0002516889590000151
初始化聚类簇数k=0,初始化未访问样本集合Γ=D,簇划分
Figure BDA0002516889590000152
2)对于j=1,2,...m,按下面的步骤找出所有的核心对象:
a)通过距离度量方式,找到样本xj的∈-邻域子样本集N∈(xj);
b)如果子样本集样本个数满足|N∈(xj)|≥MinPts,将样本xj加入核心对象样本集合:Ω=Ω∪{xj};
3)如果核心对象集合
Figure BDA0002516889590000153
则在核心对象集合Ω中,随机选择一个核心对象o,初始化当前簇核心对象队列Ωcur={o}初始化类别序号k=k+1,初始化当前簇样本集合Ck={o},更新未访问样本集合Γ=Γ-{o};
4)如果当前簇核心对象队列
Figure BDA0002516889590000161
则当前聚类簇CkCk生成完毕,更新簇划分C={C1,C2,...,Ck},更新核心对象集合Ω=Ω-Ck,并继续判定核心对象集合Ω是否等于
Figure BDA0002516889590000163
否则更新核心对象集合Ω=Ω-Ck。
5)在当前簇核心对象队列Ωcur中取出一个核心对象o′,通过邻域距离阈值∈找出所有的∈-邻域子样本集N∈(o′),令Δ=N∈(o′)∩Γ更新当前簇样本集合Ck=Ck∪Δ,更新未访问样本集合Γ=Γ-Δ,更新Ωcur=Ωcur∪(Δ∩Ω)-o′,并接下来返回执行上一步骤4)。
因此,在本申请实施例中,根据上述步骤,可以获得输出结果为:簇划分C={C1,C2,...,Ck}以及中心点o。如上所述,本申请需要区分热点与非热点,因此k=2,即,簇划分C={C1,C2}。
随机对热点shard簇中挨个将其与中心点o进行皮尔逊相关系数的计算。
Figure BDA0002516889590000162
因此,通过上述基于训练数据集合的数学模型的计算,能够获得Zscore,以在步骤S303中辅助计算状态分数。
此外,在本申请实施例中,上述训练后的数据模型(例如,DBSCAN聚类模型以及皮尔逊计算模型)可以存储起来,以便于在步骤S303中使用。
S306,根据每个数据存储节点的状态分数确定可用于存储待存储数据的数据存储节点。
在通过步骤S303计算获得了存储节点的状态分数之后,可以根据存储节点来判定该存储节点是否是热点。例如,可以将存储节点的状态分数与预定阈值进行比较,并且将状态分数大于预设阈值的节点确定为处于热点状态,并且进而可以为待写入数据分配最终的存储分区,例如通过分配更多的写路由来为通过上述步骤探测出处于热点状态,即出现瓶颈的存储分区增加其他的存储分区,例如,可以将当前的所有存储分区中存量数据条数最少的存储分区作为用于消除热点的存储分区。特别地,在本申请实施例中,由于分布式数据库的租户的操作可能千差万别,因此很可能在一段时间内发生多次的热点状态,因此,也可以根据热点消除的次数来调整分配的数据存储分区的个数。例如,可以对存储分区按存量数据条数进行排序,并且从存量数据条数最少的分区开始选择2^n个分区来作为用于消除热点的存储分区。通过该方式,可以进一步考虑热点消除的历史而为段时间内出现多次热点状态的节点分配更多的存储分区来为其分担压力,从而能够确保热点消除效果的实现。
此外,在本申请实施例中,可以进一步考虑引起当前存储节点的热点状态的待存储数据关联的数据,例如当前待存储数据的来源数据,以便于从源头来分流数据,从而能够更容易消除热点的产生。例如,本申请的数据处理方法可以进一步包括:
S307,获取第一分区标识信息标识的第一数据存储分区的原始数据流量。
S308,根据原始数据流量中包含的数据信息确定导致原始数据流量的源数据所属于的第一源数据存储分区;
S309,根据写路由表和第一源数据存储分区的第一源分区标识信息确定源数据被写入的第二源数据存储分区的第二源分区标识信息;
S310,根据第二源分区标识信息将源数据写入到由第二源分区标识信息标识的第二源数据存储分区。
如上所述,在有些情况下,存储节点的负荷,即写入数据的量的急剧上升可能是由于其他写入数据的量的剧增而导致的。因此,在本申请实施例中,可以基于当前的待写入数据来检测器原始数据流量,并且进而将原始数据流量的数据通过写路由表来引导到其他存储分区,从而从源头上降低热点节点的数据写入流量。
例如,单个存储分区的总流量等于所有写入的数据对应的存储分区的流量总和,即
Figure BDA0002516889590000171
代表shardj流入的shardi的流量,因此
Figure BDA0002516889590000172
Figure BDA0002516889590000173
其中,
Figure BDA0002516889590000174
可以表示单个存储分区的总流量,n可以表示存储分区的总数量,并且
Figure BDA0002516889590000182
可以表示单个存储分区的原始流量,而
Figure BDA0002516889590000183
可以表示单个租户的流量,m表示租户总数量,并且Ftotal表示总流量。
此外,存储分区与租户可以具有对应关系:shardi=HASH(insx)mod n
因此,
Figure BDA0002516889590000181
在本申请实施例中,计算节点(worker)负载压力的目的是用于探测热点,因此可以使用节点(worker)上数据分区真实写入流量
Figure BDA0002516889590000184
来进行评估,即流量经过路由表均衡后的流量。并且在该步骤中,可以参考写入数据的存储分区的原始流量
Figure BDA0002516889590000185
即控制节点(RC)经过散列函数计算后,未根据路由表进行热点波动消除之前的流量。根据原始流量
Figure BDA0002516889590000186
去检测热点流量来源,判断流入该存储分区的流量主要由哪些分区的流量高引起的。
因此,根据本申请实施例的数据存储方案,通过在接收到数据写入请求之后,先计算出处理该请求的数据存储分区以及对应的数据存储节点,并且然后将计算出的数据存储节点通过反映了存储节点的运行状态的写路由表来进行热点检查和调整,从而确定最终写入数据的数据存储节点。因此,本申请实施例的数据存储方案,能够利用反映了处理节点的运行状态的写路由表来对基于数据写入请求所涉及的数据计算出的存储节点的分配进行调整,从而实现存储节点的适应性调整并从而消除热点,避免节点性能下降对于用户体验造成影响。
实施例四
图4为本申请提供的数据处理装置实施例的结构示意图,可用于执行如图2和图3所示的方法步骤。如图4所示,该数据处理装置可以包括:控制节点41、多个数据存储节点42和路由模块43。
控制节点41可以用于接收数据写入请求,并且用于根据第一数据信息确定待写入数据所属的第一数据存储分区的第一分区标识信息。
在本申请实施例中,分布式云数据库的控制节点RC可以接收分布式云数据库的租户的数据写入请求。该数据写入请求可以包括指示待写入数据的第一数据信息。换言之,数据写入请求可以是分布式数据库的租户对数据库进行操作导致的数据写入请求。例如,在本申请的云数据库为电商网站的销售记录数据库时,数据写入请求可以是由于用户的购买行为导致在作为租户的电商平台的数据库中对商品出售记录和用户的购买记录进行更新写入的数据写入请求,并且因此该数据写入请求中可以包括被购买的商品的商品信息以及购买了商品的用户信息,例如用户ID数据,或者也可以包括这些数据的数据源链接信息,从而在存储节点进行存储时可以从数据源来获取这些信息。在本申请的实施例中,数据写入请求可以是批量数据的写入请求,例如,在电商平台的数据的情况下,可以将预定时间间隔内发生的数据汇总为一个批量数据写入请求来发送给控制节点RC进行处理,从而能够提高处理效率。
多个数据存储节点42中的每一个可以分别用于存储与其对应的数据存储分区的数据。在本申请实施例中,控制节点41接收到包含有待写入数据的数据写入请求时,在本申请实施例中,例如,控制节点41可以根据散列键来计算待写入数据所属于的数据分片(shard),即数据存储分区。例如,可以根据数据写入请求来对待写入数据进行散列函数的计算,从而确定待写入数据应该被发送到的数据存储分区的第一分区标识信息。例如,在上述电商平台的情况下,可以根据在一天内发生的商品交易信息来确定待写入的购买记录数据应该写入到分区标识为shard0的数据存储分区中。在一些实施例中,可以进一步根据所确定的数据存储分区来确定对应的存储节点42。
路由模块43可以用于根据写路由表和第一分区标识信息确定待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息。路由模块43可以根据写路由表来对控制节点41确定的数据存储分区是否是热点来进行检测,并且可以根据检测的结果来确定将待写入数据写入到的另外的数据存储节点42上的数据存储分区。特别地,写路由表可以与数据存储分区对应的数据存储节点42的运行状态相关,从而写路由表可以反映数据存储节点42的运行状态。例如,可以定期对存储节点42的运行状态进行检测,并且根据检测的结果来评估存储节点42的运行状态,例如确定存储节点42当前是否处于热点状态或者处于热点状态的程度,从而在本申请实施例中,在控制节点41已经确定了待写入数据所属于的数据存储分区之后,不会直接将待写入数据写入到该计算出的数据存储分区,即数据存储节点42,而是由路由模块43根据这样反映了存储节点42的运行状态的写路由表来对所计算出的数据存储分区对应的存储节点42进行检查。当路由模块43根据写路由表中的记录确认当前数据存储分区对应的存储节点42为热点节点,即负荷较重时,则可以通过写路由表为当前待存储数据分配另外的节点42来减轻当前的存储节点42的压力。
在本申请的实施例中,控制节点41可以进一步用于根据第二分区标识信息将待写入数据写入到由第二分区标识信息标识的第二数据存储分区。
此外,路由模块43可以进一步包括:第一获取单元431、计算单元432和确定单元433。
第一获取单元431可以用于根据预设的指标获取至少一个数据存储节点的运行状态。
计算单元432可以用于根据运行状态计算所述至少一个数据存储节点中的每一个的状态分数。
确定单元433可以用于根据每个数据存储节点的状态分数确定可用于存储待存储数据的数据存储节点。
在本申请实施例中,为了准确地判断待写入数据所属于的数据存储分区的节点是否为热点,第一获取单元431可以实时或定期地获取各个数据存储节点的运行状态。特别地,可以预先指定能够衡量节点的负载情况的指标,并且根据这些指标来获取相应的运行数据。当然,在本申请实施例中,第一获取单元431也可以直接获取运行节点的所有相关状态数据,并且再根据评估方案来挑选有用的状态数据。
在第一获取单元431获取了状态数据之后,计算单元432可以根据这些运行状态数据和数据库实例的规格参数来计算存储节点的状态分数。例如,可以根据节点指标的数据(例如,TPS、Lqueue、Nrt_rows和GAPraft)中的一个或多个来计算状态分数。例如,在实际使用中,热点的产生是逐步发生的。例如,会先随着TPS的升高,导致处理的事务数逐渐增多并导致积累而使得rt_rows增加,而当rt_rows增加到一定程度时,节点的Lqueue,即表队列会增加而堆积数据,最终当队列数据堆满时,会导致GAPraft增加,即raft同步的间隙增加。换言之,上述四个指标从四个不同的维度反应了不同的热点情况,因此,在本申请实施例中,计算单元432可以选择第一获取单元431获取的指标数据中的至少一个来计算状态分数,或者也可以使用多个指标来综合计算状态分数。
特别地,在使用多个指标,例如使用全部四个指标数据来计算状态分数时,计算单元432可以根据指标对于热点产生的影响来给予指标数据不同的权重系数,并且从而计算这些指标数据的权重和来作为节点的状态分数。
此外,本申请实施例中,第一获取单元431可以进一步用于获取数据库实例的规格参数,并且计算单元432可以进一步用于根据运行状态数据和规格参数计算至少一个数据存储节点中的每一个的状态分数。由于云数据库的规格指标能够进一步反映存储节点上存储的数据所属于的数据库的属性,因此对于存储节点的状态的判定也具有辅助和补充作用。因此,计算单元432可以综合上述数据库的指标中的一个或全部来计算该存储节点上的数据库的分数。
在数据存储系统在使用中的情况下,由于已经在使用过程中积累了节点的状态分数,因此,计算单元431可以进一步用于使用经过已有数据训练的数学模型来计算节点的状态分数。例如,在计算出状态数据之后,可以使用下述公示来计算状态分数Z。
Figure BDA0002516889590000211
其中,λZscore为数学模型计算出的状态分数的调整值,并且因此,路由模块43可以进一步包括:第二获取单元434、训练单元435。
第二获取单元434可以用于获取包括已存储的存储数据以及关联的数据存储指令的训练数据集合。
训练单元435可以用于使用所获取的训练数据集合对预设的数据模型进行训练,以获得更新后的数据模型。
因此,计算单元432可以进一步用于:使用更新后的数据模型根据运行状态计算状态分数。
此外,第一获取单元431可以进一步用于获取第一分区标识信息标识的第一数据存储分区的原始数据流量,并且确定单元433可以进一步用于根据原始数据流量中包含的数据信息确定导致原始数据流量的源数据所属于的第一源数据存储分区;根据写路由表和第一源数据存储分区的第一源分区标识信息确定源数据被写入的第二源数据存储分区的第二源分区标识信息。如上所述,在有些情况下,存储节点的负荷,即写入数据的量的急剧上升可能是由于其他写入数据的量的剧增而导致的。因此,在本申请实施例中,可以基于当前的待写入数据来检测器原始数据流量,并且进而将原始数据流量的数据通过写路由表来引导到其他存储分区,从而从源头上降低热点节点的数据写入流量。
在该情况下,控制节点41可以进一步用于根据第二源分区标识信息将源数据写入到由第二源分区标识信息标识的第二源数据存储分区。
因此,根据本申请实施例的数据存储方案,通过在接收到数据写入请求之后,先计算出处理该请求的数据存储分区以及对应的数据存储节点,并且然后将计算出的数据存储节点通过反映了存储节点的运行状态的写路由表来进行热点检查和调整,从而确定最终写入数据的数据存储节点。因此,本申请实施例的数据存储方案,能够利用反映了处理节点的运行状态的写路由表来对基于数据写入请求所涉及的数据计算出的存储节点的分配进行调整,从而实现存储节点的适应性调整并从而消除热点,避免节点性能下降对于用户体验造成影响。
实施例五
以上描述了数据处理装置的内部功能和结构,该装置可实现为一种电子设备。图5为本申请提供的电子设备实施例的结构示意图。如图5所示,该电子设备包括存储器51和处理器52。
存储器51,用于存储程序。除上述程序之外,存储器51还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器52,不仅仅局限于中央处理器(CPU),还可能为图形处理器(GPU)、现场可编辑门阵列(FPGA)、嵌入式神经网络处理器(NPU)或人工智能(AI)芯片等处理芯片。处理器52,与存储器51耦合,执行存储器51所存储的程序,该程序运行时执行上述实施例二和三的数据处理方法。
进一步,如图5所示,电子设备还可以包括:通信组件53、电源组件54、音频组件55、显示器56等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。
通信组件53被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件53经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件53还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件54,为电子设备的各种组件提供电力。电源组件54可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件55被配置为输出和/或输入音频信号。例如,音频组件75包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器51或经由通信组件53发送。在一些实施例中,音频组件55还包括一个扬声器,用于输出音频信号。
显示器56包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (17)

1.一种数据处理方法,包括:
接收数据写入请求,所述数据写入请求包括指示待写入数据的第一数据信息;
根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息;
根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
2.根据权利要求1所述的数据处理方法,其中,所述数据处理方法进一步包括:
根据预设的指标获取至少一个数据存储节点的运行状态数据;
根据所述运行状态数据计算所述至少一个数据存储节点中的每一个的状态分数;
根据每个数据存储节点的状态分数确定可用于存储待存储数据的数据存储节点。
3.根据权利要求2所述的数据处理方法,其中,所述数据处理方法进一步包括:
获取数据库实例的规格参数,并且
所述根据所述运行状态数据计算所述至少一个数据存储节点中的每一个的状态分数包括:
根据所述运行状态数据和所述规格参数计算所述至少一个数据存储节点中的每一个的状态分数。
4.根据权利要求2所述的数据处理方法,其中,所述根据所述运行状态计算所述至少一个数据存储节点中的每一个的状态分数包括:
使用预设的数据模型根据所述运行状态计算所述状态分数。
5.根据权利要求4所述的数据处理方法,其中,所述数据处理方法进一步包括:
获取包括已存储的存储数据以及关联的数据存储指令的训练数据集合;
使用所获取的训练数据集合对所述预设的数据模型进行训练,以获得更新后的数据模型,并且
所述根据所述运行状态计算所述至少一个数据存储节点中的每一个的状态分数包括:
使用所述更新后的数据模型根据所述运行状态计算所述状态分数。
6.根据权利要求1所述的数据处理方法,其中,所述数据处理方法进一步包括:
获取所述第一分区标识信息标识的第一数据存储分区的原始数据流量;
根据所述原始数据流量中包含的数据信息确定导致所述原始数据流量的源数据所属于的第一源数据存储分区;
根据所述写路由表和所述第一源数据存储分区的第一源分区标识信息确定所述源数据被写入的第二源数据存储分区的第二源分区标识信息;
根据所述第二源分区标识信息将所述源数据写入到由所述第二源分区标识信息标识的第二源数据存储分区。
7.一种数据处理装置,包括:
控制节点,用于接收数据写入请求,并且用于根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息,所述数据写入请求包括指示待写入数据的第一数据信息;
多个数据存储节点,所述多个数据存储节点中的每一个分别用于存储与其对应的数据存储分区的数据;
路由模块,用于根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
其中,所述控制节点进一步用于根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
8.根据权利要求7所述的数据处理装置,其中,所述路由模块进一步包括:
第一获取单元,用于根据预设的指标获取至少一个数据存储节点的运行状态;
计算单元,用于根据所述运行状态计算所述至少一个数据存储节点中的每一个的状态分数;
确定单元,用于根据每个数据存储节点的状态分数确定可用于存储待存储数据的数据存储节点。
9.根据权利要求8所述的数据处理装置,其中,所述第一获取单元进一步用于:获取数据库实例的规格参数,并且
所述计算单元进一步用于:
根据所述运行状态数据和所述规格参数计算所述至少一个数据存储节点中的每一个的状态分数。
10.根据权利要求8所述的数据处理装置,其中,所述计算单元进一步用于:使用预设的数据模型根据所述运行状态计算所述状态分数。
11.根据权利要求10所述的数据处理装置,其中,所述路由模块进一步包括:
第二获取单元,用于获取包括已存储的存储数据以及关联的数据存储指令的训练数据集合;
训练单元,用于使用所获取的训练数据集合对所述预设的数据模型进行训练,以获得更新后的数据模型,并且
所述计算单元进一步用于:使用所述更新后的数据模型根据所述运行状态计算所述状态分数。
12.根据权利要求8所述的数据处理装置,其中,所述第一获取单元进一步用于获取所述第一分区标识信息标识的第一数据存储分区的原始数据流量,
所述确定单元用于:
根据所述原始数据流量中包含的数据信息确定导致所述原始数据流量的源数据所属于的第一源数据存储分区;
根据所述写路由表和所述第一源数据存储分区的第一源分区标识信息确定所述源数据被写入的第二源数据存储分区的第二源分区标识信息,并且
所述控制节点进一步用于根据所述第二源分区标识信息将所述源数据写入到由所述第二源分区标识信息标识的第二源数据存储分区。
13.一种数据系统,包括:客户端节点以及数据处理设备,其中,
所述客户端节点用于根据用户的操作将数据写入请求发送给所述数据处理设备,所述数据写入请求包括指示待写入数据的第一数据信息,并且,所述数据处理设备包括:
控制节点,用于接收来自所述客户端节点的数据写入请求,并且用于根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息;
多个数据存储节点,所述多个数据存储节点中的每一个分别用于存储与其对应的数据存储分区的数据;
路由模块,用于根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
其中,所述控制节点进一步用于根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
14.一种数据处理装置,包括:
控制节点,用于接收数据写入请求,,所述数据写入请求包括指示待写入数据的第一数据信息,并且用于根据所述第一数据信息确定所述待写入数据所属的第一数据存储分区的第一分区标识信息;
路由模块,用于根据写路由表和所述第一分区标识信息确定所述待写入数据被写入的第二数据存储分区的至少一个第二分区标识信息,其中,所述写路由表与数据存储分区对应的数据存储节点的运行状态相关;
其中,所述控制节点进一步用于根据所述第二分区标识信息将所述待写入数据写入到由所述第二分区标识信息标识的所述第二数据存储分区。
15.一种计算节点,包括:
状态计算单元,用于确定节点的运行状态;
通信单元,用于发送所述状态计算单元确定的所述运行状态,
其中,所述通信单元进一步用于接收根据所发送的运行状态确定的数据处理任务。
16.一种电子设备,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行如权利要求1至6中任一所述的数据处理方法。
17.一种计算机可读存储介质,其上存储有可被处理器执行的计算机程序,其中,该程序被处理器执行时实现如权利要求1至6中任一所述的数据处理方法。
CN202010479687.7A 2020-05-29 2020-05-29 数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质 Pending CN113420022A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010479687.7A CN113420022A (zh) 2020-05-29 2020-05-29 数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010479687.7A CN113420022A (zh) 2020-05-29 2020-05-29 数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113420022A true CN113420022A (zh) 2021-09-21

Family

ID=77711640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010479687.7A Pending CN113420022A (zh) 2020-05-29 2020-05-29 数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113420022A (zh)

Similar Documents

Publication Publication Date Title
JP6940646B2 (ja) 情報推奨方法、情報推奨装置、機器および媒体
CN106911780B (zh) 业务id生成方法、装置及系统
JP5453696B2 (ja) 電子ネットワークにおいてコンテンツを効果的にクライアント装置に提供するためのシステム及び方法
JP2007528060A (ja) アイテムのユーザ評価を見積るためのアプローチ
US20180173767A1 (en) System and method for facilitating queries via request-prediction-based temporary storage of query results
CN109582902B (zh) 排序信息的确定方法、榜单展示方法及计算机设备
CN103491152A (zh) 分布式文件系统中元数据获取方法、装置及系统
CN115291503B (zh) 推荐方法、推荐装置、电子设备和存储介质
JP6059314B1 (ja) 推定装置、推定方法及び推定プログラム
US20190342376A1 (en) System and method for facilitating queries via request-prediction-based temporary storage of query results
CN111881358B (zh) 一种对象推荐系统、方法、装置、电子设备和存储介质
CN110866698A (zh) 用于评定服务提供方的服务分值的装置
CN111741000A (zh) 基于区块链和智能合约的数据访问系统、方法及移动基站
CN111966887A (zh) 动态缓存方法及装置、电子设备、存储介质
CN114817232A (zh) 访问数据的方法及装置
CN112287208B (zh) 用户画像生成方法、装置、电子设备及存储介质
CN110708361B (zh) 数字内容发布用户的等级确定系统、方法、装置及服务器
CN113420022A (zh) 数据处理方法和装置、数据系统、计算节点、电子设备以及计算机可读存储介质
RU2714583C1 (ru) Способ и система для подбора блоков многомерных данных в электронной информационной системе
CN112506875B (zh) 文件存储方法、相关装置及文件存储系统
CN112100175B (zh) 分区数据定向传递方法及装置
CN113055745A (zh) 视频播放的处理方法、装置、设备及存储介质
US11295320B2 (en) Dynamic management of a customer life-cycle value
CN112100143A (zh) 一种文件压缩存储方法、装置、设备及存储介质
CN113111251A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40058756

Country of ref document: HK