1. 部署结构
在Clickhouse中, 一般的有2种部署方式,3种使用方式:
部署方式:
- 部署方式1: 部署一个单节点的Clickhouse集群, 比如小白使用的集群。
- 部署方式2: 部署一个多节点的集群, 比如Tom和Jim使用的集群
使用方式:
- 使用方式1:单节点集群,单节点执行SQL直接操作。比如上图中的小白(sql中无on cluster语句)
- 使用方式2::多节点集群,和使用方式1一样,比如上图中的Tom(sql中无on cluster语句)
这种方式,用户如果连接到
不同的节点
看到的数据可能是不一样
的。 - 使用方式3: 多节点集群,用户
集群化操作
,比如上图中的Sam和Jim 集群化操作时, SQL语句中需要添加on cluster XXXX
, XXX表示集群名。
下面简单介绍集群化操作和单节点操作的基本SQL。
2. 集群化操作Demo SQL
- 2.1 创建一个数据库
create database db_test on cluster default_cluster
- 2.2.删除一个数据库
drop database db_test on cluster default_cluster
- 2.3.创建一个表
CREATE TABLE db_test.tbl_replac_merge_test on cluster default_cluster ( id String, code String, creat_time DateTime ) ENGINE = ReplacingMergeTree() PARTITION BY toYYYYMM(create_time) PRIMARY KEY id ORDER BY (id, code);
- 2.4.删除一个表
drop table db_test.tbl_replac_merge_test on cluster default_cluster
3. 单节点操作Demo SQL
- 3.1.创建一个数据库
create database db_test;
- 3.2.删除一个数据库
drop database db_test;
- 3.3.创建一个表
CREATE TABLE db_test.tbl_replac_merge_test ( `id` String, `code` String, `create_time` DateTime ) ENGINE = ReplacingMergeTree() PARTITION BY toYYYYMM(create_time) PRIMARY KEY id ORDER BY (id, code);
- 3.4.删除一个数据库表
drop table db_tetbl_replac_merge_test
更多Clickhouse建表文档:
https://clickhouse.tech/docs/en/sql-reference/statements/create/table/