网站首页 > 博客文章 正文
前言
这里我们介绍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上进行大量更新操作。
猜你喜欢
- 2024-10-23 大数据ClickHouse进阶(二十二):ClickHouse优化
- 2024-10-23 大数据ClickHouse进阶(二十六):ClickHouse数据备份
- 2024-10-23 Clickhouse入门(clickhouse深度揭秘)
- 2024-10-23 clickhouse的简单优化(clickhouse uuid)
- 2024-10-23 聊聊clickhouse分布式表的操作(clickhouse 分布表)
- 2024-10-23 1、ClickHouse介绍(clickhouse作用)
- 2024-10-23 ClickHouse简记(clickhouse parts)
- 2024-10-23 Clickhouse数据复制的原理与实践(clickhouse数据导出)
- 2024-10-23 大数据ClickHouse(五):数据库引擎介绍与实例演示
- 2024-10-23 大数据ClickHouse(十六):ClickHouse SQL语法之DML 操作
你 发表评论:
欢迎- 最近发表
-
- 比GoPro 13更强的大疆Action 5 Pro,到底强在哪里?
- 信号和槽(信号和槽的实现原理)
- 在响应式项目中连接设计与开发(请简述实现响应式设计包括哪些技术点)
- 【C#】委托、Action、Func 和 Event 之间的关系
- 如何使用JavaScript实现Prompt弹窗?
- 谷歌Magic Actions功能曝光:AI革新安卓16通知交互
- 基于目标TPS的性能测试,如何通过手动设置场景进行测试?
- IOS基础学习之输出口和动作(io口输入输出实验总结及体会)
- 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- Android学习之Touch事件的处理(android触摸事件实例)
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)