一种ClickHouse集群的数据管理方法及相关装置与流程
未命名
09-17
阅读:68
评论:0

技术领域:
:1.本技术涉及数据管理
技术领域:
:,尤其涉及一种clickhouse集群的数据管理方法及相关装置。
背景技术:
::2.随着虚拟化技术的快速发展,可将物理机虚拟出多个拥有独立操作系统的云主机,以提高物理机的资源使用率,其中,每个云主机的数据处理方法都与物理机的数据处理方法类似或者相同。3.然而,一旦物理机出现故障不可恢复,将导致虚拟化的多个云主机存储的业务数据丢失不可恢复,故而,为了避免此类问题的发生,通常采用多副本的方法,来提高云主机功能的高可用性。4.其中,参阅图1所示,clickhouse基于分片+副本的大规模并行处理(massivelyparallelprocessing,mmp)结构和异步的多主(无中心)复制技术,在数据被写入clickhouse集群中的任何一个可用副本后,便会在后台将数据分发给其他副本,以保证在不同副本上保持相同的数据。5.并且,针对clickhouse集群中单个分片的多个副本部署在同一物理机的各个云主机上,物理机一旦出现故障,该分片的多个副本数据便会丢失,需要对该分片的多个副本数据进行恢复的问题,相关技术中,通常调用基础设施即服务(infrastructureasaservice,iaas)的接口拉起一个新的云主机,安装与相应云主机相同的全部软件且拷贝云主机的全部元数据,以使得在重启clickhouse集群之后,便可自动同步该分片多个副本的数据,直至多个副本数据一致为止,即完成对多个副本数据的恢复。6.但是,采用上述clickhouse集群的数据管理方式,会因调用iaas的接口只能串行操作,无法并行处理,加上数据同步会受数据量影响,从而导致需要花费大量的时间,才能解决部署单个分片的多个副本的物理机出现故障,引起多个副本数据丢失的问题,即无法保证及时地恢复单个分片的多个副本数据。7.因此,采用上述方式,对clickhouse集群进行数据管理的效率较低。技术实现要素:8.本技术实施例提供了一种clickhouse集群的数据管理方法及相关装置,用以避免部署单个分片的多个副本的物理机出现故障,引起多个副本数据丢失的问题,以及提高clickhouse集群的数据管理的效率。9.第一方面,本技术实施例提供了一种clickhouse集群的数据管理方法。所述方法包括:10.获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;其中,各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的;11.基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息;12.基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改;13.在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。14.第二方面,本技术实施例还提供了一种clickhouse集群的数据管理装置,所述装置包括:15.获取模块,用于获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;其中,各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的;16.配置模块,用于基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息;17.修改模块,用于基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改;18.存储模块,用于在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。19.在一种可选的实施例中,在从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群时,所述获取模块具体用于:20.针对物理机群包含的各个物理机,分别执行以下操作:21.基于第一物理机对应的至少两个云主机的初始分片副本信息,获得至少两个初始分片副本信息各自归属的分片类型;其中,第一物理机为各个物理机中任一物理机;22.若至少两个初始分片副本信息中,存在相同分片类型的初始分片副本信息,则确定第一物理机满足分片副本同机条件,并将第一物理机作为子物理机群中的一个物理机。23.在一种可选的实施例中,在基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息时,所述配置模块具体用于:24.基于多个云主机的初始分片副本信息,获得各种分片及其各自对应的副本数量;25.针对各种分片,分别执行以下操作:26.基于一种分片的副本数量,从子物理机群中,筛选出满足副本数量的多个物理机;27.分别将一种分片对应的任一初始分片副本信息,作为多个物理机各自对应的任一云主机的目标分片副本信息。28.在一种可选的实施例中,在基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改时,所述修改模块具体用于:29.针对多个目标分片副本信息,分别执行以下操作:30.对一个目标分片副本信息进行解析,获得目标云主机的目标主机标识,以及目标云主机对应的目标分片副本标识;其中,目标分片副本标识为相应云主机的初始分片副本标识;31.基于目标主机标识和目标分片副本标识,对相应云主机的初始分片副本信息进行修改。32.在一种可选的实施例中,在基于目标主机标识和目标分片副本标识,对相应云主机的初始分片副本信息进行修改时,所述修改模块具体用于:33.获取初始分片副本信息所属的分片副本逻辑关系;其中,分片副本逻辑关系包含:相应云主机所属物理机,对应的各个云主机的主机标识;34.将分片副本逻辑关系中,与目标分片副本标识关联的初始主机标识修改为目标主机标识。35.在一种可选的实施例中,在基于目标主机标识和目标分片副本标识,对相应云主机的初始分片副本信息进行修改之后,所述修改模块还用于:36.对目标云主机的初始分片副本信息进行解析,获得目标云主机的初始分片副本标识;37.将目标云主机对应的初始分片副本标识修改为目标分片副本标识。38.在一种可选的实施例中,在基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改之前,所述修改模块还用于:39.对多个云主机各自存储的初始副本数据进行复制,获得多个初始副本数据各自对应的目标副本数据;40.在确定成功获得多个目标副本数据时,清除多个初始副本数据,并按照预设的数据检查周期,检查多个云主机,直至完全清除多个初始副本数据为止。41.第三方面,提出了一种电子设备,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述第一方面所述的clickhouse集群的数据管理方法的步骤。42.第四方面,提出了一种计算机可读存储介质,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行上述第一方面所述的clickhouse集群的数据管理方法的步骤。43.第五方面,提供了一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行如第一方面所述的clickhouse集群的数据管理方法步骤。44.本技术有益效果如下:45.在本技术实施例所提供的clickhouse集群的数据管理方法中,获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;其中,各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的;接着,基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息;进一步地,基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改;最终,在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。46.采用这种方式,由于从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群,可以找到部署单个分片的多个副本的物理机,并且,根据预设的分片副本非同机配置规则,对多个云主机的分片副本信息进行重新配置,有效地避免了因部署单个分片的多个副本的物理机出现故障,引起多个副本数据丢失的问题;此外,一旦确定将多个云主机的初始分片副本信息修改为各自对应的目标分片副本信息,便可在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据,也避免了相关技术中,会因调用iaas的接口只能串行操作,无法并行处理,加上数据同步会受数据量影响,从而导致需要花费大量时间的技术弊端,故而,极大地提高了clickhouse集群的数据管理的效率。47.此外,本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明48.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:49.图1示例性示出了本技术实施例提供的一种具备clickhouse服务的负载均衡器的应用场景示意图;50.图2示例性示出了本技术实施例适用的一种系统架构的一个可选示意图;51.图3示例性示出了本技术实施例提供的一种clickhouse集群的结构示意图;52.图4示例性示出了本技术实施例提供的一种clickhouse集群的数据管理的实施流程示意图;53.图5示例性示出了本技术实施例提供的一种基于图4的逻辑示意图;54.图6示例性示出了本技术实施例提供的一种物理机对应的副本数据种类的示意图;55.图7示例性示出了本技术实施例提供的一种获得目标分片副本信息的方法实施流程示意图;56.图8示例性示出了本技术实施例提供的一种备份和清除数据的逻辑示意图;57.图9示例性示出了本技术实施例提供的一种修改初始分片副本信息的方法实施流程示意图;58.图10示例性示出了本技术实施例提供的一种修改初始分片副本信息的具体场景示意图;59.图11示例性示出了本技术实施例提供的一种基于图4的具体场景示意图;60.图12示例性示出了本技术实施例提供的一种服务器的总体架构示意图;61.图13示例性示出了本技术实施例提供的一种基于图12的数据处理流程示意图;62.图14示例性示出了本技术实施例提供的一种clickhouse集群的数据管理装置的结构示意图;63.图15示例性示出了本技术实施例提供的一种电子设备的结构示意图。具体实施方式64.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。65.需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。66.此外,本技术技术方案中,对数据的采集、传播、使用等,均符合国家相关法律法规要求。67.为便于本领域技术人员理解,首先对本技术实施例涉及的部分名词及术语进行简要地阐述、说明,如下所述:68.(1)clickhouse:是一个用于联机分析处理(onlineanalyticalprocessing,olap)的列式数据库管理系统(databasemanagementsystem,dbms)。69.(2)分片(shard):将海量数据分散存储到多个节点,每个节点只存储和处理海量数据(即整体数据)的一部分,单副本时,一个分片对应一个节点,多副本时,一个分片对应多个节点。70.(3)副本(replica):为了异常情况下,保证数据的安全性和服务的高可用,将数据冗余存储在多个节点,多个节点的数据互为副本。71.(4)物理机:是相对于虚拟机(云主机)而言的,对实体计算机的称呼,即真实存在的实体,比如,机房里面的物理服务器,也可以提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。72.(5)云主机:是虚拟存在的虚机,需要说明的是,一台物理机可以虚拟化为多台云主机。73.(6)zookeeper:是一个分布式的以及开放源码的分布式应用程序协调服务,是为分布式应用提供一致性服务的软件,提供的功能包括但不限于:配置维护、名字服务、分布式同步、组服务;需要说明的是,在本技术实施例中,相同分片下多副本可通过zookeeper分布式协调服务进行同步数据。74.还需说明的是,zookeeper的数据节点可以视为树状结构或者目录,树中的各节点被称为znode(即zookeepernode),而且,一个znode可以有多个子节点,故而,可以说zookeeper中的所有存储的数据是由znode组成的,并以key/value形式存储数据。75.(7)数据定义语言(datadefinitionlanguage,ddl):用来定义数据库对象:库、表、列等,即主要用来操作数据库和创建数据表。76.(8)结构化查询语言(structuredquerylanguage,sql):是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用sql语言提高计算机应用系统的工作质量与效率。77.(9)回滚(rollback):指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为,其中,回滚包括程序回滚和数据回滚等类型。78.(10)大数据云:依托云计算技术,可将服务能力云化提供给消费者,从而实现大数据的处理、储存与计算。79.进一步的,基于上述名词及相关术语解释,下面对本技术实施例的设计思想进行简要介绍:80.随着虚拟化技术的普及,一台物理机可以虚拟出多个独立主机的部分,即云主机,故而,每个物理机都能够实现单机多用户;并且,每个部分(即云主机)都可以做单独的操作系统,管理方法同物理机类似,极大地提高了物理机的资源使用率。81.然而,一旦物理机出现故障不可修复,这些虚拟化的云主机存储的业务数据将丢失不可恢复,故而,为了避免这个问题,大部分的应用解决方案都是采用多副本,从而保证功能高可用。82.因此,由于clickhouse可用于大数据云的多维分析场景,具备高效灵活查询的特征,并且,也是mpp架构,故而,通过基于分片+副本的结构即可实现功能的线性扩展和高可靠;此外,鉴于clickhouse使用异步的多主复制技术,当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。83.在大多数情况下,单个分片的多个副本不会出现全部故障,故而,出现故障的副本能在故障修复后自动恢复数据,以确保业务不会受影响;但是,在少数情况下,单个分片的多个副本可能全部出现故障,从而导致出现故障的副本无法在故障修复后自动恢复数据,并对业务的影响范围较大,进而只能进行手动恢复数据,故而,需要花费大量的时间(即时间周期长)。84.相关技术中,针对当clickhouse集群中单个分片的多各副本部署在同一台宿主机的云主机上,一旦宿主机所在的物理机出现故障,这个分片的数据将受影响,需要手动修复的问题,使用替换虚机的方式,使得多副本不在同台物理机,具体包括:调用iaas层接口拉起新的一台云主机,安装全部软件,拷贝元数据,重新启动clickhouse自动同步其他副本的数据,直至副本数据一致。85.不难发现,采样上述方式,会因调用iaas的接口只能串行操作,无法并行处理,加上数据同步会受数据量影响,从而导致需要花费大量的时间,才能解决部署单个分片的多个副本的物理机出现故障,引起多个副本数据丢失(即多副本同宿主机)的问题,即无法保证及时地恢复单个分片的多个副本数据。86.有鉴于此,本技术实施例中,为了解决多副本同宿主机问题,以及提高clickhouse集群的数据管理的效率,采用了一种支持并行同步数据,能在分钟级完成多副本切换至不同宿主机,从而保证分片下的副本数据高可用的clickhouse集群的数据管理方法,具体包括:获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群,再基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息,从而基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改,进而在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。87.特别地,以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术实施例及实施例中的特征可以相互组合。88.参阅图2所示,其为本技术实施例适用的一种系统架构示意图,该系统架构包括:clickhouse集群201和服务器202。clickhouse集群201和服务器202之间可通过通信网络进行信息交互,其中,通信网络采用的通信方式可包括:无线通信方式和有线通信方式。89.示例性的,clickhouse集群201可通过蜂窝移动通信技术接入网络,与服务器202进行通信,其中,所述蜂窝移动通信技术,比如,包括第五代移动通信(5thgenerationmobilenetworks,5g)技术。90.可选的,clickhouse集群201可通过短距离无线通信方式接入网络,与服务器202进行通信,其中,所述短距离无线通信方式,比如,包括无线保真(wirelessfidelity,wi-fi)技术。91.本技术实施例对上述系统架构中涉及的通信设备的数量不做任何限制,例如,可以更多服务器,或者没有服务器,或者还包括其他网络设备,如图2所示,仅以clickhouse集群201和服务器202为例进行描述,下面对上述各设备及其各自的功能进行简要介绍。92.参阅图3所示,clickhouse集群201包括:多个物理机301和多个云主机302,其中,每个物理机301都可以虚拟化为或虚拟出多个云主机302,以及每个云主机302部署了相同的clickhouse服务,即各个云主机302具备相同的clickhouse服务能力,并且,在本技术实施例中,每个云主机302均可被用于存储一个分片的副本数据,故可知,每一个分片均对应一个物理机,每一个分片的副本数据均对应一个云主机302。93.服务器202可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdeliverynetwork,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。94.值得提出的是,在本技术实施例中,服务器202用于获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;接着,基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息;进一步地,基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改;最终,在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。95.下面结合上述的系统架构,以及参考附图来描述本技术示例性实施方式提供的clickhouse集群的数据管理方法,需要注意的是,上述系统架构仅为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。96.参阅图4所示,其为本技术实施例提供的一种clickhouse集群的数据管理的实施流程示意图,假定执行主体为服务器,该方法的具体实施流程如下:97.s401:获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群。98.其中,各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的,每个初始分片副本信息表征:相应云主机的分片副本分配情况,即相应云主机存储了哪一个分片的哪一个副本数据。99.并且,上述预设的分片副本同机条件具体可为:同一个分片的所有副本数据均被存储在同一个物理机对应的多个云主机上。100.还需说明的是,clickhouse的元数据包含metrika.xml和macros.xml;其中,metrika.xml是一种副配置文件,用来服务于clickhouse集群搭建的,主要定义的是集群信息、分片信息、副本信息等,即关于zookeeper、shard以及replica的配置,而macros.xml定义的是每台云主机部署的clickhouse服务是属于哪个分片的哪个副本角色,并且,相同分片下多副本通过zookeeper分布式协调服务进行同步数据;此外,在本技术实施例中,metrika.xml中的内容可被称之为分片副本逻辑关系,macros.xml中的内容可被称之为分片副本标识,故而,分片副本标识表征:相应云主机存储的副本数据属于哪个分片的哪个副本角色。101.s402:基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息。102.具体的,在执行步骤s402时,服务器在获得满足上述预设的分片副本同机条件的子物理机群之后,便可基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,对多个初始分片副本信息进行重组,从而获得重组后的多个初始分片副本信息,即获得多个云主机的目标分片副本信息,以使得同一物理机对应的所有云主机,各自存储的副本数据对应的分片不同。103.s403:基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改。104.具体的,在执行步骤s403时,服务获得多个目标分片副本信息之后,便可分别对多个云主机的初始分片副本信息进行修改,即根据获得的目标分片副本信息所包含的内容修改初始分片副本信息的内容。105.s404:在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。106.显而易见,基于上述s401~s404的方法步骤,参阅图5所示,服务器从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群,可以找到部署单个分片的多个副本的物理机,并且,根据预设的分片副本非同机配置规则,对多个云主机的分片副本信息进行重新配置,有效地避免了因部署单个分片的多个副本的物理机出现故障,引起多个副本数据丢失的问题;此外,一旦确定将多个云主机的初始分片副本信息修改为各自对应的目标分片副本信息,便可在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据,也避免了相关技术中,会因调用iaas的接口只能串行操作,无法并行处理,加上数据同步会受数据量影响,从而导致需要花费大量时间的技术弊端,故而,极大地提高了clickhouse集群的数据管理的效率。107.在一种可选的实现方式中,在执行步骤s401时,服务器可以针对物理机群包含的各个物理机,分别执行以下操作:基于第一物理机对应的至少两个云主机的初始分片副本信息,获得至少两个初始分片副本信息各自归属的分片类型,其中,第一物理机为各个物理机中任一物理机;若至少两个初始分片副本信息中,存在相同分片类型的初始分片副本信息,则确定第一物理机满足分片副本同机条件,并将第一物理机作为子物理机群中的一个物理机;反之,若至少两个初始分片副本信息中,不存在相同分片类型的初始分片副本信息,则确定第一物理机不满足分片副本同机条件,并不将第一物理机作为子物理机群中的一个物理机;这样,可以完成clickhouse集群中,多副本同宿主机的物理机的选取,以便进行后续的clickhouse集群的数据管理方法,以解决clickhouse集群中多副本同宿主机的问题。108.需要说明的是,满足预设的分片副本同机条件的物理机,对应的多个云主机可以仅存储的是一种分片的所有副本数据,可以在存储完一种分片的所有副本数据之后,若还有其他的云主机未进行副本数据存储,则可以存储另一种分片的副本数据,故而,参阅图6所示,对于一个物理机对应的多个云主机而言,可能存储一种或多种分片的副本数据。109.在一种可选的实现方式中,在执行步骤s402时,服务器可先基于多个云主机的初始分片副本信息,获得各种分片及其各自对应的副本数量,再针对各种分片,分别执行以下操作,以获得多个云主机各自的目标分片副本信息,参阅图7所示,具体实施流程如下:110.s701:基于一种分片的副本数量,从子物理机群中,筛选出满足副本数量的多个物理机。111.具体的,在执行步骤s701时,服务器在确定子物理集群中所有物理机对应的各种分片及其各自的副本数量之后,便可从子物理机群中,筛选出满足上述一种分片的副本数量的多个物理机,即选择出与上述一种分片的副本数量的一多种分片,以便能够实现对初始分片副本信息的分片副本非同机配置。112.示例性的,假定上述一种分片(比如,shard1)的副本数量为3,上述子物理机群包含4个物理机,并且,上述4个物理机及其各自对应的分片和副本数量,如表1所示:113.表1[0114][0115]故而,基于上述表格中物理机及其各自对应的分片和副本数量,服务器可从上述4个物理机中,筛选出与上述分片shard1的副本数量3相同的多个物理机,即phy.mach.1、phy.mach.3和phy.mach.4。[0116]还需说明的是,基于上述表格也不难看出一个物理机对应的多个云主机不仅可能仅存储一种分片的副本数据,比如,物理机phy.mach.1,还可以存储多种分片的副本数据,比如,物理机phy.mach.4。[0117]s702:分别将一种分片对应的任一初始分片副本信息,作为多个物理机各自对应的任一云主机的目标分片副本信息。[0118]具体的,在执行步骤s702时,服务器在筛选出多个物理机之后,便可分别将一种分片对应的任一初始分片副本信息(即一种分片所对应的多个云主机中任一云主机的初始分片副本信息),作为多个物理机各自对应的任一云主机的目标分片副本信息,以实现对初始分片副本信息的分片副本非同机配置。[0119]示例性的,仍以上述表1的4个物理机为例,服务器在筛选出满足副本数量的物理机phy.mach.1、phy.mach.3和phy.mach.4之后,便可分别将分片shard1对应的任一初始分片副本信息(比如,ori.sha-rep.me1.1、ori.sha-rep.me1.2和ori.sha-rep.me1.3),作为多个物理机各自对应的任一云主机的目标分片副本信息,以使得物理机phy.mach.1、phy.mach.3和phy.mach.4,各自对应的多个云主机中,均有一个云主机被配置了目标分片副本信息;需要说明的是,由于分片shard1的副本数量为3,可知,相应的云主机数量也为3,故而,shard1对应3个初始分片副本信息。[0120]还需说明的是,由于分片shard1本身对应一个物理机,故而,在上述筛选物理机的过程中,可以直接将分片shard1本身对应的物理机,作为满足副本数量的多个物理机中的一个物理机,也可以选择除去分片shard1本身对应的物理机,且满足副本数量的多个物理机。[0121]在一种可选的实现方式中,参阅图8所示,在执行步骤s403之前,服务器可以先对多个云主机各自存储的初始副本数据进行复制,获得多个初始副本数据各自对应的目标副本数据,以完成对副本数据的备份,从而在确定成功获得多个目标副本数据时,便清除多个初始副本数据,并按照预设的数据检查周期,检查多个云主机,直至完全清除多个初始副本数据为止,以便后续可以基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改。[0122]故而,在一种可选的实现方式中,在执行步骤s403时,服务器在获得多个目标分片副本信息以及清除多个初始副本数据之后,便可针对多个目标分片副本信息,分别执行以下操作,来实现对多个云主机的初始分片副本信息进行修改,参阅图9所示,该方法的具体实施流程如下:[0123]s901:对一个目标分片副本信息进行解析,获得目标云主机的目标主机标识,以及目标云主机对应的目标分片副本标识。[0124]其中,目标分片副本标识为相应云主机的初始分片副本标识。[0125]示例性的,在执行步骤s901时,服务器对上述一个目标分片副本信息进行解析,便可从目标分片副本信息中,获得目标云主机的目标主机标识,比如,目标主机标识为:“n110nidm1ck0002”,以及目标云主机对应的目标分片副本标识为:“s01-r02”,即表征第1个分片第2个副本(数据)。[0126]s902:基于目标主机标识和目标分片副本标识,对相应云主机的初始分片副本信息进行修改。[0127]在一种可选的实现方式中,在执行步骤s902时,服务器在获得目标主机标识和目标分片副本标识之后,便可进一步地获取初始分片副本信息所属的分片副本逻辑关系,其中,分片副本逻辑关系包含:相应云主机所属物理机,对应的各个云主机的主机标识,再将分片副本逻辑关系中,与目标分片副本标识关联的初始主机标识修改为目标主机标识。[0128]可选的,服务器在基于目标主机标识和所述目标分片副本标识,对相应云主机的初始分片副本信息进行修改之后,还可以对目标云主机的初始分片副本信息进行解析,获得目标云主机的初始分片副本标识,从而将目标云主机对应的初始分片副本标识修改为目标分片副本标识。[0129]示例性的,参阅图10所示,服务器可以先更新metrika.xml文件中的分片副本逻辑关系(即修改主机标识),再把“n110nidm1ck0002”虚机上的macros.xml文件从“s01-r02”改为“s02-r01”(即修改分片副本标识),如,new_macros.xml文本框;同理,可以把“n110nidm1ck0003”虚机上的macros.xml文件从“s02-r01”改为“s01-r02”,最后,便可通过重启clickhouse服务,即可自动完成分片副本的角色对调和后续的副本数据对换。[0130]需要说明的是,如图10所示,每台云主机部署了相同的clickhouse服务,并通过macros.xml的《macros》《/macros》标签对定义分片副本标识(即副本唯一标识),以及通过metrika.xml的《shard》《/shard》标签对来定义云主机所属哪个分片哪个副本,即相应云主机的初始分片副本信息所属的分片副本逻辑关系。[0131]进一步地,参阅图11所示,基于上述的clickhouse集群的数据管理方法,服务器可以实现对副本落在同物理机上的问题进行改善,即有效地解决同宿主机的问题,如图11所示,clickhouse集群中一共有4台存在上述问题的物理机(图11中每一种填充方式对应一种物理机),其中,每台物理机虚拟化成2台云主机,每台云主机部署了相同的clickhouse服务。[0132]可选的,参阅图12所示,其为本技术实施例提供的一种服务器的总体架构示意图,该总体架构包括了执行上述clickhouse集群的数据管理方法的各个处理模块,具体包括:数据备份模块1201、ddl导出模块1202、无效副本清理模块1203、删除库模块1204、服务启停模块1205、修改分片副本模块1206、物理删除模块1207和ddl导入模块1208,其中,各处理模块功能如下:[0133]数据备份模块1201,用于完成数据备份,以确保数据可以回滚,是可选的,属于快捷装置的非必要操作,在本技术实施例中,基于多轮验证以及测试,一旦执行删除库和物理删除模块时,可以指定旧分片、副本执行提供的数据管理方法即可实现数据恢复,当然,在数据盘空间有限的情况下可以不执行。[0134]ddl导出模块1202,用于导出数据库的创建语句、每个库的数据表创建语句以及拼接出无效副本的清除语句,是ddl导入模块1208的前序步骤。[0135]无效副本清理模块1203,用于基于ddl导出模块1202生成的无效副本清除语句对无效副本进行清除,但是必须在删除库模块1204执行之后,才能执行相关的数据清除操作。[0136]删除库模块1204,用于生成所有库的drop语句(用于删除数据库中现有的表、过程或视图,或者删除表中现有的索引)并执行,在删库之前,会校验“max_table_size_to_drop”和“max_partition_size_to_drop”这两个参数,以确保能删除较大数据存储量(比如,大于50g)的库。[0137]另外,由于clickhouse集群的删除库内部是异步的操作,故而,在删除执行过程中,会不断校验异步删除是否完成,直至完成才推出循环校验逻辑,因此,在异步删除结束会,则会调用无效副本清理模块1203对无效副本进行清除,确保zookeeper集群不存在无效的znode信息。[0138]服务启停模块1205,用于将clickhouse集群中,各个云主机的clickhouse服务启动或停止。[0139]修改分片副本模块1206,用于修改macros.xml文件的《shard》标签和《replica》标签的内容,从而完成了分片副本(角色)对调的对换工作。[0140]物理删除模块1207,用于对残留的元数据(metadata)文件、数据(data)文件进行操作系统层面的删除操作,确保新恢复的数据是全新和完整的。[0141]ddl导入模块1208,用于使用ddl导出模块1202生成的sql文件,并导入到clickhouse服务,完成元数据的恢复。[0142]进一步的,基于上述提供的服务器的总体架构,可以实现在分钟级完成对整个clickhouse集群的多副本同母机问题的整改工作,参阅图13所示,数据处理流程具体如下:[0143]s1301:修改metrika.xml文件的分片和副本的逻辑对应关系。[0144]示例性的,在执行步骤s1301时,服务器可修改metrika.xml文件,并下发到相应的多个云主机,并且,调用服务启停模块,对clickhouse集群进行重启,例如,输入参数:restart。[0145]s1302:数据备份。[0146]示例性的,在执行步骤s1302时,服务器可以通过数据备份模块执行数据备份,即备份物理删除模块要删除的文件(即目标副本数据),可选的,输入参数:是否备份标识(y:备份,n:不备份)。[0147]s1303:导出ddl。[0148]示例性的,在执行步骤s1303时,服务器可以通过导出ddl模块:首先导出创建库的ddl至create_databases_${version}.sql;其次,导出创建表的ddl至create_tables_${version}.sql;最后,导出清除已失效副本的ddl至system_drop_replica_${version}.sql。[0149]可选的,由于数据表和清除副本两份sql文件存在特殊字符,故还需要执行去除操作;同时,还需要获取macros.xml文件中旧分片副本的内容,对清除副本这份sql进行占位符替换,从而使得该sql可以执行。[0150]s1304:删除库。[0151]s1305:是否异步删除结束,若是,则转入s1304;若否,则转入s1307,并经由s1307再次转入s1305。[0152]s1306:清除无效副本。[0153]s1307:睡眠n秒。[0154]示例性的,n通常为秒级,比如,睡眠1秒。[0155]显然,基于上述s1304~s1307的方法步骤,服务器可以通过删除库模块导出删除库的ddl至drop_databases_${version}.sql,然后,去执行删除库操作;其中,由于数据库删除在clickhouse是异步执行,故需要在设定时间(如,480s)后,不断的去检测${ch_path}/metadata_dropped下是否存在文件,如果存在,则继续等待异步删除,否则,说明该删除库操作已经完成。[0156]并且,上述步骤完成后,便可调用无效副本清理模块,可选的,输入参数:zkpath,其中,zkpath提供了创建节点、查询节点以及删除节点等应用程序接口(applicationprogramminginterface,api),故而,在模块调用完成之后,便可执行步骤s1303生成的system_drop_replica_${version}.sql来清除无效副本,至此删除库操作才全部完成。[0157]还需说明的是,采用这种方式,有效地解决了一旦漏处理可能会导致集群重启报错或者切换之后集群不可用等问题,也避免了不得不进行元数据的拷贝和替换新的云主机以及服务安装,再通过操作系统层面的数据拷贝,把旧的云主机的元数据拷贝至新的云主机上,从而导致操作效率低下,数据量越大,耗时更长地技术弊端。[0158]s1308:停止服务进程。[0159]示例性的,在执行步骤s1308时,服务器通过调用服务启停模块,可选的,输入参数:stop,停止clickhouse服务进程。[0160]s1309:修改分片和副本。[0161]示例性的,在执行步骤s1309时,服务器执行修改分片副本模块,可选的,输入参数:new_shard,new_replica。即把该分片和副本对调为新的分片和新的副本。[0162]s1310:物理删除无用数据。[0163]示例性的,在执行步骤s1310时,服务器对指定目录下的元数据(metadata)、数据(data)和数据仓库(store)三个子目录内的文件进行物理删除,目的是清理无用数据(即清除初始副本数据)。[0164]s1311:启动服务进程。[0165]示例性的,在执行步骤s1311时,服务器通过调用服务启停模块,可选的,输入参数:start,启动clickhouse服务进程[0166]s1312:等待m秒,导入ddl。[0167]示例性的,在执行步骤s1312时,服务器执行启动clickhouse服务进程之后,需要等待m秒,其中,m通常为秒级,比如,等待5秒,主要是因为clickhouse服务重启之后会加载数据,加载完之后服务才正常工作。[0168]故而,在等待结束之后,便调用ddl导入模块,按顺序执行s1303生成的create_databases_${version}.sql和create_tables_${version}.sql两份文件,执行完成后等待数据恢复(即恢复副本数据);并且,在数据恢复完之后就可以看到切换的副本数据。[0169]需要说明的是,基于上述的s1301~s1312的方法步骤可知:步骤s1301是辅助步骤,该步骤无需重复做,只要根据事先规划好的副本对调要求完成新分片副本之间的逻辑关系即可;步骤s1302是准备步骤,该步骤无需重复做,只要备份过数据就不用再此备份;无效副本清理模块是善后模块,需要对删除库模块进行无效副本的清除,保证集群在副本同母机整改后能够正常提供服务;导出ddl模块和导入ddl模块,可以通过拷贝新分片副本的元数据目录文件(及副本数据)替换,虽然拷贝元数据目录文件存在拷贝过程中丢失软连接以及数据增长翻倍的问题,但是ddl导入和导出使用更灵活,问题定位也比较容易,因此,很容易对定位的问题采用有效的方法进行改善或解决。[0170]综上所述,在本技术实施例所提供的clickhouse集群的数据管理方法中,获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;其中,各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的;接着,基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息;进一步地,基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改;最终,在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。[0171]采用这种方式,由于从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群,可以找到部署单个分片的多个副本的物理机,并且,根据预设的分片副本非同机配置规则,对多个云主机的分片副本信息进行重新配置,有效地避免了因部署单个分片的多个副本的物理机出现故障,引起多个副本数据丢失的问题;此外,一旦确定将多个云主机的初始分片副本信息修改为各自对应的目标分片副本信息,便可在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据,也避免了相关技术中,会因调用iaas的接口只能串行操作,无法并行处理,加上数据同步会受数据量影响,从而导致需要花费大量时间的技术弊端,故而,极大地提高了clickhouse集群的数据管理的效率。[0172]进一步地,基于相同的技术构思,本技术实施例提供了一种clickhouse集群的数据管理装置,该clickhouse集群的数据管理装置用以实现本技术实施例的上述方法流程。参阅图14所示,该clickhouse集群的数据管理装置包括:获取模块1401、配置模块1402、修改模块1403以及存储模块1404,其中:[0173]获取模块1401,用于获取clickhouse集群中,各个云主机的初始分片副本信息,并从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;其中,各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的;[0174]配置模块1402,用于基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息;[0175]修改模块1403,用于基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改;[0176]存储模块1404,用于在确定成功将多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据。[0177]在一种可选的实施例中,在从clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群时,所述获取模块1401具体用于:[0178]针对物理机群包含的各个物理机,分别执行以下操作:[0179]基于第一物理机对应的至少两个云主机的初始分片副本信息,获得至少两个初始分片副本信息各自归属的分片类型;其中,第一物理机为各个物理机中任一物理机;[0180]若至少两个初始分片副本信息中,存在相同分片类型的初始分片副本信息,则确定第一物理机满足分片副本同机条件,并将第一物理机作为子物理机群中的一个物理机。[0181]在一种可选的实施例中,在基于子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得多个云主机的目标分片副本信息时,所述配置模块1402具体用于:[0182]基于多个云主机的初始分片副本信息,获得各种分片及其各自对应的副本数量;[0183]针对各种分片,分别执行以下操作:[0184]基于一种分片的副本数量,从子物理机群中,筛选出满足副本数量的多个物理机;[0185]分别将一种分片对应的任一初始分片副本信息,作为多个物理机各自对应的任一云主机的目标分片副本信息。[0186]在一种可选的实施例中,在基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改时,所述修改模块1403具体用于:[0187]针对多个目标分片副本信息,分别执行以下操作:[0188]对一个目标分片副本信息进行解析,获得目标云主机的目标主机标识,以及目标云主机对应的目标分片副本标识;其中,目标分片副本标识为相应云主机的初始分片副本标识;[0189]基于目标主机标识和目标分片副本标识,对相应云主机的初始分片副本信息进行修改。[0190]在一种可选的实施例中,在基于目标主机标识和目标分片副本标识,对相应云主机的初始分片副本信息进行修改时,所述修改模块1403具体用于:[0191]获取初始分片副本信息所属的分片副本逻辑关系;其中,分片副本逻辑关系包含:相应云主机所属物理机,对应的各个云主机的主机标识;[0192]将分片副本逻辑关系中,与目标分片副本标识关联的初始主机标识修改为目标主机标识。[0193]在一种可选的实施例中,在基于目标主机标识和目标分片副本标识,对相应云主机的初始分片副本信息进行修改之后,所述修改模块1403还用于:[0194]对目标云主机的初始分片副本信息进行解析,获得目标云主机的初始分片副本标识;[0195]将目标云主机对应的初始分片副本标识修改为目标分片副本标识。[0196]在一种可选的实施例中,在基于获得的多个目标分片副本信息,对多个云主机的初始分片副本信息进行修改之前,所述修改模块1403还用于:[0197]对多个云主机各自存储的初始副本数据进行复制,获得多个初始副本数据各自对应的目标副本数据;[0198]在确定成功获得多个目标副本数据时,清除多个初始副本数据,并按照预设的数据检查周期,检查多个云主机,直至完全清除多个初始副本数据为止。[0199]基于相同的技术构思,本技术实施例还提供了一种电子设备,该电子设备可实现本技术上述实施例提供的clickhouse集群的数据管理方法流程。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。如图15所示,该电子设备可包括:[0200]至少一个处理器1501,以及与至少一个处理器1501连接的存储器1502,本技术实施例中不限定处理器1501与存储器1502之间的具体连接介质,图15中是以处理器1501和存储器1502之间通过总线1500连接为例。总线1500在图15中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1500可以分为地址总线、数据总线、控制总线等,为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器1501也可以称为控制器,对于名称不做限制。[0201]在本技术实施例中,存储器1502存储有可被至少一个处理器1501执行的指令,至少一个处理器1501通过执行存储器1502存储的指令,可以执行前文论述的一种clickhouse集群的数据管理方法。处理器1501可以实现图14所示的装置中各个模块的功能。[0202]其中,处理器1501是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器1502内的指令以及调用存储在存储器1502内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。[0203]在一种可能的设计中,处理器1501可包括一个或多个处理单元,处理器1501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1501中。在一些实施例中,处理器1501和存储器1502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。[0204]处理器1501可以是通用处理器,例如cpu、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的一种clickhouse集群的数据管理方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。[0205]存储器1502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(randomaccessmemory,ram)、静态随机访问存储器(staticrandomaccessmemory,sram)、可编程只读存储器(programmablereadonlymemory,prom)、只读存储器(readonlymemory,rom)、带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性存储器、磁盘、光盘等等。存储器1502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器1502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。[0206]通过对处理器1501进行设计编程,可以将前述实施例中介绍的一种clickhouse集群的数据管理方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图4所示的实施例的一种clickhouse集群的数据管理方法的步骤。如何对处理器1501进行设计编程为本领域技术人员所公知的技术,这里不再赘述。[0207]基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种clickhouse集群的数据管理方法。[0208]在一些可能的实施方式中,本技术还提供了一种clickhouse集群的数据管理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种clickhouse集群的数据管理方法中的步骤。[0209]应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。[0210]此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。[0211]本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0212]本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个服务器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0213]可使用一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。[0214]在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算装置,或者,可以连接到外部计算装置(例如,利用因特网服务提供商来通过因特网连接)。[0215]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0216]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0217]显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。当前第1页12当前第1页12
技术特征:
1.一种clickhouse集群的数据管理方法,其特征在于,包括:获取clickhouse集群中,各个云主机的初始分片副本信息,并从所述clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;其中,所述各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的;基于所述子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得所述多个云主机的目标分片副本信息;基于获得的多个目标分片副本信息,对所述多个云主机的初始分片副本信息进行修改;在确定成功将所述多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在所述多个云主机上,存储所述多个目标分片副本信息各自关联的目标副本数据。2.如权利要求1所述的方法,其特征在于,所述从所述clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群,包括:针对所述物理机群包含的各个物理机,分别执行以下操作:基于第一物理机对应的至少两个云主机的初始分片副本信息,获得至少两个初始分片副本信息各自归属的分片类型;其中,所述第一物理机为所述各个物理机中任一物理机;若所述至少两个初始分片副本信息中,存在相同分片类型的初始分片副本信息,则确定所述第一物理机满足所述分片副本同机条件,并将所述第一物理机作为所述子物理机群中的一个物理机。3.如权利要求1所述的方法,其特征在于,所述基于所述子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得所述多个云主机的目标分片副本信息,包括:基于所述多个云主机的初始分片副本信息,获得各种分片及其各自对应的副本数量;针对所述各种分片,分别执行以下操作:基于一种分片的副本数量,从所述子物理机群中,筛选出满足副本数量的多个物理机;分别将所述一种分片对应的任一初始分片副本信息,作为所述多个物理机各自对应的任一云主机的目标分片副本信息。4.如权利要求1-3中任一项所述的方法,其特征在于,所述基于获得的多个目标分片副本信息,对所述多个云主机的初始分片副本信息进行修改,包括:针对所述多个目标分片副本信息,分别执行以下操作:对一个目标分片副本信息进行解析,获得目标云主机的目标主机标识,以及所述目标云主机对应的目标分片副本标识;其中,所述目标分片副本标识为相应云主机的初始分片副本标识;基于所述目标主机标识和所述目标分片副本标识,对所述相应云主机的初始分片副本信息进行修改。5.如权利要求4所述的方法,其特征在于,所述基于所述目标主机标识和所述目标分片副本标识,对所述相应云主机的初始分片副本信息进行修改,包括:获取所述初始分片副本信息所属的分片副本逻辑关系;其中,所述分片副本逻辑关系包含:所述相应云主机所属物理机,对应的各个云主机的主机标识;将所述分片副本逻辑关系中,与所述目标分片副本标识关联的初始主机标识修改为所
述目标主机标识。6.如权利要求4所述的方法,其特征在于,所述基于所述目标主机标识和所述目标分片副本标识,对所述相应云主机的初始分片副本信息进行修改之后,还包括:对所述目标云主机的初始分片副本信息进行解析,获得所述目标云主机的初始分片副本标识;将所述目标云主机对应的初始分片副本标识修改为所述目标分片副本标识。7.如权利要求1-3中任一项所述的方法,其特征在于,所述基于获得的多个目标分片副本信息,对所述多个云主机的初始分片副本信息进行修改之前,还包括:对所述多个云主机各自存储的初始副本数据进行复制,获得多个初始副本数据各自对应的目标副本数据;在确定成功获得多个目标副本数据时,清除所述多个初始副本数据,并按照预设的数据检查周期,检查所述多个云主机,直至完全清除所述多个初始副本数据为止。8.一种clickhouse集群的数据管理装置,其特征在于,包括:获取模块,用于获取clickhouse集群中,各个云主机的初始分片副本信息,并从所述clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群;其中,所述各个云主机具有相同的clickhouse服务能力,每个云主机是由相应物理机虚拟化得到的;配置模块,用于基于所述子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得所述多个云主机的目标分片副本信息;修改模块,用于基于获得的多个目标分片副本信息,对所述多个云主机的初始分片副本信息进行修改;存储模块,用于在确定成功将所述多个云主机的初始分片副本信息,修改为各自对应的目标分片副本信息时,在所述多个云主机上,存储所述多个目标分片副本信息各自关联的目标副本数据。9.如权利要求8所述的装置,其特征在于,在所述从所述clickhouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群时,所述获取模块具体用于:针对所述物理机群包含的各个物理机,分别执行以下操作:基于第一物理机对应的至少两个云主机的初始分片副本信息,获得至少两个初始分片副本信息各自归属的分片类型;其中,所述第一物理机为所述各个物理机中任一物理机;若所述至少两个初始分片副本信息中,存在相同分片类型的初始分片副本信息,则确定所述第一物理机满足所述分片副本同机条件,并将所述第一物理机作为所述子物理机群中的一个物理机。10.如权利要求8所述的装置,其特征在于,在所述基于所述子物理机群对应的多个云主机的初始分片副本信息,以及预设的分片副本非同机配置规则,获得所述多个云主机的目标分片副本信息时,所述配置模块具体用于:基于所述多个云主机的初始分片副本信息,获得各种分片及其各自对应的副本数量;针对所述各种分片,分别执行以下操作:基于一种分片的副本数量,从所述子物理机群中,筛选出满足副本数量的多个物理机;分别将所述一种分片对应的任一初始分片副本信息,作为所述多个物理机各自对应的
任一云主机的目标分片副本信息。11.如权利要求8-10中任一项所述的装置,其特征在于,在所述基于获得的多个目标分片副本信息,对所述多个云主机的初始分片副本信息进行修改时,所述修改模块具体用于:针对所述多个目标分片副本信息,分别执行以下操作:对一个目标分片副本信息进行解析,获得目标云主机的目标主机标识,以及所述目标云主机对应的目标分片副本标识;其中,所述目标分片副本标识为相应云主机的初始分片副本标识;基于所述目标主机标识和所述目标分片副本标识,对所述相应云主机的初始分片副本信息进行修改。12.如权利要求11所述的装置,其特征在于,在所述基于所述目标主机标识和所述目标分片副本标识,对所述相应云主机的初始分片副本信息进行修改时,所述修改模块具体用于:获取所述初始分片副本信息所属的分片副本逻辑关系;其中,所述分片副本逻辑关系包含:所述相应云主机所属物理机,对应的各个云主机的主机标识;将所述分片副本逻辑关系中,与所述目标分片副本标识关联的初始主机标识修改为所述目标主机标识。13.如权利要求11所述的装置,其特征在于,在所述基于所述目标主机标识和所述目标分片副本标识,对所述相应云主机的初始分片副本信息进行修改之后,所述修改模块还用于:对所述目标云主机的初始分片副本信息进行解析,获得所述目标云主机的初始分片副本标识;将所述目标云主机对应的初始分片副本标识修改为所述目标分片副本标识。14.如权利要求8-10中任一项所述的装置,其特征在于,在所述基于获得的多个目标分片副本信息,对所述多个云主机的初始分片副本信息进行修改之前,所述修改模块还用于:对所述多个云主机各自存储的初始副本数据进行复制,获得多个初始副本数据各自对应的目标副本数据;在确定成功获得多个目标副本数据时,清除所述多个初始副本数据,并按照预设的数据检查周期,检查所述多个云主机,直至完全清除所述多个初始副本数据为止。15.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的方法。16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述方法的步骤。17.一种计算机程序产品,其特征在于,所述计算机程序产品在被计算机调用时,使得所述计算机执行如权利要求1-7中任一项所述的方法。
技术总结
本申请公开了一种ClickHouse集群的数据管理方法及相关装置,涉及数据管理技术领域。本申请中,由于从ClickHouse集群对应的物理机群中,筛选出满足预设的分片副本同机条件的子物理机群,可以找到部署单个分片的多个副本的物理机,并且,根据预设的分片副本非同机配置规则,对多个云主机的分片副本信息进行重新配置,有效地避免了因部署单个分片的多个副本的物理机出现故障,引起多个副本数据丢失的问题;此外,一旦确定将多个云主机的初始分片副本信息修改为各自对应的目标分片副本信息,便可在多个云主机上,存储多个目标分片副本信息各自关联的目标副本数据,故而,极大地提高了ClickHouse集群的数据管理的效率。ClickHouse集群的数据管理的效率。ClickHouse集群的数据管理的效率。
技术研发人员:黄启成 陈文柏 李思维 张永育 翁世清 冯小梁
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.04.20
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/