CN115599782A - 时序数据库的分区调整方法、装置、设备及可读存储介质 - Google Patents
时序数据库的分区调整方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115599782A CN115599782A CN202111278133.1A CN202111278133A CN115599782A CN 115599782 A CN115599782 A CN 115599782A CN 202111278133 A CN202111278133 A CN 202111278133A CN 115599782 A CN115599782 A CN 115599782A
- Authority
- CN
- China
- Prior art keywords
- time
- node
- access
- user
- granule
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000005192 partition Methods 0.000 title claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 28
- 239000008187 granular material Substances 0.000 claims description 121
- 230000015654 memory Effects 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 30
- 238000000638 solvent extraction Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 abstract description 10
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了时序数据库的分区调整方法、装置、设备及可读存储介质,属于数据处理技术领域。方法包括:首先,获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,特征信息用于反映至少一个用户针对数据表的访问习惯。其中,数据表按照预定规则分成多个区组,每个区组又能分成多个区。各个区组分别设置在不同时间段中,各个区分别设置在不同节点中。之后,根据特征信息调整预定规则,根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区。本申请能够根据特征信息及时进行分区规则的更新,避免了由于分区规则不恰当而导致异常情况的发生,使得区组和/或区与用户的访问习惯相匹配,保证了节点的读写性能。
Description
本申请要求于2021年07月08日提交的申请号为202110770891.9、发明名称为“一种数据库的处理方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据处理技术领域,特别涉及时序数据库的分区调整方法、装置、设备及可读存储介质。
背景技术
在时序数据库中,数据以数据表的形式存储。由于数据量的不断增长,时序数据库需要将数据表分散至多个节点(node)进行存储。因此,需要对数据表进行分区(sharding),形成多个区(shard),从而将各个区分别设置在不同节点中。
相关技术中,首先按照时间段对数据表进行划分,得到多个区组(shard group),每个区组分别设置在不同时间段中。在一个区组中,按照一定的规则继续进行划分,得到多个区,每个区分别设置在不同节点中。其中,用于划分得到多个区的规则是在创建数据库或创建数据表时选定的规则。
然而,随着用户业务的变化,用户针对数据表的访问习惯可能发生改变,从而使得在创建数据库或创建数据表时选定的规则与访问习惯不匹配。如果仍使用选定的规则进行分区,则可能会导致节点之间负载不均衡等异常情况的发生,从而影响了节点的读写性能。
发明内容
本申请提供了一种时序数据的分区调整方法、装置、设备及可读存储介质,以解决相关技术存在的问题,技术方案如下:
第一方面,提供了一种时序数据库的分区调整方法,首先,获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,特征信息用于反映至少一个用户针对数据表的访问习惯。其中,数据表按照预定规则分成多个区组,每个区组又能分成多个区。各个区组分别设置在不同时间段中,各个区分别设置在不同节点中。之后,根据特征信息调整预定规则,根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区。
本申请获取用于反映用户针对数据表的访问习惯的特征信息,基于该特征信息调整预定规则,从而根据调整后的预定规则产生与访问习惯匹配的新的区组和/或新的区。本申请能够实现对分区规则的及时更新,避免了由于分区规则不恰当而导致异常情况的发生,使得区组和/或区与用户的访问习惯相匹配,保证了节点的读写性能。
在一种可能的实现方式中,根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区,包括:产生新的区组,在新的区组中根据调整后的规则产生与访问习惯匹配的新的区。
在一种可能的实现方式中,方法还包括:在预定区组中确定参考时刻,预定区组为特征信息的获取时刻所在的区组,参考时刻为特征信息的获取时刻之前数据表中有数据写入的最大时刻。基于参考时刻与预定区组的结束时刻之间的时间间隔,确定新的区组的起始时刻。在该实现方式中,参考时刻为数据表中有数据写入的最大时刻。本实现方式将该参考时刻作为能够调整预定规则的最早时刻,从而避免对已写入数据表中的数据重新进行迁移,进而避免了数据迁移过程占用处理资源。正是由于该参考时刻是能够调整预定规则的最早时刻,因而本实现方式基于该参考时刻确定新的区组的起始时刻。
在一种可能的实现方式中,基于参考时刻与预定区组的结束时刻之间的时间间隔,确定新的区组的起始时刻,包括:响应于时间间隔不小于时间阈值,将参考时刻确定为新的区组的起始时刻。方法还包括:更新预定区组,更新后的区组的起始时刻为预定区组的起始时刻,更新后的区组的结束时刻为参考时刻。其中,各个区组是依次生成的,一个区组结束之后则产生下一个区组,响应于该时间间隔大于时间阈值,则说明参考时刻与产生下一个区组的时刻之间的时间间隔较长,如果等待至预定区组结束之后再对预定规则进行调整,则还要使用预定规则较长时间,可能造成异常情况。因此,需要尽快对预定规则进行更新。基于此种原因,该实现方式将能够对预定规则进行更新的最早时刻,即参考时刻,确定为新的区组的起始时刻,以便于在新的区组中使用调整后的规则。该实现方式使得确定新的区组的起始时刻的过程较为灵活。
在一种可能的实现方式中,新的区组的结束时刻为预定区组的结束时刻。在该实现方式中,将预定区组的结束时刻作为新的区组的结束时刻。也就是说,以参考时刻为分界点,将预定区组划分为两个不同的区组。其中一个区组为更新后的区组,另一个区组为新的区组。
在一种可能的实现方式中,基于参考时刻与预定区组的结束时刻之间的时间间隔,确定新的区组的起始时刻,包括:响应于时间间隔小于时间阈值,将预定区组的结束时刻确定为新的区组的起始时刻。其中,各个区组是依次生成的,一个区组结束之后则生成下一个区组,响应于该时间间隔小于时间阈值,则说明参考时刻与生成下一个区组的时刻之间的时间间隔较短,因而本实现方式可等待至预定区组结束之后,在产生下一个区组时一并调整预定规则,也即是将预定区组的结束时刻确定为新的区组的起始时刻。该实现方式使得确定新的区组的起始时刻的过程较为灵活。
在一种可能的实现方式中,特征信息包括查询扇出度,查询扇出度用于指示处理访问请求所需要访问的节点的数量。
在一种可能的实现方式中,根据特征信息调整预定规则,包括:响应于查询扇出度指示的节点的数量大于数量阈值,基于解析访问请求得到的访问条件的使用频率确定分区键,基于分区键调整预定规则,得到调整后的规则。基于分区键获得调整后的规则,能够减小访问过程中的查询扇出度。
在一种可能的实现方式中,获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,包括:解析访问请求得到访问条件,基于访问条件确定处理访问请求所需要访问的节点,将需要访问的节点的数量确定为查询扇出度。
在一种可能的实现方式中,特征信息包括负载不均衡度,负载不均衡度用于指示不同节点的负载的不均衡程度。
在一种可能的实现方式中,根据特征信息调整预定规则,包括:响应于负载不均衡度指示的不均衡程度大于参考阈值,基于不同节点的负载确定区边界值,基于区边界值调整预定规则,得到调整后的规则。基于区边界值获得调整后的规则,能够改善各个节点之间负载不均衡的情况。
在一种可能的实现方式中,获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,包括:基于不同节点的数据量、时间线数量和时间线的访问频率中的至少一种,确定不同节点的负载;基于不同节点的负载确定负载不均衡度。
在一种可能的实现方式中,特征信息包括用户位置与节点位置的对应关系,用户位置为至少一个用户的位置,节点位置为处理访问请求所需要访问的节点的位置。
在一种可能的实现方式中,根据特征信息调整预定规则,包括:响应于用户位置与节点位置的对应关系中用户位置与节点位置之间的距离大于距离阈值,确定与用户位置之间的距离不大于距离阈值的更新后的节点,基于更新后的节点调整预定规则,得到调整后的规则。基于更新后的节点获取调整后的规则,能够减小访问过程中的数据传输距离。
在一种可能的实现方式中,获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,包括:解析访问请求得到访问条件,基于访问条件确定处理访问请求所需要访问的节点,基于需要访问的节点的位置和至少一个用户的位置确定用户位置与节点位置的对应关系。
在一种可能的实现方式中,特征信息包括查询扇出度、负载不均衡度以及用户位置与节点位置的对应关系中的至少一种信息。
第二方面,提供了一种时序数据库的分区调整装置,该装置包括:
获取模块,用于获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,其中,数据表按照预定规则分成多个区组,每个区组分成多个区,每个区组分别设置在不同时间段中,每个区分别设置在不同节点中,特征信息用于反映至少一个用户针对数据表的访问习惯;
调整模块,用于根据特征信息调整预定规则,根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区。
在一种可能的实现方式中,调整模块,用于产生新的区组,在新的区组中根据调整后的规则产生与访问习惯匹配的新的区。
在一种可能的实现方式中,调整模块,还用于在预定区组中确定参考时刻,预定区组为特征信息的获取时刻所在的区组,参考时刻为特征信息的获取时刻之前数据表中有数据写入的最大时刻;基于参考时刻与预定区组的结束时刻之间的时间间隔,确定新的区组的起始时刻。
在一种可能的实现方式中,调整模块,用于响应于时间间隔不小于时间阈值,将参考时刻确定为新的区组的起始时刻;
调整模块,还用于更新预定区组,更新后的区组的起始时刻为预定区组的起始时刻,更新后的区组的结束时刻为参考时刻。
在一种可能的实现方式中,新的区组的结束时刻为预定区组的结束时刻。
在一种可能的实现方式中,调整模块,用于响应于时间间隔小于时间阈值,将预定区组的结束时刻确定为新的区组的起始时刻。
在一种可能的实现方式中,特征信息包括查询扇出度,查询扇出度用于指示处理访问请求所需要访问的节点的数量。
在一种可能的实现方式中,调整模块,用于响应于查询扇出度指示的节点的数量大于数量阈值,基于解析访问请求得到的访问条件的使用频率确定分区键,基于分区键调整预定规则,得到调整后的规则。
在一种可能的实现方式中,获取模块,用于解析访问请求得到访问条件,基于访问条件确定处理访问请求所需要访问的节点,将需要访问的节点的数量确定为查询扇出度。
在一种可能的实现方式中,特征信息包括负载不均衡度,负载不均衡度用于指示不同节点的负载的不均衡程度。
在一种可能的实现方式中,调整模块,用于响应于负载不均衡度指示的不均衡程度大于参考阈值,基于不同节点的负载确定区边界值,基于区边界值调整预定规则,得到调整后的规则。
在一种可能的实现方式中,获取模块,用于基于不同节点的数据量、时间线数量和时间线的访问频率中的至少一种,确定不同节点的负载;基于不同节点的负载确定负载不均衡度。
在一种可能的实现方式中,特征信息包括用户位置与节点位置的对应关系,用户位置为至少一个用户的位置,节点位置为处理访问请求所需要访问的节点的位置。
在一种可能的实现方式中,调整模块,用于响应于用户位置与节点位置的对应关系中用户位置与节点位置之间的距离大于距离阈值,确定与用户位置之间的距离不大于距离阈值的更新后的节点,基于更新后的节点调整预定规则,得到调整后的规则。
在一种可能的实现方式中,获取模块,用于解析访问请求得到访问条件,基于访问条件确定处理访问请求所需要访问的节点,基于需要访问的节点的位置和至少一个用户的位置确定用户位置与节点位置的对应关系。
在一种可能的实现方式中,特征信息包括查询扇出度、负载不均衡度以及用户位置与节点位置的对应关系中的至少一种信息。
第三方面,提供了一种时序数据库的分区调整设备,设备包括存储器及处理器;存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以使分区设备实现上述各方面中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述各方面中的方法。
第五方面,提供了一种计算机程序产品,计算机程序产品包括计算机程序或指令,计算机程序或指令被处理器执行,以使计算机实现上述各方面中的方法。
第六方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述各方面中的方法。
第七方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述各方面中的方法。
附图说明
图1为本申请实施例提供的一种实施环境的示意图;
图2为本申请实施例提供的一种时序数据库的分区调整方法的流程示意图;
图3为本申请实施例提供的一种时序数据库的数据表的结构示意图;
图4为本申请实施例提供的一种时序数据库的数据表的分区过程的示意图;
图5为本申请实施例提供的一种时序数据库的数据表的分区过程的示意图;
图6为本申请实施例提供的一种区组的示意图;
图7为本申请实施例提供的一种时序数据库的分区调整装置的结构示意图;
图8为本申请实施例提供的一种时序数据库的分区调整设备的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
本申请实施例提供了一种时序数据库的分区调整方法,该方法应用于图1所示的实施环境中。图1中,包括统计模块(statistics module)、决策模块(decision module)和分区模块(sharding module),统计模块、决策模块和分区模块之间两两连接。其中,统计模块、决策模块和分区模块可以集成于同一硬件设备中,也可以集成于不同的硬件设备中,以实现各个模块所需要实现的功能。示例性的,该硬件设备包括但不限于终端设备、服务器或者其他有分区需求的网络设备等,本申请实施例不对硬件设备的种类进行限定。接下来,对各个模块所需要实现的功能进行说明如下。
统计模块,用于统计特征信息。参见图1,统计模块采集与用户请求(request)有关的信息,并采集分区模块发送的各个节点的负载信息(load information),从而统计得到特征信息,示例性地,该特征信息用于反映至少一个用户针对数据表的访问习惯。其中,特征信息包括但不限于:用户位置与节点位置的对应关系、负载不均衡度和查询扇出度。之后,统计模块将统计的特征信息反馈(feed back)至决策模块。
决策模块,用于接收统计模块发送的特征信息,基于特征信息确定是否需要对当前使用的预定规则(sharding rule)进行更新。如果需要更新,则进一步根据特征信息调整预定规则,得到调整后的规则,将调整后的规则发送至分区模块。当然,如果基于特征信息确定不需要对当前使用的预定规则进行更新,则不向分区模块发送调整后的规则。另外,无论是否对预定规则进行更新,在当前区组结束之后,均需要指示分区模块产生下一个区组。
分区模块,用于根据决策模块的指示进行分区。其中,响应于接收到决策模块发送的调整后的规则,则按照调整后的规则产生新的区组和/或区。另外,分区模块还按照决策模块的指示,在当前区组结束之后产生下一个区组。
基于上述图1所示的实施环境,本申请实施例提供了一种时序数据库的分区调整方法。参见图2,该方法包括如下的步骤。
201,获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,特征信息用于反映至少一个用户针对数据表的访问习惯。
在本申请实施例中,基于至少一个用户针对时序数据库的数据表的访问请求进行持续统计,从而得到特征信息。由于统计过程是持续的,因而统计得到的特征信息可能是随时间不断变化的。在一些实施方式中,每隔参考时长获取一次特征信息,本申请实施例不对该参考时长加以限定,参考时长可以根据经验进行设置。其中,特征信息会在后文进行详细说明,此处暂不进行赘述。接下来,对时序数据库和时序数据库的数据表进行说明。
时序数据库又称时间序列数据库,是一种用于处理时间序列数据的数据库,时间序列数据是对应有时间戳(timestamp)的数据。在时序数据库中,时间序列数据以数据表的形式存储,时间序列数据在数据表中按照时间顺序排列。一条时间序列数据包括时间戳、标签(tag)和至少一个指标数据。至少一个指标数据包括数据源产生的数据和/或用于指示数据源属性的数据(又称元数据),标签用于对数据源进行唯一标识。例如,参见图3,图3示出了一个示例性的时序数据库的数据表,数据表中的每一行即为一条时间序列数据。图3中,用于产生指标数据的数据源为设备(device),标签为设备标识(device_id),指标数据包括数据源产生的数据和用于指示数据源属性的数据。其中,数据源产生的数据包括每分钟中央处理器(central processing unit,CPU)平均值(cpu_1m_avg)、空闲内存(free_mem)和温度(temperature),用于指示数据源属性的数据包括位置标识(location_id)和开发类型(dev_type)。
本申请实施例中,时序数据库的数据表按照预定规则分成多个区组,每个区组分成多个区。其中,每个区组分别设置在不同时间段中,每个区分别设置在不同节点中。结合图4对区组和区进行说明。
参见图4中的纵坐标,首先按照时间范围(time range)将数据表划分为多个区组,区组又称时间分区。每个区组分别设置在不同时间段中,该时间段又称为区组持续时间(shard group duration)。示例性地,不同区组的持续时间可能相同,也可能不同,本申请实施例不对区组的持续时间加以限定。例如,一个区组所在的时间段为周一的0:00至24:00,另一个区组所在的时间段为周二的0:00至24:00,这两个区组所在的时间段不同(分别为周一和周二),但这两个区组具有相同的持续时间(均为24小时)。示例性地,各个区组是依次生成的。也就是说,在一个区组结束之后,再产生下一个区组。例如,一个区组所在的时间段为周一的0:00至24:00,则在周一的24:00该区组结束,此时(即周一的24:00)再产生下一个区组。
参见图4中的横坐标,按照预定规则将每个区组划分为多个区,多个区分别设置在数据库的不同节点中,每个区中均包括数据表中的至少一条时间序列数据。示例性地,预定规则包括但不限于时间序列数据包括的标签和各个指标数据中的至少一个,本实施例不对预定规则加以限定。
根据以上结合图4的说明能够看出,在一些实施方式中,将时序数据库的数据表按照预定规则分成多个区组,每个区组分成多个区,包括:按照时间范围将数据表分成多个区组,按照预定规则将每个区组分成多个区。以图5示出的情况为例,说明按照该实施方式对时序数据库的数据表进行分区的过程。
首先,以1分钟为一个时间段,将数据表划分为两个区组。第一个区组所在的时间段为2017-01-01 01:02:00至2017-01-01 01:02:59,则第一个区组中包括时间序列数据1、时间序列数据2和时间序列数据3。第二个区组所在的时间段为2017-01-01 01:03:00至2017-01-01 01:03:59,则第二个区组中包括时间序列数据4、时间序列数据5和时间序列数据6。
在第一个区组和第二个区组中,以位置标识为预定规则,从而将第一个区组和第二个区组分别划分为两个区。如图5所示,第一个区组中的第一个区包括时间序列数据1和时间序列数据2(位置标识均为42),第一个区组中的第二个区包括时间序列数据3(位置标识为77)。第二个区组中的第一个区包括时间序列数据4和时间序列数据5(位置标识均为42),第二个区组中的第二个区包括时间序列数据6(位置标识为77)。其中,第一个区组和第二个区组中的第一个区均设置在第一个节点中,第一个区组和第二个区组中的第二个区均设置在第二个节点中。
需要说明的是,在一个区组内按照预定规则划分得到多个区后,仅会将该区组所在的时间段内的时间序列数据写入按照该预定规则划分得到的区中,而在该区组所在的时间段之前已写入数据表的时间序列数据则不会再重新被写入。例如,一个区组所在的时间段为周一的0:00至24:00,按照预定规则划分得到多个分区之后,如果在周一的0:00至24:00内获取到需要写入数据表中的时间序列数据,则将该时间序列数据写入按照该预定规则划分得到的区中,而周一的0:00之前数据表中已写入的时间序列数据则不会被重新写入。
202,根据特征信息调整预定规则,根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区。
根据201中的说明可知,数据表已按照预定规则划分为区组和区,特征信息用于反映至少一个用户针对数据表的访问习惯。示例性地,响应于特征信息满足条件,则说明按照预定规则划分得到的区组和区与特征信息所反映的访问习惯不匹配,如果继续使用预定规则,则会导致异常情况的发生。因此,在特征信息满足条件的情况下,需要根据特征信息调整预定规则,以便于根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区。其中,特征信息满足条件的方式会在后文中与特征信息一并进行详细说明,此处暂不进行赘述。
在示例性实施例中,根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区,包括:产生新的区组,在新的区组中根据调整后的规则产生与访问习惯匹配的新的区。其中,由于新的区组设置在一个时间段中,因而该新的区组对应有起始时刻和结束时刻,本申请实施例需要确定该新的区组的起始时刻和结束时刻。
在示例性实施例中,方法还包括:在预定区组中确定参考时刻。基于参考时刻与预定区组的结束时刻之间的时间间隔,确定新的区组的起始时刻。其中,预定区组为特征信息的获取时刻所在的区组。参考时刻为特征信息的获取时刻之前数据表中有数据写入的最大时刻。
根据201中的说明可知,已写入数据表中的数据不会被重新写入,因而需要确定数据表中有数据写入的最大时刻,也即是参考时刻,在该参考时刻之后才能对预定规则进行调整。示例性地,由于数据表中的时间序列数据包括有时间戳,因而本申请实施例获取数据表中的最大时间戳,从而将该最大时间戳所指示的时刻确定为参考时刻。当然,此种确定参考时刻的方式仅为举例,不用于对本实施例确定参考时刻的方式造成限定。
在示例性实施例中,基于参考时刻与预定区组的结束时刻之间的时间间隔,确定新的区组的起始时刻,包括如下的两种方式A1和A2。
方式A1:响应于参考时刻与预定区组的结束时刻之间的时间间隔小于时间阈值,将预定区组的结束时刻确定为新的区组的起始时刻。
其中,根据201中的说明可知,各个区组是依次生成的,一个区组结束之后便会产生下一个区组。响应于参考时刻与预定区组的结束时刻之间的时间间隔小于时间阈值,则说明参考时刻与生成下一个区组的时刻之间的时间间隔较短。因此,本实施例不将参考时刻作为新的区组的起始时刻,也即是不立即产生新的区组、不立即对预定规则进行调整,而是等待预定区组结束之后,在产生下一个区组时一并对预定规则进行调整。能够理解的是,由于该时间间隔较短,因而即使在参考时刻与预定区组的结束时刻之间仍使用预定规则进行分区,使得由于该预定规则而产生的异常情况在预定区组结束之前不能够得到改善,也不会造成严重后果。例如,时间阈值为1小时,预定区组所在的时间段为周一的0:00至24:00,参考时刻为周一的23:30。由于参考时刻与预定区组的结束时刻(即周一的24:00)之间的时间间隔为30分钟,小于时间阈值1小时,因而将预定区组的结束时刻作为新的区组的起始时刻。
在方式A1中,新的区组的结束时刻可以是晚于新的区组的起始时刻的任一时刻。示例性地,本申请实施例使得预定区组与新的区组的区组持续时间一致。例如预定区组所在的时间段为周一的0:00至24:00,则新的区组所在的时间段为周二的0:00至24:00。
方式A2:响应于参考时刻与预定区组的结束时刻之间的时间间隔不小于时间阈值,将参考时刻确定为新的区组的起始时刻。
响应于参考时刻与预定区组结束时刻之间的时间间隔不小于时间阈值,则说明参考时刻与产生下一个区组的时刻之间的时间间隔较长。如果仍然等待至预定区组结束之后再对预定规则进行调整,则可能导致由于预定规则而产生的异常情况存在较长时间,从而造成严重后果。因此,在方式A2中,将参考时刻确定为新的区组的起始时刻,也即是立即产生新的区组,以便于在新的区组中对预定规则进行调整,从而保证了对预定规则的及时调整。例如,时间阈值为1小时,预定区组所在的时间段为周一的0:00至24:00,参考时刻为周一的14:00。由于参考时刻与预定区组的结束时刻(即周一的24:00)之间的时间间隔为8小时,大于时间阈值1小时,因而将参考时刻确定为新的区组的起始时刻。
并且,在方式A2中,由于不同区组需要设置在不同时间段中,而预定区组中参考时刻之后的时间段已经被作为新的区组,因此还需要对预定区组进行更新。在示例性实施例中,方法还包括:更新预定区组,更新后的区组的起始时刻为预定区组的起始时刻,更新后的区组的结束时刻为参考时刻。仍以预定区组所在的时间段为周一的0:00至24:00,参考时刻为周一的14:00为例,则更新后的区组的起始时刻为周一的0:00,更新后的区组的结束时刻为周一的14:00。
在示例性实施例中,方式A2中新的区组的结束时刻为预定区组的结束时刻。例如,预定区组所在的时间段为[T1,T2],参考时刻为位于T1和T2之间的T3,则新的区组的起始时刻是与该参考时刻一致的T3,新的区组的结束时刻是预定区组的结束时刻T2。参见图6,在此种情况下,是以参考时刻为分界点,将预定区组分为了两个不同区组。其中一个即为新的区组[T3,T2],另一个即为上述更新后的区组[T1,T3]。当然,本实施例不对新的区组的结束时刻加以限定,新的区组的结束时刻可以晚于预定区组的结束时刻,也可以早于预定区组的结束时刻。
能够理解的是,在实际应用过程中,上述201和202能够多次执行,从而确保分区规则能够根据实际需要不断更新,使得用于分区的规则与用户的访问习惯相适配,保证数据库的各个节点的读写性能。
另外,上述202针对于特征信息满足条件、需要对预定规则进行调整的情况。响应于特征信息不满足条件,则说明按照该预定规则进行分区不会导致异常情况的发生,因而无需对预定规则进行调整,仍然使用预定规则即可。示例性地,在预定区组结束之后直接产生下一个区组,在下一个区组中仍然按照预定规则划分得到多个区。其中,该下一个区组的起始时刻即为预定区组的结束时刻,本申请实施例不对该下一个区组的结束时刻加以限定。
以上,对本实施例中时序数据库的分区调整过程进行了说明。接下来,对上述说明中未进行赘述的内容进行详细说明。
在示例性实施例中,数据表的特征信息包括用户位置与节点位置的对应关系、负载不均衡度和查询扇出度中的至少一种信息。能够理解的是,以上特征信息仅为举例,不用于对本实施例造成限定。本实施例还可以根据实际需要将其他信息作为数据表对应的特征信息。通过情况B1-情况B3对查询扇出度、负载不均衡度和用户位置与节点位置的对应关系分别进行说明。
情况B1:查询扇出度用于指示处理访问请求所需要访问的节点的数量。示例性地,获取查询扇出度的方式包括:解析访问请求得到访问条件,基于访问条件确定处理访问请求所需要访问的节点,将需要访问的节点的数量确定为查询扇出度。其中,访问请求用于从数据表中读写数据,处理该访问请求需要访问哪个节点或哪些节点,是由该访问请求中的访问条件确定的。例如,访问条件为访问某个时间段内A区域的数据,而该时间段内A区域的数据分别位于节点1和节点2中,则能够确定需要访问的节点即为节点1和节点2。在确定需要访问的节点之后,便能够统计需要访问的节点数量,从而基于需要访问的节点数量确定该查询扇出度。在一些实施方式中,将需要访问的节点数量直接作为查询扇出度。例如在上一个举例中,需要访问的节点为节点1和节点2,需要访问的节点数量为2个,则确定查询扇出度为2。在另一些实施方式中,将需要访问的节点数量与数据库包括的所有节点的比值作为查询扇出度。仍以需要访问的节点数量为2个为例,如果数据库包括10个节点,则将2/10作为查询扇出度。
在示例性实施例中,根据特征信息调整预定规则,包括:响应于查询扇出度指示的节点的数量大于数量阈值,则基于解析访问请求得到的访问条件的使用频率确定分区键,基于分区键调整预定规则,得到调整后的规则。能够看出,响应于查询扇出度指示的节点的数量大于数量阈值,则认为特征信息满足条件,需要调整预定规则。
其中,响应于查询扇出度指示的节点的数量大于数量阈值,则说明当前使用的分区键与用户的访问习惯不匹配。例如,当前使用的分区键为时间。在某个区组内包括A0-A9共十个子时间段,一个子时间段的时间序列数据位于同一个节点中,而一个区域的时间序列数据则可能分散在不同节点中。当访问条件为区域时,例如需要读写区域B0的所有时间序列数据时,则可能需要访问所有的十个节点才能获得区域B0的所有时间序列数据,因而查询扇出度较大,可能大于数量阈值。因此,需要基于访问条件确定新的分区键,从而得到调整后的规则。
在一些实施方式中,基于分区键调整预定规则,得到调整后的规则,包括:将使用频率最高的访问条件作为分区键,将预定规则替换为分区键,得到调整后的规则。例如,使用频率最高的访问条件为区域,则将区域作为分区键。仍以上一个举例为例,将区域作为分区键之后,一个区域的时间序列数据均位于同一个节点中,而不再分散在不同节点中。当需要读写区域B0的所有时间序列数据时,仅需访问区域B0对应的一个节点即可,从而减小了查询扇出度。在另一些实施方式中,本实施例按照使用频率从大到小的顺序对访问条件进行排列,得到访问条件序列,将该访问条件序列中前参考数量个访问条件作为分区键。本实施例不对参考数量加以限定,参考数量为不小于2的正整数。例如,使用频率最高的访问条件为区域,使用频率第二高的访问条件为时间,参考数量为2,则将区域和时间共同作为调整后的规则。
在数据表创建时,用户可能会随机设置分区键,或者根据创建时的实际需求设置分区键。然而,在数据表的使用过程中,用户业务可能发生改变,从而导致之前设置的分区键不再适用用户当前的业务,根据该分区键划分得到的区与用户的访问习惯不匹配。本实施例根据查询扇出度对分区键进行调整,使得分区键与用户当前业务的状态相适配、根据该分区键划分得到的区与用户的访问习惯相匹配,从而提高了节点读写性能。
情况B2,负载不均衡度用于指示不同节点的负载的不均衡程度。示例性地,获取负载不均衡度的方式包括:基于不同节点的数据量、时间线数量和时间线的访问频率中的至少一种,确定不同节点的负载。基于不同节点的负载确定负载不均衡度。其中,时间线与数据源一一对应,一个时间线中包括与数据源对应的一条或多条时间序列数据。例如,在图3所示的情况下,数据源abc123对应的时间线包括时间序列数据1和时间序列数据4。另外,时间线的访问频率即为对时间线进行读写的频率。
在一些实施方式中,上述不同节点是指:设置有数据表的各个区的节点。例如,数据库共包括10个节点,在一个区组中数据表包括设置在5个节点中的5个区,则不同节点是指10个节点中设置有区的5个节点。在另一些实施方式中,不同节点是指:数据库包括的所有节点。例如,数据库共包括10个节点,这10个节点即为上述不同节点。
示例性地,基于不同节点的负载确定负载不均衡度,包括:对于一个节点而言,基于该节点的负载确定该节点的负载值,基于不同节点的负载值确定负载不均衡度。例如,计算各个节点的负载值的方差,将方差作为负载不均衡度。在一些实施方式中,基于一个节点的负载确定该节点的负载值,包括:基于该节点的数据量确定第一子值,基于该节点的时间线数量确定第二子值,基于该节点的时间线的访问频率确定第三子值,将第一子值、第二子值和第三子值的加权求和值作为该节点的负载值。其中,不同子值的权重相同或不同,本实施例不对不同子值的权重加以限定。
在示例性实施例中,根据特征信息调整预定规则,包括:响应于负载不均衡度指示的不均衡的程度大于参考阈值,基于不同节点的负载确定不同节点之间的区边界值,基于区边界值调整预定规则,得到调整后的规则。能够看出,响应于负载不均衡度指示的不均衡的程度大于参考阈值,则认为特征信息满足条件,需要对预定规则进行调整。
在不同节点之间负载不均衡的情况下,负载较大的节点会受到节点处理能力的限制,导致负载较大的节点读写性能较差。另外,负载较小的节点则无法充分利用节点处理能力,导致节点处理能力的浪费。因此,需要对负载不均衡的情况进行改善。本实施例中,通过对区边界值的修改来调整不同节点的负载,从而实现不同节点之间的负载均衡。示例性地,基于区边界值调整预定规则,得到调整后的规则,包括:将预定规则替换为区边界值,得到调整后的规则。示例性地,在调整不同节点的负载时,可以以时间线为单位进行调整,本实施例不对单位加以限定。以下以单位为时间线为例进行说明。
在预定区组中,节点A中包括时间线0-999,节点B中包括时间线1000-1999,则区边界值为999和1000。如果预定区组内节点A的负载较大,节点B的负载较小,则节点A和节点B存在负载不均衡情况。因此,需要减小节点A的负载并增大节点B的负载,从而使得节点A与节点B达到负载均衡。例如,将区边界值由999和1000调整为599和600,则在新的区组内,时间线0-599对应的数据源所对应的时间序列数据被写入节点A,时间线600-1999对应的数据源所对应的时间序列数据被写入节点B,则节点A和节点B的负载在新的区组所在的时间段内达到负载平衡。
需要强调的是,在上述负载均衡的过程中,是在预定区组所在的时间段内发生负载不均衡时,在新的区组所在的时间段内进行区边界值的调整,从而在新的区组所在的时间段内实现负载均衡,因而并不涉及时间序列数据在不同节点之间的迁移过程。由此,避免了不同节点之间的数据迁移过程与用户正常访问数据库的过程发生冲突,从而避免了影响节点读写性能。其中,由于预定区组所在的时间段内未进行区边界值的调整,因而预定区组所在的时间段内的负载不均衡的情况仍然存在。不过,由于时序数据库往往最为关注新的区组,因而在新的区组所在的时间段内实现负载均衡,即可满足数据库对于不同节点之间的负载均衡的要求。
情况B3,在用户位置与节点位置的对应关系中,用户位置为至少一个用户的位置,节点位置为处理访问请求所需要访问的节点的位置。示例性地,获取用户位置与节点位置的对应关系,包括:解析访问请求得到访问条件,基于访问条件确定处理访问请求需要访问的节点,基于需要访问的节点和至少一个用户的位置确定用户位置与节点位置的对应关系。其中,访问请求中可以携带用户设备的标识,该用户设备的标识用于对用户设备进行唯一指示,因而基于该用户设备的标识能够确定用户位置。确定需要访问的节点的过程参见上文说明,此处不再进行赘述。示例性地,当需要访问的节点数量为一个时,直接将节点位置与用户位置进行对应存储即可,此种情况下用户位置与节点位置的对应关系是一对一的对应关系。当需要访问的节点数量为多个时,可以将各个节点的节点位置均与用户位置对应存储,则用户位置与节点位置的对应关系是一对多的对应关系。
在示例性实施例中,特征信息包括用户位置与节点位置的对应关系,根据特征信息调整预定规则,包括:响应于用户位置与节点位置的对应关系中用户位置与节点位置之间的距离大于距离阈值,确定与用户位置之间的距离不大于距离阈值的更新后的节点,基于更新后的节点调整预定规则,得到调整后的规则。能够看出,响应于用户位置与节点位置的对应关系中用户位置与节点位置之间的距离大于距离阈值,则认为特征信息满足条件,需要对预定规则进行调整。
在访问过程中,需要读写的时间序列数据会在用户设备与节点设备之间传输。因此,用户位置与节点位置之间的距离越远,则时间序列数据需要传输的距离也越远,从而可能导致路由次数的增加、降低了节点读写性能。因此,将需要读写的时间序列数据调整至与用户设备之间的距离不大于距离阈值的节点中进行存储,即调整至更新后的节点中进行存储。示例性地,在进行调整时,可以以时间线为单位进行调整,本实施例不对单位加以限定。以下以单位为时间线为例进行说明。
预定区组内,需要访问的时间线位于节点A中,而节点A位置与用户位置之间的距离超过距离阈值。此种情况下,从数据库包括的所有节点中选择与用户位置距离不超过距离阈值的节点,例如与用户位置距离最近的节点B,从而在新的区组内将该时间线对应的数据源对应的时间序列数据写入节点B中,而不再写入节点A中,则后续用户需要访问该时间线时仅需访问节点B即可。由此,缩短了数据的传输距离,提高了节点读写性能。
在示例性实施例中,特征信息包括负载不均衡度、查询扇出度和用户位置与节点位置的对应关系中的至少两种信息,则根据特征信息调整预定规则,包括如下的两种方式C1和C2。
方式C1:基于优先级别满足阈值的条件调整预定规则。
其中,本实施例针对各个所满足的条件分别设置优先级别,优先级别用于指示条件的优先程度。优先级别越高,则指示的优先程度越高。示例性地,基于优先级别满足阈值的条件调整预定规则,包括:基于优先级别最高的条件调整预定规则。
例如,各个条件的优先级别从高到低依次为:条件1--查询扇出度指示的节点的数量大于数量阈值,条件2--负载不均衡度指示的不均衡程度大于参考阈值,条件3--用户位置与节点位置之间的距离超过距离阈值。响应于条件1和条件2均满足,则基于优先级别最高的条件1调整预定规则,也即是按照情况C1中的说明调整预定规则,从而将分区键作为调整后的规则。
方式C2:综合所满足的各个条件调整预定规则。
此种情况下,对于所满足的各个条件分别确定子分区规则,再将子分区规则组合为调整后的规则。仍以方式C1中的举例为例,在条件1和条件2均满足的情况下,基于条件1确定出的子分区规则为分区键,基于条件2确定出的子分区规则为区边界值。因此,将分区键和区边界值均作为调整后的规则。
综上所述,本申请实施例基于特征信息调整预定规则,根据调整后的规则产生与用户针对数据表的访问习惯匹配的新的区组和/或区。本申请能够及时更新分区规则,避免了由于分区规则不恰当而导致异常情况的发生,使得区组和/或区与用户的访问习惯相匹配,保证了时序数据库的节点的读写性能。
以上介绍了本申请实施例提供的时序数据的分区调整方法,与上述方法对应,本申请实施例还提供了时序数据库的分区调整装置。图7是本申请实施例提供的一种时序数据库的分区调整装置的结构示意图,该装置可应用于图1所示的硬件设备。基于图7所示的如下多个模块,该图7所示的时序数据库的分区调整装置能够执行图2所示的方法实施例中的操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图7所示,本申请实施例提供的时序数据库的分区调整装置包括如下的模块。
获取模块701,用于获取至少一个用户针对时序数据库的数据表的访问请求的特征信息,其中,数据表按照预定规则分成多个区组,每个区组分成多个区,每个区组分别设置在不同时间段中,每个区分别设置在不同节点中,特征信息用于反映至少一个用户针对数据表的访问习惯。获取模块701所执行的步骤参见上文201中的说明,此处不再进行赘述。
调整模块702,用于根据特征信息调整预定规则,根据调整后的规则产生与访问习惯匹配的新的区组和/或新的区。调整模块702所执行的步骤参见上文202中的说明,此处不再进行赘述。
在一种可能的实现方式中,调整模块702,用于产生新的区组,在新的区组中根据调整后的规则产生与访问习惯匹配的新的区。
在一种可能的实现方式中,调整模块702,还用于在预定区组中确定参考时刻,预定区组为特征信息的获取时刻所在的区组,参考时刻为特征信息的获取时刻之前数据表中有数据写入的最大时刻;基于参考时刻与预定区组的结束时刻之间的时间间隔,确定新的区组的起始时刻。
在一种可能的实现方式中,调整模块702,用于响应于时间间隔不小于时间阈值,将参考时刻确定为新的区组的起始时刻;
调整模块702,还用于更新预定区组,更新后的区组的起始时刻为预定区组的起始时刻,更新后的区组的结束时刻为参考时刻。
在一种可能的实现方式中,新的区组的结束时刻为预定区组的结束时刻。
在一种可能的实现方式中,调整模块702,用于响应于时间间隔小于时间阈值,将预定区组的结束时刻确定为新的区组的起始时刻。
在一种可能的实现方式中,特征信息包括查询扇出度,查询扇出度用于指示处理访问请求所需要访问的节点的数量。
在一种可能的实现方式中,调整模块702,用于响应于查询扇出度指示的节点的数量大于数量阈值,基于解析访问请求得到的访问条件的使用频率确定分区键,基于分区键调整预定规则,得到调整后的规则。
在一种可能的实现方式中,获取模块701,用于解析访问请求得到访问条件,基于访问条件确定处理访问请求所需要访问的节点,将需要访问的节点的数量确定为查询扇出度。
在一种可能的实现方式中,特征信息包括负载不均衡度,负载不均衡度用于指示不同节点的负载的不均衡程度。
在一种可能的实现方式中,调整模块702,用于响应于负载不均衡度指示的不均衡程度大于参考阈值,基于不同节点的负载确定区边界值,基于区边界值调整预定规则,得到调整后的规则。
在一种可能的实现方式中,获取模块701,用于基于不同节点的数据量、时间线数量和时间线的访问频率中的至少一种,确定不同节点的负载;基于不同节点的负载确定负载不均衡度。
在一种可能的实现方式中,特征信息包括用户位置与节点位置的对应关系,用户位置为至少一个用户的位置,节点位置为处理访问请求所需要访问的节点的位置。
在一种可能的实现方式中,调整模块702,用于响应于用户位置与节点位置的对应关系中用户位置与节点位置之间的距离大于距离阈值,确定与用户位置之间的距离不大于距离阈值的更新后的节点,基于更新后的节点调整预定规则,得到调整后的规则。
在一种可能的实现方式中,获取模块701,用于解析访问请求得到访问条件,基于访问条件确定处理访问请求所需要访问的节点,基于需要访问的节点的位置和至少一个用户的位置确定用户位置与节点位置的对应关系。
在一种可能的实现方式中,特征信息包括查询扇出度、负载不均衡度以及用户位置与节点位置的对应关系中的至少一种信息。
综上所述,本申请实施例基于特征信息调整预定规则,根据调整后的规则产生与用户针对数据表的访问习惯匹配的新的区组和/或区。本申请能够及时更新分区规则,避免了由于分区规则不恰当而导致异常情况的发生,使得区组和/或区与用户的访问习惯相匹配,保证了时序数据库的节点的读写性能。
应理解的是,上述图7提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请提供了一种时序数据库的分区调整设备,该设备包括:通信接口和处理器,可选的,该通信设备还包括存储器。其中,该通信接口、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制通信接口接收信号,并控制通信接口发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行本申请所提供的任一种示例性的时序数据库的分区调整方法。
参见图8,图8示出了本申请一示例性的时序数据库的分区调整设备800的结构示意图。图8所示的设备800用于执行上述图2所示的时序数据库的分区调整方法所涉及的操作。该设备800例如是一台服务器、由多台服务器组成的服务器集群,或者是一个云计算服务中心等。
如图8所示,设备800包括至少一个处理器801、存储器803以及至少一个通信接口804。
处理器801例如是通用CPU、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、GPU、神经网络处理器(neural-network processingunits,NPU)、数据处理单元(Data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路或专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本申请公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,设备800还包括总线802。总线802用于在设备800的各组件之间传送信息。总线802可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线802可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
存储器803例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electricallyerasable programmable read-only Memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器803例如是独立存在,并通过总线802与处理器801相连接。存储器803也可以和处理器801集成在一起。
通信接口804使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(radio access network,RAN)或无线局域网(wirelesslocal area network,WLAN)等。通信接口804可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口804可以为以太(Ethernet)接口,如:快速以太(Fast Ethernet,FE)接口、千兆以太(Gigabit Ethernet,GE)接口,异步传输模式(Asynchronous TransferMode,ATM)接口,WLAN接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请的一些实施方式中,通信接口804可以用于设备800与其他设备进行通信。
在具体实现中,作为一些实施方式,处理器801可以包括一个或多个CPU,如图8中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一些实施方式,设备800可以包括多个处理器,如图8中所示的处理器801和处理器805。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施方式中,存储器803用于存储执行本申请方案的程序代码810,处理器801可以执行存储器803中存储的程序代码810。也即是,设备800可以通过处理器801以及存储器803中的程序代码810,来实现方法实施例提供的时序数据库的分区调整方法。程序代码810中可以包括一个或多个软件模块。可选地,处理器801自身也可以存储执行本申请方案的程序代码或指令。
在具体实施过程中,本申请的设备800可对应于用于执行上述方法的设备,设备800中的处理器801读取存储器803中的指令,使图8所示的设备800能够执行方法实施例中的全部或部分步骤。
设备800还可以对应于上述图7所示的装置,图7所示的装置中的每个功能模块采用设备800的软件实现。换句话说,图7所示的装置包括的功能模块为设备800的处理器801读取存储器803中存储的程序代码810后生成的。
其中,图2所示的时序数据库的分区调整方法的各步骤通过设备800的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请所公开的方法实施例的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例的步骤,为避免重复,这里不再详细描述。
在示例性实施例中,本实施例提供了一种时序数据库的分区调整设备,设备包括存储器及处理器;存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以使分区设备实现本申请的任一种示例性实施例所提供的时序数据库的分区调整方法。
在示例性实施例中,提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令,指令由处理器加载并执行以实现本申请的任一种示例性实施例所提供的时序数据库的分区调整方法。
在示例性实施例中,提供了一种计算机程序产品,计算机程序产品包括计算机程序或指令,计算机程序或指令被处理器执行,以使计算机实现本申请的任一种示例性实施例所提供时序数据库的分区调整方法。
在示例性实施例中,提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请的任一种示例性实施例所提供的时序数据库的分区调整方法。
在示例性实施例中,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行本申请的任一种示例性实施例所提供的时序数据库的分区调整方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (35)
1.一种时序数据库的分区调整方法,其特征在于,所述方法包括:
获取至少一个用户针对所述时序数据库的数据表的访问请求的特征信息,其中,所述数据表按照预定规则分成多个区组,每个区组分成多个区,每个区组分别设置在不同时间段中,每个区分别设置在不同节点中,所述特征信息用于反映所述至少一个用户针对所述数据表的访问习惯;
根据所述特征信息调整所述预定规则,根据调整后的规则产生与所述访问习惯匹配的新的区组和/或新的区。
2.根据权利要求1所述的方法,其特征在于,所述根据调整后的规则产生与所述访问习惯匹配的新的区组和/或新的区,包括:
产生新的区组,在所述新的区组中根据所述调整后的规则产生与所述访问习惯匹配的新的区。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在预定区组中确定参考时刻,所述预定区组为所述特征信息的获取时刻所在的区组,所述参考时刻为所述特征信息的获取时刻之前所述数据表中有数据写入的最大时刻;
基于所述参考时刻与所述预定区组的结束时刻之间的时间间隔,确定所述新的区组的起始时刻。
4.根据权利要求3所述的方法,其特征在于,所述基于所述参考时刻与所述预定区组的结束时刻之间的时间间隔,确定所述新的区组的起始时刻,包括:
响应于所述时间间隔不小于时间阈值,将所述参考时刻确定为新的区组的起始时刻;
所述方法还包括:
更新所述预定区组,更新后的区组的起始时刻为所述预定区组的起始时刻,所述更新后的区组的结束时刻为所述参考时刻。
5.根据权利要求4所述的方法,其特征在于,所述新的区组的结束时刻为所述预定区组的结束时刻。
6.根据权利要求3所述的方法,其特征在于,所述基于所述参考时刻与所述预定区组的结束时刻之间的时间间隔,确定所述新的区组的起始时刻,包括:
响应于所述时间间隔小于时间阈值,将所述预定区组的结束时刻确定为所述新的区组的起始时刻。
7.根据权利要求1-6任一所述的方法,其特征在于,所述特征信息包括查询扇出度,所述查询扇出度用于指示处理所述访问请求所需要访问的节点的数量。
8.根据权利要求7所述的方法,其特征在于,所述根据所述特征信息调整所述预定规则,包括:
响应于所述查询扇出度指示的节点的数量大于数量阈值,基于解析所述访问请求得到的访问条件的使用频率确定分区键,基于所述分区键调整所述预定规则,得到所述调整后的规则。
9.根据权利要求7或8所述的方法,其特征在于,所述获取至少一个用户针对所述时序数据库的数据表的访问请求的特征信息,包括:
解析所述访问请求得到访问条件,基于所述访问条件确定处理所述访问请求所需要访问的节点,将所述需要访问的节点的数量确定为所述查询扇出度。
10.根据权利要求1-6任一所述的方法,其特征在于,所述特征信息包括负载不均衡度,所述负载不均衡度用于指示所述不同节点的负载的不均衡程度。
11.根据权利要求10所述的方法,其特征在于,所述根据所述特征信息调整所述预定规则,包括:
响应于所述负载不均衡度指示的不均衡程度大于参考阈值,基于所述不同节点的负载确定区边界值,基于所述区边界值调整所述预定规则,得到所述调整后的规则。
12.根据权利要求10或11所述的方法,其特征在于,所述获取至少一个用户针对所述时序数据库的数据表的访问请求的特征信息,包括:
基于所述不同节点的数据量、时间线数量和时间线的访问频率中的至少一种,确定所述不同节点的负载;
基于所述不同节点的负载确定所述负载不均衡度。
13.根据权利要求1-6任一所述的方法,其特征在于,所述特征信息包括用户位置与节点位置的对应关系,所述用户位置为所述至少一个用户的位置,所述节点位置为处理所述访问请求所需要访问的节点的位置。
14.根据权利要求13所述的方法,其特征在于,所述根据所述特征信息调整所述预定规则,包括:
响应于所述用户位置与节点位置的对应关系中所述用户位置与所述节点位置之间的距离大于距离阈值,确定与所述用户位置之间的距离不大于所述距离阈值的更新后的节点,基于所述更新后的节点调整所述预定规则,得到所述调整后的规则。
15.根据权利要求13或14所述的方法,其特征在于,所述获取至少一个用户针对所述时序数据库的数据表的访问请求的特征信息,包括:
解析所述访问请求得到访问条件,基于所述访问条件确定处理所述访问请求所需要访问的节点,基于所述需要访问的节点的位置和所述至少一个用户的位置确定所述用户位置与节点位置的对应关系。
16.根据权利要求1-15任一所述的方法,其特征在于,所述特征信息包括查询扇出度、负载不均衡度以及用户位置与节点位置的对应关系中的至少一种信息。
17.一种时序数据库的分区调整装置,其特征在于,所述装置包括:
获取模块,用于获取至少一个用户针对所述时序数据库的数据表的访问请求的特征信息,其中,所述数据表按照预定规则分成多个区组,每个区组分成多个区,每个区组分别设置在不同时间段中,每个区分别设置在不同节点中,所述特征信息用于反映所述至少一个用户针对所述数据表的访问习惯;
调整模块,用于根据所述特征信息调整所述预定规则,根据调整后的规则产生与所述访问习惯匹配的新的区组和/或新的区。
18.根据权利要求17所述的装置,其特征在于,所述调整模块,用于产生新的区组,在所述新的区组中根据所述调整后的规则产生与所述访问习惯匹配的新的区。
19.根据权利要求18所述的装置,其特征在于,所述调整模块,还用于在预定区组中确定参考时刻,所述预定区组为所述特征信息的获取时刻所在的区组,所述参考时刻为所述特征信息的获取时刻之前所述数据表中有数据写入的最大时刻;基于所述参考时刻与所述预定区组的结束时刻之间的时间间隔,确定所述新的区组的起始时刻。
20.根据权利要求19所述的装置,其特征在于,所述调整模块,用于响应于所述时间间隔不小于时间阈值,将所述参考时刻确定为新的区组的起始时刻;
所述调整模块,还用于更新所述预定区组,更新后的区组的起始时刻为所述预定区组的起始时刻,所述更新后的区组的结束时刻为所述参考时刻。
21.根据权利要求20所述的装置,其特征在于,所述新的区组的结束时刻为所述预定区组的结束时刻。
22.根据权利要求19所述的装置,其特征在于,所述调整模块,用于响应于所述时间间隔小于时间阈值,将所述预定区组的结束时刻确定为所述新的区组的起始时刻。
23.根据权利要求17-22任一所述的装置,其特征在于,所述特征信息包括查询扇出度,所述查询扇出度用于指示处理所述访问请求所需要访问的节点的数量。
24.根据权利要求23所述的装置,其特征在于,所述调整模块,用于响应于所述查询扇出度指示的节点的数量大于数量阈值,基于解析所述访问请求得到的访问条件的使用频率确定分区键,基于所述分区键调整所述预定规则,得到所述调整后的规则。
25.根据权利要求23或24所述的装置,其特征在于,所述获取模块,用于解析所述访问请求得到访问条件,基于所述访问条件确定处理所述访问请求所需要访问的节点,将所述需要访问的节点的数量确定为所述查询扇出度。
26.根据权利要求17-22任一所述的装置,其特征在于,所述特征信息包括负载不均衡度,所述负载不均衡度用于指示所述不同节点的负载的不均衡程度。
27.根据权利要求26所述的装置,其特征在于,所述调整模块,用于响应于所述负载不均衡度指示的不均衡程度大于参考阈值,基于所述不同节点的负载确定区边界值,基于所述区边界值调整所述预定规则,得到所述调整后的规则。
28.根据权利要求26或27所述的装置,其特征在于,所述获取模块,用于基于所述不同节点的数据量、时间线数量和时间线的访问频率中的至少一种,确定所述不同节点的负载;基于所述不同节点的负载确定所述负载不均衡度。
29.根据权利要求17-22任一所述的装置,其特征在于,所述特征信息包括用户位置与节点位置的对应关系,所述用户位置为所述至少一个用户的位置,所述节点位置为处理所述访问请求所需要访问的节点的位置。
30.根据权利要求29所述的装置,其特征在于,所述调整模块,用于响应于所述用户位置与节点位置的对应关系中所述用户位置与所述节点位置之间的距离大于距离阈值,确定与所述用户位置之间的距离不大于所述距离阈值的更新后的节点,基于所述更新后的节点调整所述预定规则,得到所述调整后的规则。
31.根据权利要求29或30所述的装置,其特征在于,所述获取模块,用于解析所述访问请求得到访问条件,基于所述访问条件确定处理所述访问请求所需要访问的节点,基于所述需要访问的节点的位置和所述至少一个用户的位置确定所述用户位置与节点位置的对应关系。
32.根据权利要求17-31任一所述的装置,其特征在于,所述特征信息包括查询扇出度、负载不均衡度以及用户位置与节点位置的对应关系中的至少一种信息。
33.一种时序数据库的分区调整设备,其特征在于,所述设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使所述分区设备实现权利要求1-16中任一所述的时序数据库的分区调整方法。
34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1-16中任一所述的时序数据库的分区调整方法。
35.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或指令,所述计算机程序或指令被处理器执行,以使计算机实现权利要求1-16任一所述的时序数据库的分区调整方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/087412 WO2023279801A1 (zh) | 2021-07-08 | 2022-04-18 | 时序数据库的分区调整方法、装置、设备及可读存储介质 |
EP22836560.7A EP4357931A4 (en) | 2021-07-08 | 2022-04-18 | METHOD AND DEVICE FOR SCHEDULE ADJUSTMENT FOR TIME SERIES DATABASE, DEVICE AND READABLE STORAGE MEDIUM |
US18/405,617 US20240143626A1 (en) | 2021-07-08 | 2024-01-05 | Shard Adjustment Method, Apparatus, and Device for Time Series Database, and Readable Storage Medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021107708919 | 2021-07-08 | ||
CN202110770891 | 2021-07-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599782A true CN115599782A (zh) | 2023-01-13 |
Family
ID=84841867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111278133.1A Pending CN115599782A (zh) | 2021-07-08 | 2021-10-30 | 时序数据库的分区调整方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599782A (zh) |
-
2021
- 2021-10-30 CN CN202111278133.1A patent/CN115599782A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102522274B1 (ko) | 사용자 그룹화 방법 및 장치, 컴퓨터 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램 | |
CN109947668B (zh) | 存储数据的方法和装置 | |
CN103324713B (zh) | 多级服务器中的数据处理方法、装置和数据处理系统 | |
US20140059000A1 (en) | Computer system and parallel distributed processing method | |
US20240143626A1 (en) | Shard Adjustment Method, Apparatus, and Device for Time Series Database, and Readable Storage Medium | |
CN114356921A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN105468619B (zh) | 用于数据库连接池的资源分配方法和装置 | |
CN113515545A (zh) | 数据查询方法、装置、系统、电子设备以及存储介质 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
US20050257012A1 (en) | Storage device flow control | |
GB2538586A (en) | Index tree search method and computer | |
CN113760640A (zh) | 监控日志处理方法、装置、设备及存储介质 | |
CN112306383B (zh) | 执行作业的方法、计算节点、管理节点及计算设备 | |
CN111522870A (zh) | 数据库访问方法、中间件和可读存储介质 | |
CN113127477A (zh) | 访问数据库的方法、装置、计算机设备和存储介质 | |
CN114442952A (zh) | 冷数据的迁移方法、装置、存储介质及电子装置 | |
CN115599782A (zh) | 时序数据库的分区调整方法、装置、设备及可读存储介质 | |
CN110209645A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
EP3599547B1 (en) | Elastic storage volume type selection and optimization engine for public cloud environments | |
CN114115696A (zh) | 内存重删方法、装置及存储介质 | |
CN110908999A (zh) | 数据采集方式的确定方法及装置、存储介质、电子装置 | |
JPWO2016067370A1 (ja) | 情報処理装置、方法およびプログラム | |
US11947822B2 (en) | Maintaining a record data structure using page metadata of a bookkeeping page | |
US12056129B2 (en) | Computer system and query processing method | |
CN117556452B (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 |