聊聊Clickhouse分布式表的操作
作者:碼匠亂燉
在c1的cluster定義了一個distribute_test_all的分布式表,查詢本地的distribute_test_local表,而sharding_key采用的是隨機(jī)的方式,將數(shù)據(jù)分布到每個節(jié)點(diǎn)的本地表。
序
本文主要研究一下clickhouse分布式表的操作。
創(chuàng)建分布式表
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) ENGINE = Distributed(cluster, database, table[, sharding_key[, policy_name]])
[SETTINGS name=value, ...]
示例
CREATE TABLE distribute_test_all on cluster c1
(
name String,
age Int16,
weight Float32
)
ENGINE = Distributed(c1, db1, distribute_test_local, rand());
這里在c1的cluster定義了一個distribute_test_all的分布式表,查詢本地的distribute_test_local表,而sharding_key采用的是隨機(jī)的方式,將數(shù)據(jù)分布到每個節(jié)點(diǎn)的本地表。
創(chuàng)建本地表
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [NULL|NOT NULL] [DEFAULT|MATERIALIZED|EPHEMERAL|ALIAS expr1] [compression_codec] [TTL expr1] [COMMENT 'comment for column'],
name2 [type2] [NULL|NOT NULL] [DEFAULT|MATERIALIZED|EPHEMERAL|ALIAS expr2] [compression_codec] [TTL expr2] [COMMENT 'comment for column'],
...
) ENGINE = engine
COMMENT 'comment for table'
示例
CREATE TABLE distribute_test_local on cluster c1
(
name String,
age Int16,
weight Float32
)
Engine=MergeTree()
ORDER BY name;
這里在c1的cluster的每個實(shí)例上創(chuàng)建distribute_test_local表,engine為MergeTree。
刪除表
--刪除分布式表
DROP TABLE distribute_test_all ON CLUSTER c1
-刪除本地表
DROP TABLE distribute_test_local ON CLUSTER c1
如果要徹底刪除一張分布式表則需要分別刪除分布式表和本地表。
小結(jié)
clickhouse提供了分布式表,針對insert和select的查詢,會以分布式的方式作用于本地表。
責(zé)任編輯:武曉燕
來源:
碼匠的流水賬