1、停止服务
systemctl stop clickhouse-server.service
2、添加配置文件
2.1、修改配置文件
vim /etc/clickhouse-server/config.xml
<yandex>
<remote_servers>
<perftest_3shards_1replicas>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.200.160</host>
<port>9000</port>
<user>default</user>
<password>BOWrM6eD</password>
</replica>
</shard>
<shard>
<weight>2</weight>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.200.158</host>
<port>9000</port>
<user>default</user>
<password>BOWrM6eD</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.200.159</host>
<port>9000</port>
<user>default</user>
<password>BOWrM6eD</password>
</replica>
</shard>
</perftest_3shards_1replicas>
</remote_servers>
<zookeeper>
<node>
<host>192.168.8.211</host>
<port>2180</port>
</node>
<node>
<host>192.168.8.211</host>
<port>2181</port>
</node>
<node>
<host>192.168.8.211</host>
<port>2182</port>
</node>
</zookeeper>
<macros>
<layer>01</layer>
<shard>01</shard>
<replica>example01-01-1</replica>
</macros>
<!-- 监听网络 -->
<networks>
<ip>::/0</ip>
</networks>
<!-- 数据压缩算法 -->
<compression>
<case>
<min_part_size>10000000000</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</compression>
</yandex>
3、拷贝配置到其他2个服务上
scp /etc/clickhouse-server/config.xml root@192.168.200.158:/etc/clickhouse-server/
scp /etc/clickhouse-server/config.xml root@192.168.200.159:/etc/clickhouse-server/
3.1、修改配置 /etc/clickhouse-server/config.xml,在没有机器上修改一下 <shard>01</shard>
修改为 01、02、03;replica修改为 example01-01-1、example01-02-1、example01-03-1
<macros>
<layer>01</layer>
<shard>01</shard>
<replica>example01-01-1</replica>
</macros>
4、重新启动服务
systemctl restart clickhouse-server.service
systemctl stop clickhouse-server.service
systemctl start clickhouse-server.service
systemctl status clickhouse-server.service
4.1、如果启动失败,执行以下命令,会打印错误
clickhouse-server --config-file=/etc/clickhouse-server/config.xml
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
5、相关文件
chown -R clickhouse:clickhouse /var/log/clickhouse-server/
cat /var/log/clickhouse-server/clickhouse-server.err.log
cat /var/log/clickhouse-server/clickhouse-server.log
数据目录
/var/lib/clickhouse/data
元数据文件
/var/lib/clickhouse/metadata/
6、创建分布式表
6.1、链接服务
clickhouse-client -h 127.0.0.1 -d default -m -u default --password BOWrM6eD
6.2、创建数据库
CREATE DATABASE dm ENGINE = Ordinary;
6.3、分别在各个机器上创建本地表
CREATE TABLE dm.jh_car_num on CLUSTER perftest_3shards_1replicas
(
`id` Int64 COMMENT '主键',
`PlateNo` String COMMENT '车牌号',
`PlateColor` String COMMENT '号牌颜色',
`SpottingName` String COMMENT '路口名称',
`PassingTime` DateTime COMMENT '过车时间',
`createTime` DateTime COMMENT '创建时间',
`SpottingNo` String COMMENT '路口编号',
`AssetsNo` String COMMENT '设备编号',
`AssetsName` String COMMENT '设备名称',
`Flag` String COMMENT '华为:H,海信:K'
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/jh_car_num', '{replica}')
PRIMARY KEY id
ORDER BY (id, createTime, PassingTime);
6.3、创建分布式表
CREATE TABLE dm.jh_car_num_all
(
`id` Int64 COMMENT '主键',
`PlateNo` String COMMENT '车牌号',
`PlateColor` String COMMENT '号牌颜色',
`SpottingName` String COMMENT '路口名称',
`PassingTime` DateTime COMMENT '过车时间',
`createTime` DateTime COMMENT '创建时间',
`SpottingNo` String COMMENT '路口编号',
`AssetsNo` String COMMENT '设备编号',
`AssetsName` String COMMENT '设备名称',
`Flag` String COMMENT '华为:H,海信:K'
)
ENGINE = Distributed('perftest_3shards_1replicas', 'dm', 'jh_car_num', rand());
相关查询语句
select * from dm.jh_car_num;
select * from dm.jh_car_num_all;
select count(*) from dm.jh_car_num_all;
清楚表所有数据
drop table dm.jh_car_num;
drop table dm.jh_car_num_all;
插入测试数据
INSERT INTO dm.jh_car_num(id, PlateNo, PlateColor, SpottingName, PassingTime, createTime, SpottingNo, AssetsNo, AssetsName, Flag) VALUES(1364095318625386436, '豫A0650B', '白', '丰产路', toDateTime('2021-02-23 14:10:37.000'), toDateTime('2021-02-23 14:10:37.000'), '', '设备编号9346', '设备名称9346', 'H');

