1.clickhouse-client
clickhouse-client --multiline -h 192.168.107.216 --port 9000 -u ck --password ur6LMIUD # --multiline:SQL以逗号结束 不带这么输入一行sql
2.创建数据库
CREATE DATABASE IF NOT EXISTS data_center; # 所有集群都要建这个数据库 F NOT EXISTS:如果创建的库存在不会报错
3.创建表
DROP TABLE IF EXISTS data_center.test_local ON CLUSTER shunwang_clickhouse; # 删除集群上在这张表 CREATE TABLE IF NOT EXISTS data_center.test_local ON CLUSTER shunwang_clickhouse ( # IF NOT EXISTS:表存在不创建 表不存在就创建 ON CLUSTER: 在任何一个节点创建在张表其他节点也会创建这张表 shunwang_clickhouse: 集群名 `id` UInt32 COMMENT 'id', # COMMENT 'id':给字段添加备注 `name` String COMMENT '名称' ) ENGINE = MergeTree() ORDER BY ( id ) SETTINGS index_granularity = 8192;
4.创建分布表
DROP TABLE IF EXISTS data_center.test ON CLUSTER shunwang_clickhouse; # 删除集群上在这张表 CREATE TABLE IF NOT EXISTS test ON CLUSTER shunwang_clickhouse AS data_center.test_local # # 在每台机器上建这个表 这个不是用来存数据的 是管理管理的 ON CLUSTER: 在任何一个节点创建在张表其他节点也会创建这张表 shunwang_clickhouse: 集群名 ENGINE = Distributed(shunwang_clickhouse, data_center, test_local, rand()); # shunwang_clickhouse:集群名称 data_center:库名称 stream_event_text: 表名称 rand():分片KEY,这里分片用rand()函数,表示随机分片
5.导入数据
INSERT INTO stream_event_all SELECT * FROM stream_event; # 导入数据 数据会随机写入到集群中的数据库对应的表中