多集群创建语句关联数据库:
CREATE TABLE hopen.studentON CLUSTER default_cluster
(
`name` String COMMENT '姓名',
`age` String COMMENT '年龄'
)
ENGINE = MySQL('10.161.168.10:3306', 'hlcp_uw_01', 'config_channel', 'select_user', 'Tk20220809_')clickhouse创建语句:
CREATE TABLE hopen.studentON CLUSTER default_cluster
(
`name` String COMMENT '姓名',
`age` String COMMENT '年龄'
)ENGINE = ReplicatedMergeTree('/clickhouse/table/{shard}/hopen/config_channel ', '{replica}')
PARTITION BY toYYYYMM(created_time)
ORDER BY (created_time, channel_code)
查询CLUSTER集群名称:
select * from system.clusters;
集群命名 分片编号 分片权重 副本编号 机器ip名称 机器ip地址 集群端口 是否为当前查询本地
┌─cluster─────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name──┬─host_address─┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─estimated_recovery_time─┐
│ default_cluster │ 1 │ 1 │ 1 │ 10.0.16.16 │ 10.0.16.16 │ 9000 │ 0 │ default │ │ 0 │ 0 │
│ default_cluster │ 1 │ 1 │ 2 │ 10.0.16.6 │ 10.0.16.6 │ 9000 │ 1 │ default │ │ 0 │ 0 │
└─────────────────┴───────────┴──────────────┴─────────────┴────────────┴──────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────────────┘
一个分片(没有做分片);两个副本;写入数据会将数据写入到这两个副本机器中;
存储大小:
select * from system.disks;
磁盘名称 路径 可用存储大小 总存储大小
┌─name────┬─path────────────────────────────────┬──free_space─┬──total_space─┬─keep_free_space─┬─type──┐
│ default │ /data/clickhouse/clickhouse-server/ │ 62660689920 │ 107321753600 │ 0 │ local │
└─────────┴─────────────────────────────────────┴─────────────┴──────────────┴─────────────────┴───────┘
ReplicatedMergeTree('/clickhouse/table/{shard}/hopen/config_channel ', '{replica}')
/clickhouse/table/这一部分指定的是在zk上创建的路径地址
{shard} 分片标志
/hopen/config_channel 库名/表名
{replica} 副本,建议配置未ip地址 因为每台机器的ip地址不一样
连接clickhouse
clickhouse-client -h ip地址 --port 9000 -u 账号 --password '密码';
use 库名;
show create databases;
show create tables;
创建语句中引擎非常重要:
比如ReplicatedReplacingMergeTree(event_time)
ReplicatedMergeTree: 数据复制,集群同步,提高可用和容错能力,自动进行故障转移;
ReplacingMergeTree:允许冗余旧数据,一段时间后可删除,通常用于删除重复数据或实现数据版本控制;根据Order_by里面的字段删除冗余数据
输出数据到服务器:
select * from table_name INTO OUTFILE '/home/xxxxx/xxxx.csv' FORMAT CSVWithNames;
添加字段:
alter table table_name on cluster default_cluster add column 字段名 Nullable(String) commit '字段描述';