insert

和mysql一样
insert values
insert select

update 和 delete

会改表结构,很重。
不支持事务,有可能造成数据不一致

删改原理:
拿出整个分区的数据进行删改,改完后再重新放进分区中。
改一条数据和一批数据效果一样

由于操作比较“重”,所以 Mutation语句分两步执行,同步执行的部分其实只是进行新增数据新增分区和并把旧分区打上逻辑上的失效标记。
直到触发分区合并的时候,才会删除旧数据释放磁盘空间。(和hbase一样)

删除操作

alter table t_order_smt delete where sku_id ='sku_001';

修改操作

alter table t_order_smt
update total_amount=toDecimal32(2000.00,2)
where id =102;


查询


1. WITH clause
1. FROM clause
1. SAMPLE clause
1. JOIN clause
1. PREWHERE clause
1. WHERE clause
1. GROUP BY clause
1. LIMIT BY clause
1. HAVING clause
1. SELECT clause
1. DISTINCT clause
1. LIMIT clause
1. UNION ALL clause
1. INTO OUTFILE clause
1. FORMAT clause


不支持窗口函数。
不支持自定义函数。

with rollup: 从右至左去掉维度进行小计
select id , sku_id,sum(total_amount) from t_order_mt group by id,sku_id with rollup;
image.png
with cube: 各种维度组合进行聚合
select id , sku_id,sum(total_amount) from t_order_mt group by id,sku_id with cube;
image.png
with taotals: 仅仅多了一个总计
select id , sku_id,sum(total_amount) from t_order_mt group by id,sku_id with totals;
image.png

alter操作

用于增删改查字段
与mysql一样

企业一般不增删改查字段

但有增加字段的需求呢?
提前设置好空字段
类型:选择通用类型,如string,string也能放数字

导出数据

clickhouse-client —query “select toHour(create_time) hr ,count(*) from test1.order_wide where dt=’2020-06-23’ group by hr” —format CSVWithNames> ~/rs1.csv

支持的数据格式: https://clickhouse.tech/docs/v19.14/en/interfaces/formats/