ClickHouse表引擎Distributed详解

本文详细介绍了ClickHouse的Distributed表引擎,它用于分布式查询且不存储数据,利用索引自动并行读取。内容包括Distributed表引擎的参数解析,如cluster_name、database、table和sharding_key,并通过实例展示了如何创建和使用Distributed表,包括数据的分片和插入机制。

一:Distributed介绍

      分布式引擎,本身不存储数据,但可以在多个服务器上进行分布式查询。读是自动并行的。读取时,远程服务器表的索引(如果存在)会被使用。

      Distributed(cluster_name, database, table, [sharding_key])

      参数解析:

      cluster_name:服务器配置文件中的集群名,在/etc/metrika.xml中配置的。具体配置见前文。

      database:数据库名。

      table:表名。

      sharding_key:数据分片键。

二:Distributed使用

1. 在三台机器上分别创建一个表t。

create table t(id UInt16, name String) engine=TinyLog;

2. 在三台机器的t表中插入一些数据。

insert into t(id, name) values(1, 'zs');
insert into t(id, name) values(2, 'ls');

3. 在192.168.44.129上创建分布式表。

create table dis_table(id UInt16, name String) engine=Distributed(clickhouse_cluster, default, t, id);

4. 查看结果。

      可以看到,三台机器的数据都拿到了。

5. 向分布式表插入数据。

insert into dis_table(id, name) values(3, 'aa');
insert into dis_table(id, name) values(4, 'bb');

  查看结果:

       插入机制是根据指定的分片键id,对插入的id进行哈希计算,然后放到分片里面。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值