1,建庫語句
create database if not exists mytestdb on cluster default_cluster;
注意:用戶在集群中創建數據庫或者表時使用ON CLUSTER語句,保證各個ClickHouse節點上數據庫、表的元信息相同。
2,建表
-- 創建復制表
create table mytestdb.test_log3 on cluster default_cluster(id UInt32,user_id String,app_id String,create_time String) ENGINE=ReplicatedMergeTree(‘/clickhouse/tables/{shard}/mytestdb.test_log3’,’{replica}’) order by id;-- 創建分布式表
create table mytestdb.test_log3_all on cluster default_cluster as mytestdb.test_log3 ENGINE=Distributed(‘default_cluster’,’mytestdb’,’test_log3’,rand());
注意:需要同時建本地表和分布式表,建表時需要加cluster
3,查詢數據
select * from mytestdb.test_log3_all
注意: 查詢寫入都用分布式表, 寫入也可以用本地表,結合replied復制的特性也會自己在副本表復制數據的。
通常都可以使用這個引擎:
ReplicatedMergeTree(/clickhouse/tables/{shard}/default/test’,’{replica}’);
4,刪除數據
alter table xbtx.xbtx_func_tb on cluster default_cluster delete where app_id=’com.sinosure.xbt’;
注意:刪除時不要操作分布式表,操作本地表
5,更新數據
alter table xbtx.xbtx_func_tb on cluster default_cluster update func_name=’公文’ where id=’gongwen’;
6,新增數據
insert into xbtx.xbtx_func_tb_all(id,func_name,app_id) values('xxxx','xxxx','xxxx');
7,刪除表
-- 刪除本地表:
drop table mytestdb.xbtx_app_log_tb on cluster default_cluster no delay;
-- 刪除分布式表:
drop table mytestdb.xbtx_app_log_tb_all on cluster default_cluster no delay;
注意: 刪除表時需要加on cluster