clickhouse简单使用+函数整理
一、DDL 如果想按集群操作,需要借助zookeeper,在config.xml中添加配置 <distributed_ddl> /clickhouse/task_queue/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、字典操作 具体参考:
