一、DDL
如果想按集群操作,需要借助zookeeper,在config.xml中添加配置
<distributed_ddl>
</distributed_ddl>
一个节点创建表,会同步到各个节点
CREATE TABLE db.table [ON CLUSTER cluster] (…)
添加、删除、修改列
ALTER TABLE [db].table [ON CLUSTER cluster] ADD|DROP|MODIFY COLUMN …
rename 支持*MergeTree和Distributed
rename table db.table1 to db.table2 [ON CLUSTER cluster]
truncate table db.table;不支持Distributed引擎
二、delete/update 不支持Distributed引擎
ALTER TABLE [db.]table DELETE WHERE filter_expr…
ALTER TABLE [db.]table UPDATE column1 = expr1 [, …] WHERE …
三、分区表
按时间分区:
toYYYYMM(EventDate):按月分区
toMonday(EventDate):按周分区
toDate(EventDate):按天分区
按指定列分区:
PARTITION BY cloumn_name
对分区的操作:
alter table test1 DROP PARTITION [partition] #删除分区
alter table test1 DETACH PARTITION [partition]#下线分区
alter table test1 ATTACH PARTITION [partition]#恢复分区
alter table .test1 FREEZE PARTITION [partition]#备份分区
四、数据同步
- 采用remote函数
insert into db.table select * from remote(‘目标IP’,db.table,‘user’,‘passwd’) - csv文件导入clickhouse
cat test.csv | clickhouse-client -u user --password password --query=“INSERT INTO db.table FORMAT CSV” - 同步mysql库中表
CREATE TABLE tmp ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql(‘hostip:3306’, ‘db’, ‘table’, ‘user’, ‘passwd’) ;
4) clickhouse-copier 工具
五、时间戳转换
select toUnixTimestamp(‘2018-11-25 00:00:02’) --DateTime转化为时间戳
注意:可以指定时区,例如:select toUnixTimestamp(‘2018-11-25 00:00:02’,‘Asia/Shanghai’)
select toDateTime(1543075202) --时间戳转化为DateTime
select toDateTime(‘2018-04-30 00:00:00’) --转化为DateTime的标准格式
结果:2018-04-30T00:00:00+00:00
六、函数汇总分类
1、日期类函数
2、类型转化类函数
3、字符串操作
4、条件语句
5、数学函数
6、舍入函数
7、URL操作函数
8、IP操作函数
9、表操作
10、字典操作
具体参考:https://blog.youkuaiyun.com/u012111465/article/details/85250030