19|如何在ClickHouse利用集群能力实现并行计算?
彭旭
你好,我是彭旭。
上节课我们介绍了 ClickHouse 的 MergeTree 表引擎系列,但是还只涉及单节点。
这节课我们就来看看,既然 ClickHouse 是分布式数据库,那么它是如何利用集群多节点、数据分片、数据多副本的能力,来实现并行计算,加速查询的呢?
集群概览
HBase、StarRocks 一般是配置一个大集群,所有服务器节点,数据都存储在大集群中,像 HBase 也可以配置多机房多集群,然后集群间配置数据实时复制。
ClickHouse 的集群配置则非常灵活,你可以将所有的物理服务器配置成一个大的集群,也可以根据业务、部门等隔离,划分多个小的逻辑集群。每个小集群都可以配置自己的节点、副本、分片,甚至一个节点可以被多个逻辑集群包含。
你也可以每个机房配置成一个逻辑集群,然后配置一个包含了所有机房所有服务器的大的逻辑集群,用来汇总统计所有数据。不过这时候要注意,统计数据就可能涉及多机房之间大量的数据传输了。
举个例子,比如我们南沙与无锡数据中心分属不同的业务,各有 3 台服务器,平时业务能够在本数据中心机房完成闭环。假设总部需要统计所有的业务数据,这时候你可以分别统计两个数据中心的数据,然后汇总。但是如果数据中心较多,统计内容与查询也较多,这样就会很麻烦。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. ClickHouse集群配置非常灵活,可以根据业务、部门等隔离,划分多个小的逻辑集群,并且每个小集群都可以配置自己的节点、副本、分片。 2. ClickHouse的分布式表可以将数据分片保存到不同的服务器上,实现并行查询,但实际上分布式表只是一个代理,依然依赖本地表存储数据。 3. 使用分布式表将数据分片存储后,需要考虑数据单点问题,ClickHouse提供了多副本机制来保障数据的高可用。 4. ClickHouse依赖ZooKeeper来进行分布式DDL的执行与数据的复制,集群化配置之后,需要在配置文件中增加ZooKeeper的集群地址。 5. ClickHouse的集群配置简单,只需要修改配置文件/etc/clickhouse-server/config.xml,在配置文件的<remote_servers>标签下,增加集群的节点配置即可。 6. ClickHouse的分布式表类似关系型数据库中常用的分库分表中间件,如MyCat。 7. 分布式表的创建需要考虑分片key和存储策略的选择,以及数据插入后的同步或异步写入等配置。 8. ClickHouse的多副本可以提升查询的并发,每个副本都可以承担数据查询的职责。 9. ClickHouse的副本并不是全局的,而是表级别的,可以使用Distributed引擎+MergeTree或者 Distributed引擎+ReplicatedMergeTree两种方式写入。 10. 在使用IN子查询时,应该使用本地表还是分布式表,需要根据具体情况来选择,以提高查询性能。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》,新⼈⾸单¥59
《分布式数据库从入门到实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- mikewt本地表,分布式表in本地表,天然分布式查询2024-07-22归属地:上海
收起评论