ClickHouse表引擎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进行哈希计算,然后放到分片里面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章