网站首页 > 精选文章 正文
前言
这里我们介绍ClickHouse的基本语法,使用环境是腾讯云的ClickHouse。默认情况下,ClickHouse 在进行集群纬度执行建表等 DDL 操作时需要手动添加 ON CLUSTER XXX 语法。
下面我会介绍常用的语法 [其中 launch 为我们的数据库名]
创建表
我们创建一张广告点击表作为演示案例,点击表click的创建语句
CREATE TABLE click ON CLUSTER default_cluster (
id UInt64,
product_type UInt32,
channel_type String,
agent_name String,
advertiser_id String,
aid String,
request_id String,
imei String,
idfa String,
android_id String,
oaid String,
os String,
mac String,
ip String,
ts String,
callback_url String,
data String,
expire DateTime,
create_time date
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(create_time)
PRIMARY KEY id
ORDER BY id;
建表语句生成
在ClickHouse中可以通过SHOW CREATE TABLE语法来生成建表语句,例如:
SHOW CREATE TABLE test_table
SHOW CREATE launch.click;
修改表名语句
在ClickHouse中可以通过RENAME TABLE语法来修改表名语句,例如:
RENAME TABLE table_name TO table_name_new ON CLUSTER default_cluster;
RENAME TABLE click TO click_new ON CLUSTER default_cluster;
查看表结构语句
在ClickHouse中,可以使用DESCRIBE语法来查看表的结构,例如:
DESCRIBE table_name;
DESCRIBE launch.click;
添加列
修改表结构,添加一个新列:
ALTER TABLE table_name ADD COLUMN new_column_name type;
ALTER TABLE click ON CLUSTER default_cluster
ADD COLUMN channel_id String;
字段添加备注
ALTER TABLE table_name [on cluster cluster_name]
comment COLUMN column_name "message"
ALTER TABLE click ON CLUSTER default_cluster
comment COLUMN create_time '创建时间';
删除列
删除表中的一个列:
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE click ON CLUSTER default_cluster
DROP COLUMN channel_id
修改列类型
修改某个列的数据类型:
ALTER TABLE table_name MODIFY COLUMN column_name new_type;
ALTER TABLE click ON CLUSTER default_cluster
MODIFY COLUMN create_time DateTime;
删除表语法
删除表语法格式:DROP TABLE table_name ;
DROP TABLE click ON CLUSTER default_cluster;
修改表数据
修改单条记录
修改表中指定记录的某个列的值
ALTER TABLE table_name UPDATE column_name = new_value WHERE condition;
ALTER TABLE click
UPDATE agent_name ='xm' where id = 271494392
批量修改记录
批量修改表中的多条记录:
ALTER TABLE table_name UPDATE column_name = new_value WHERE condition;
删除记录
ALTER TABLE table_name DELETE WHERE condition;
ALTER TABLE click
DELETE where id = 271494392
小数类型查询
select * from click_cost
where create_time>='2024-01-16' and create_time<'2024-01-17'
and toFloat32(cost) > 0.01
最佳实践
ClickHouse中的修改操作主要是通过重写表数据来完成的,而不是更新原始数据。这也意味着点击修改操作会带来较大的性能损失,特别是在大表上的修改会极大地影响性能。因此,尽量避免在ClickHouse上进行大量更新操作。
- 上一篇: mysql 亿级数据 在线DDL
- 下一篇: NineData:安全高效的MySQL DDL解决方案
猜你喜欢
- 2025-01-13 如何使用数据操纵语言 DML?
- 2025-01-13 MySQL中的DML、DDL、DCL到底是什么呢?
- 2025-01-13 MySQL原理简介—8.MySQL并发事务处理二
- 2025-01-13 MySQL千万级大表优化,看这一篇就忘不掉了
- 2025-01-13 数据库版本控制中间件FlyWay部署安装及使用实例
- 2025-01-13 深入解读flink sql cdc的使用以及源码分析
- 2025-01-13 NineData:安全高效的MySQL DDL解决方案
- 2025-01-13 [MySQL] SQL语句分类 DDL语句详解
- 2025-01-13 mysql 亿级数据 在线DDL
- 2025-01-13 分库分表看这一篇就够了:Sharding-Proxy
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)