网站首页 > 博客文章 正文
ClickHOuse笔记
bin/ ===> /usr/bin/
conf/ ===> /etc/clickhouse-server/
lib/ ===> /var/lib/clickhouse
log/ ====> /var/log/clickhouse
二、建表语句
create table t_order_mt(
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
)engine=MergeTree
partition by to YYYYMMDD(create_time) --分区
primary key(id) -- 主键
order by(id,sku_id); --排序
insert into t_order_mt values
(102,'sku_001',1000.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 11:00:00'),
(102,'sku_004',2500.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 13:00:00'),
(102,'sku_002',12000.00,'2020-06-02 12:00:00'),
(102,'sku_002',600.00,'2020-06-01 12:00:00');
三、表引擎
4.4 MergeTree
4.4.1 partition by 分区(可选)
》作用
分区的目的主要是降低扫描的范围,优化查询速度
》如果不填
只会使用一个分区。
》分区目录
MergeTree 是以列文件+索引文件+表定义文件组成的,但是如果设定了分区那些这些就会保存到不同的分区目录中。
- 并行
- 分区后,面对涉及跨分区的查询统计,ClickHouse会以分区为单位并行处理。
- 2.数据写入与分区合并
- 4、文件的作用
- bin文件:数据文件
- mrk文件:标记文件
- 标记文件在idx索引文件和bin数据文件之间起到了桥梁作用。
- 以mrk2结尾的文件,表示该表启用了自适应索引间隔。
- primary.idx文件:主键索引文件,用于加快查询效率。
- minmax_create_time.idx:分区键的最大小值。
- checksums.txt:校验文件,用于校验各个文件的正确性。存放各个文件的size以及hash值。
- 5、分区 /var/lib/clickhouse/data/default/t_order_mt
- 日期类分区键
- 分区键为日期类型,或者可以转化成日期类型。
- 其他类型分区键
- String、Float类型等,通过128位的Hash算法取其Hash值作为分区ID。
6、手动合并分区命令:optimize table t_order_mt final;
按照分区合并表:optimize table t_order_mt partition '20200621' final;
二级索引
create table t_order_mt2(
id UInt32,
sku_id String,
total_amount decimal(16,2),
create_time Datetime,
INDEX a total_amount TYPE minmax GRANULARITY 5
)engine = MergeTree
partition by toYYYYMMDD(create_time)
primary key(id)
order by (id,sku_id)
其中GRANULARITY N是设定二级索引对于一级索引粒度的粒度。
1、学习clickhouse数据类型
2、了解clickhouse表引擎
3、MergeTree引擎的了解学习主键和order by 还有分区的学习
列级别TTL
创建测试表
create table t_order_mt3(
id UInt32,
sku_id String,
total_amount Decimal(16,2) TTL create_time+interval 10 SECOND,
create_time Datetime
)engine = MergeTree
partition by toYYYYMMDD(create_time)
primary key(id)
order by(id,sku_id);
insert into t_order_mt3 values
(106,'sku_001',1000.00,'2022-10-12 11:10:00'),
(107,'sku_002',2000.00,'2022-10-12 11:20:00'),
(108,'sku_003',3000.00,'2022-10-12 11:30:00'),
(110,'sku_005',600.00,'2022-10-12 11:53:00');
alter table t_order_mt3 MODIFY TTL create_time+INTERVAL 10 SECOND;
create table t_order_rmt(
id UInt32,
sku_id String,
total_amount Decimal(16,2) TTL create_time+interval 10 SECOND,
create_time Datetime
)engine =ReplacingMergeTree(create_time)
partition by toYYYYMMDD(create_time)
primary key(id)
order by(id,sku_id);
insert into t_order_rmt values
(101,'sku_001',1000.00,'2022-10-12 11:10:00'),
(102,'sku_002',2000.00,'2022-10-12 11:20:00'),
(104,'sku_004',3000.00,'2022-10-12 11:30:00'),
(107,'sku_005',600.00,'2022-10-12 11:53:00'),
(108,'sku_005',600.00,'2022-10-12 11:53:00'),
(103,'sku_005',600.00,'2022-10-12 11:53:00'),
(1010,'sku_005',600.00,'2022-10-12 11:53:00'),
(106,'sku_005',600.00,'2022-10-12 11:53:00'),
(109,'sku_005',600.00,'2022-10-12 11:53:00'),
(108,'sku_005',600.00,'2022-10-12 11:53:00');
--- SummingMergeTree引擎
create table t_order_smt(
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
)engine=SummingMergeTree(total_amount)
partition by toYYYYMMDD(create_time)
primary key(id)
order by (id,sku_id);
insert into t_order_smt values
(101,'sku_001',1000.00,'2022-10-12 12:00:00'),
(101,'sku_002',2000.00,'2022-10-12 11:00:00'),
(101,'sku_004',2500.00,'2022-10-12 12:00:00'),
(101,'sku_002',2000.00,'2022-10-12 13:00:00'),
(101,'sku_002',12000.00,'2022-10-12 13:00:00'),
(101,'sku_002',600.00,'2022-10-12 12:00:00');
--clickhouse删除操作
alter table t_order_smt delete where sku_id = 'sku_001';
--修改操作
alter table t_order_smt update total_amount=toDecimal32(2000.00,2) where i
insert into t_order_mt values
(101,'sku_001',1000.00,'2022-10-12 15:00:00'),
(101,'sku_002',1000.00,'2022-10-12 15:00:00'),
(103,'sku_004',1000.00,'2022-10-12 15:00:00'),
(104,'sku_002',1000.00,'2022-10-12 15:00:00'),
(105,'sku_003',1000.00,'2022-10-12 15:00:00'),
(106,'sku_001',1000.00,'2022-10-12 15:00:00'),
(107,'sku_002',1000.00,'2022-10-12 15:00:00'),
(108,'sku_004',1000.00,'2022-10-12 15:00:00'),
(109,'sku_002',1000.00,'2022-10-12 15:00:00'),
(110,'sku_003',1000.00,'2022-10-12 15:00:00'),
(111,'sku_005',1000.00,'2022-10-12 15:00:00');
---新增字段
alter table tableName add column newcolname String after col1;
-- 修改字段类型
alter table tableName modify column newcolname String;
-- 删除字段
alter table tableName drop column newcolname;
-- 导出数据
clickhouse-client -- query "select * from t_order_mt where create_time='2022-10-12 12:00:00'" --fomrmat C5WrthNames>/opt/module/data/rs1.csv
猜你喜欢
- 2024-10-17 Uber如何使用ClickHouse建立日志分析平台?
- 2024-10-17 ClickHouse内核分析-MergeTree的存储结构和查询加速
- 2024-10-17 clickhouse ----入门(clickhouse-server)
- 2024-10-17 ClickHouse 查询优化(clickhouse join优化)
- 2024-10-17 clickhouse的技术文档--后面有安装文档
- 2024-10-17 使用Canal实现ClickHouse实时同步MySQL数据
- 2024-10-17 性能提高15倍!只是把MySQL换成了ClickHouse
- 2024-10-17 大数据ClickHouse进阶(十八):数据字典类型
- 2024-10-17 Clickhouse单机部署(clickhouse django)
- 2024-10-17 Clickhouse系列-第二节-基本原理(clickhouse ui)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)