ClickHouse之分布式表引擎Distributed

介绍:

  • Distributed表引擎主要是用于分布式,自身不存储任何数据,数据都分散存储在某一个分片上,能够自动路由数据至集群中的各个节点,需要和其他数据表引擎一起协同工作

  • 一张分布式表底层会对应多个分片数据表,由具体的分片表存储数据,分布式表与分片表是一对多的关系

配置实战:

1.首先我们需要配置分布式表信息

#进入配置目录
cd /etc/clickhouse-server

#编辑配置文件
sudo vim config.xml

<!-- 2shard 1replica -->
    <cluster_2shards_1replicas>
        <!-- shard1  -->
        <shard>
            <replica>
                <host>139.10.123.456</host>
                <port>9000</port>
            </replica>
        </shard>
        
        <!-- shard2  -->
        <shard>
            <replica>
                <host>139.10.123.789</host>
                <port> 9000</port>
            </replica>
        </shard>
        
    </cluster_2shards_1replicas>


    <zookeeper>
          <node >
                <host>139.10.123.123</host>
                <port>2181</port>
          </node>
    </zookeeper>

这里参数说明:

cluster_2shards_1replicas 是代表分布式表名

shard是指定两个分片信息 指定ip和端口

配置zookeeper 是为了副本之间数据的同步

2 建表实战

#【选一个节点】创建好本地表后,在1个节点创建,会在其他节点都存在
create table default.zwt_order on cluster cluster_2shards_1replicas
(id Int8,name String) engine =MergeTree order by id;


#【选一个节点】创建分布式表名 zwt_order_all,在1个节点创建,会在其他节点都存在
create table zwt_order_all on cluster cluster_2shards_1replicas (
id Int8,name String
)engine = Distributed(cluster_2shards_1replicas,default, zwt_order,hiveHash(id));

#分布式表插入
insert into zwt_order_all values(1,'ww'),(2,'ee'),(3,'rr'),(4,'tt');

#【任意节点查询-分布式,全部数据】
SELECT * from zwt_order_all

#【任意本地节点查询,部分数据】
SELECT * from zwt_order

3 数据分布

①如果向分布式表中新增数据,必须要配置分片键(最后一个参数),会将数据分发到各个本地表中

②如果在本地表中新增数据,可以在分布式表中查询到,在其他节点本地表中是查询不到的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值