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進行哈希計算,然後放到分片裏面。

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