【技术实现步骤摘要】
提升ClickHouse数据入库性能的方法及装置
[0001]本专利技术涉及ClickHouse数据入库领域,尤其是提升ClickHouse数据入库性能的方法及装置。
技术介绍
[0002]ClickHouse是一款用于大数据实时分析的列式数据库管理系统。ClickHouse大量的写入操作以及后台的数据片段的合并将消耗大量的集群资源,导致集群性能严重下降,甚至导致ClickHouse对外服务不可用,存在的问题具体如下:
[0003](1)无法限制ClickHouse写入操作使用的CPU、内存等资源,可能导致查询的资源不足,导致运行缓慢甚至内存溢出。
[0004](2)数据写入ClickHouse后,会产生大量的小文件的数据片段,这些数据片段在后台某个未知的时间点进行合并成大文件,将消耗大量的CPU、内存等资源,对集群性能产生较大的影响。
[0005](3)如果资源不足,小文件合并的进程将被阻塞,集群将会存在大量的小文件,影响数据查询的性能。
技术实现思路
[0006]为解决上述存在的问题,本专利技术提供提升ClickHouse数据入库性能的方法及装置。
[0007]为实现上述目的,本专利技术采用下述技术方案:
[0008]在本专利技术一实施例中,提出了提升ClickHouse数据入库性能的方法,该方法包括:
[0009]在生产集群之外,构建一个小型的临时集群,保持生产集群的节点数是临时集群的节点数的整数倍;
[0010]通过统一的入口程序,将数据 ...
【技术保护点】
【技术特征摘要】
1.提升ClickHouse数据入库性能的方法,其特征在于,该方法包括:在生产集群之外,构建一个小型的临时集群,保持生产集群的节点数是临时集群的节点数的整数倍;通过统一的入口程序,将数据写入生产集群的数据表;在配置文件配置临时集群和生产集群的连接信息;查询生产集群的元数据信息;在临时集群创建中间表;将数据以轮询或者随机的方式写入临时集群创建的中间表;执行数据片段的合并;打包数据文件;将文件传输至生产集群;刷新生产集群的元数据信息。2.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,所述连接信息包括:集群的主机名、端口和账号。3.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,查询生产集群的元数据信息,包括:根据ClickHouse提供的API,在程序中查看生产集群的数据表,获取最新的数据表的schema信息;在临时集群创建表,该表的schema信息与生产集群的数据表的schema信息保持一致。4.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,在临时集群创建中间表,包括:从生产集群的system.cluster表根据节点和副本信息,确定每个分片的节点的数量;从临时集群的system.cluster表获取节点的数量;创建中间表的数量为:生产集群每个分片的节点的数量/临时集群节点的数量;创建的中间表的命名规则:以生产集群的数据表为前缀,从0开始编号创建的中间表。5.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,将数据以轮询或者随机的方式写入临时集群创建的中间表,包括:读取数据,将数据以轮询或者随机的方式写入临时集群创建的中间表,确保每张中间表的数据保持均衡。6.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,执行数据片段的合并,包括:在程序中,读取元数据表,获取临时集群每个节点的主机信息,在程序后台通过SSH协议登陆至每台主机,执行数据小文件的合并。7.根据权利要求6所述的提升ClickHouse数据入库性能的方法,其特征在于,执行数据小文件的合并,包括:通过Clickhouse的API主动触发合并,将多个小文件合并为大文件。8.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,打包数据文件,包括:在程序中,读取元数据表,获取临时集群每个节点的主机信息,在程序后台通过SSH协
议登陆至每台主机,执行打包操作;数据插入完成后,打包;通过在程序中调用SSH的登陆命令,连接到临时集群的每台主机上,在临时集群创建的中间表所在的数据目录下,按照数据片段的目录进行打包,用于传送至生产集群。9.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,将文件传输至生产集群,包括:在程序中,读取元数据表,获取临时集群每个节点的主机信息,在程序后台通过SSH协议登陆至每台主机,执行文件的传输;在临时集群的每个节点上,将临时集群形成的压缩文件,按照轮询的方式传输给生产集群的每个分片的节点。将文件传输至生产集群的数据表目录下的detached目录中,并进行解压。10.根据权利要求1所述的提升ClickHouse数据入库性能的方法,其特征在于,刷新生产集群的元数据信息,包括:在程序中,读取元数据表,获取生产集群每个节点的主机信息,在程序后台通过SSH协议登陆至每台主机;在生产集群,基于命令刷新元数据信息,将detached目录中的数据关联至正式的数据目录,从而对查询可见。11.提升ClickHouse数据入库性能的装置,其特征在于,该装置包括:临时集群构建模块,用于在生产集群之外,构建一个小型的临时集群,保持生产集群的节点数是临时集群的节点数的整数倍;集群连接信息配置模块,用于通过统一的入口程序,将数据写入生产集群的数据表;在配置文件配置临时集群和生产...
【专利技术属性】
技术研发人员:周朝卫,
申请(专利权)人:中盈优创资讯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。