System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ClickHouse的数据分发方法和装置制造方法及图纸_技高网

一种基于ClickHouse的数据分发方法和装置制造方法及图纸

技术编号:40844079 阅读:5 留言:0更新日期:2024-04-01 15:11
本发明专利技术涉及数据处理技术领域,提供了一种基于ClickHouse的数据分发方法和装置。方法包括:关闭master节点的数据写入功能,并使各ETL与各数据库实例直接建立通信;ETL向各数据库实例写入测试数据,根据测试数据写入结果,判断数据库实例是否可用,若数据库实例可用,则ETL根据待写数据的大小,将待写数据直接分发到一个或多个数据库实例中。本发明专利技术通过关闭master节点的数据写入功能,并在各ETL与各数据库实例之间直接建立通信,从而无需使用master节点进行数据转发,而是直接通过ETL将数据写入到数据库实例中,能够打破master节点对于数据写入速度的限制,以满足大数据采集量和快速采集场景下的数据写入速率需求。

【技术实现步骤摘要】

本专利技术涉及数据处理,特别是涉及一种基于clickhouse的数据分发方法和装置。


技术介绍

1、目前大数据需求分析处理愈演愈烈,需要借助大量的分布式处理软件来进行协同分析处理,从而提高大数据分析的计算效率。抽取转换加载工具(extract-transform-load,简称为:etl)是数据处理、构建数据仓库的一个重要工具软件,完成异构数据源的抽取、清洗转换和加载的一个过程。

2、clickhouse是一个用于联机分析的列式数据库管理系统。clickhouse采用多主架构,即使用多个主节点(简称为:master节点)管理多个从节点(简称为:slave节点),而etl在向各slave节点进行数据写入时,须通过master节点进行数据分发,即数据先由etl到达master节点,再由master节点转发给各slave节点上的数据库实例,如图1所示,但这样所造成的是,数据整体写入的速度直接受到master节点的处理性能限制,即数据写入速度受限,导致无法适应在数据量极大,数据采集速度快的应用场景下的应用,且当master节点故障时,也会影响数据的写入。

3、鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。


技术实现思路

1、本专利技术要解决的技术问题是现有技术中数据先由etl到达master节点,再由master节点转发给各slave节点上的数据库实例,导致数据整体写入的速度直接受到master节点的处理性能限制,即数据写入速度受限,导致无法适应在数据量极大,数据采集速度快的应用场景下的应用,且当master节点故障时,也会影响数据的写入。

2、本专利技术采用如下技术方案:

3、第一方面,本专利技术提供了一种基于clickhouse的数据分发方法,方法包括:

4、关闭master节点的数据写入功能,并使各etl与各数据库实例直接建立通信;

5、etl向各数据库实例写入测试数据,根据测试数据写入结果,判断数据库实例是否可用,若数据库实例可用,则etl根据待写数据的大小,将待写数据直接分发到一个或多个数据库实例中。

6、优选的,所述关闭master节点的数据写入功能,具体包括:

7、使用system stop distributed sends命令,关闭master节点的分布式队列;

8、并将master节点的端口号设置为第一预设端口号,将各数据库实例的端口号设置为第二预设端口号;将第一预设端口号设置为只读端口,将第二预设端口号设置为写入端口。

9、优选的,在用system stop distributed sends命令,关闭master节点的分布式队列之后,所述方法还包括:

10、判断master节点的分布式队列中是否存在数据,若存在数据,则执行systemflush distributed命令,以将所述数据分发到相应数据库实例中。

11、优选的,所述方法还包括:

12、将insert_distributed_sync参数设置为1,将insert_distributed_timeout参数设置为1。

13、优选的,将insert_distributed_sync参数设置为1代表将分发方式设置为同步分发,将insert_distributed_timeout参数设置为1代表设置分发超时时间为1ms;master节点的数据分发时长大于1ms,master节点在数据分发时长达到1ms时,数据分发超时,master队列的分发队列被阻塞,以将master节点设置为只读属性。

14、优选的,每个数据库实例包含巡逻表,所述etl向各数据库实例写入测试数据,根据测试数据写入结果,判断数据库实例是否可用,具体包括:

15、将测试数据写入到所述巡逻表中,并将测试数据写入结果记录到dbs.write文件中,通过读取dbs.write文件,获取所述测试数据写入结果;

16、若所述测试数据写入结果为写入成功,则判断得到对应的数据库实例可用。

17、优选的,所述将待写数据直接分发到一个或多个数据库实例中,具体包括:

18、按照所需写入的数据库实例的数量n,将待写数据划分为k×n组数据组,将各数据组轮询写入到相应数据库实例中;其中,k为正整数。

19、优选的,在进行数据查询时,通过master节点查询相应数据库实例上的数据,或直接从数据库实例上查询数据。

20、优选的,每台etl配置至少两台数据库实例。

21、第二方面,本专利技术还提供了一种基于clickhouse的数据分发装置,用于实现第一方面所述的基于clickhouse的数据分发方法,所述装置包括:

22、至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的基于clickhouse的数据分发方法。

23、第三方面,本专利技术还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的基于clickhouse的数据分发方法。

24、本专利技术通过关闭master节点的数据写入功能,并在各etl与各数据库实例之间直接建立通信,从而无需使用master节点进行数据转发,而是直接通过etl将数据写入到数据库实例中,从而能够打破master节点对于数据写入速度的限制,以满足大数据采集量和快速采集场景下的数据写入速率需求,并在master节点出现故障时,依旧能够维持数据写入功能的正常进行。

本文档来自技高网...

【技术保护点】

1.一种基于ClickHouse的数据分发方法,其特征在于,方法包括:

2.根据权利要求1所述的基于ClickHouse的数据分发方法,其特征在于,所述关闭master节点的数据写入功能,具体包括:

3.根据权利要求2所述的基于ClickHouse的数据分发方法,其特征在于,在用SYSTEMSTOP DISTRIBUTED SENDS命令,关闭master节点的分布式队列之后,所述方法还包括:

4.根据权利要求2所述的基于ClickHouse的数据分发方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的基于ClickHouse的数据分发方法,其特征在于,将insert_distributed_sync参数设置为1代表将分发方式设置为同步分发,将insert_distributed_timeout参数设置为1代表设置分发超时时间为1ms;master节点的数据分发时长大于1ms,master节点在数据分发时长达到1ms时,数据分发超时,master队列的分发队列被阻塞,以将master节点设置为只读属性。

6.根据权利要求1所述的基于ClickHouse的数据分发方法,其特征在于,每个数据库实例包含巡逻表,所述ETL向各数据库实例写入测试数据,根据测试数据写入结果,判断数据库实例是否可用,具体包括:

7.根据权利要求1所述的基于ClickHouse的数据分发方法,其特征在于,所述将待写数据直接分发到一个或多个数据库实例中,具体包括:

8.根据权利要求1所述的基于ClickHouse的数据分发方法,其特征在于,在进行数据查询时,通过master节点查询相应数据库实例上的数据,或直接从数据库实例上查询数据。

9.根据权利要求1所述的基于ClickHouse的数据分发方法,其特征在于,每台ETL配置至少两台数据库实例。

10.一种基于ClickHouse的数据分发装置,其特征在于,包括:

...

【技术特征摘要】

1.一种基于clickhouse的数据分发方法,其特征在于,方法包括:

2.根据权利要求1所述的基于clickhouse的数据分发方法,其特征在于,所述关闭master节点的数据写入功能,具体包括:

3.根据权利要求2所述的基于clickhouse的数据分发方法,其特征在于,在用systemstop distributed sends命令,关闭master节点的分布式队列之后,所述方法还包括:

4.根据权利要求2所述的基于clickhouse的数据分发方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的基于clickhouse的数据分发方法,其特征在于,将insert_distributed_sync参数设置为1代表将分发方式设置为同步分发,将insert_distributed_timeout参数设置为1代表设置分发超时时间为1ms;master节点的数据分发时长大于1ms,master节点在...

【专利技术属性】
技术研发人员:王化民张本军孙昌燕
申请(专利权)人:武汉绿色网络信息服务有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1