clickhouse基本语法

DDL(DDL:数据定义语言,通常是数据库管理系统的一部分,用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略。 )
包括命令:

  1. REATE(建表),
  2. ALTER(添加),
  3. GRANT(grant 操作 MySQL存储过程、函数权限,授权命令),
  4. REVOKE(撤回),
  5. DROP(删除),
  6. **TRUNCATE(**删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作。TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。)
  7. 当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.

一、Truncate语法
[ { database_name.[ schema_name ]. | schema_name . } ]
table_name
[ ; ]

二、参数

database_name

数据库的名称。

schema_name

表所属架构的名称。

table_name

要截断的表的名称,或要删除其全部行的表的名称。

<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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值