1、背景
由于大数据平台需要对数据进行分析,因为ClickHouse是一个开源的列式数据库管理系统(DBMS),专为联机分析处理(OLAP)而设计。
官方地址:ClickHouse 开发 | ClickHouse Docs
2、集群中的操作
在操作集群中的表的时候,最好是采用[dbname].[tablename]方式执行命令。
- 创建数据库
sql
CREATE DATABASE [IF NOT EXISTS] db_name
[ON CLUSTER cluster]
[ENGINE = db_engine(...)]
[COMMENT 'Comment']
例:create database if not exists mydb on CLUSTER mycluster;
其他参数自行添加
- 创建表
sql
CREATE TABLE mydb.mylog ON CLUSTER mycluster
(
`id` String COMMENT '标识id',
`logdate` Date COMMENT '发生日期',
`sid` String COMMENT '业务id',
`create_time` DateTime('Asia/Shanghai') DEFAULT now() COMMENT '创建时间'
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/mydb/mylog','{replica}')
PARTITION BY toYYYYMM(logdate)
PRIMARY KEY (id, logdate)
ORDER BY (id, logdate) COMMENT '日志表';
CREATE TABLE mydb.mylog_distributed ON CLUSTER mycluster
AS mydb.mylog
ENGINE = Distributed(mycluster, mydb, mylog, rand());
- 删除表
sql
// 删除远程表
DROP table IF EXISTS mydb.mylog_distributed ON CLUSTER mycluster;
// 删除本地表
DROP table IF EXISTS mydb.mylog ON CLUSTER mycluster;
- 修改表名
sql
RENAME TABLE mydb.mylog_distributed TO mydb.mylog_distributed_new ON CLUSTER mycluster;
RENAME TABLE mydb.mylog_ TO mydb.mylog_new ON CLUSTER mycluster;
- 修改字段名
sql
// 修改
ALTER TABLE mydb.mylog ON CLUSTER mycluster MODIFY COLUMN name String COMMENT '修改';
// 删除
ALTER TABLE mydb.mylog ON CLUSTER mycluster DROP COLUMN name;
// 添加
ALTER TABLE mydb.mylog ON CLUSTER mycluster ADD COLUMN test_id String COMMENT '新增ID';
提示:还有很多特性以及用法,请参考官方文档!