[ClickHouse 运维系列] 数据 TTL 学习笔记整理

server/2024/12/16 9:06:13/

clickhouseTTL">一、clickhouse TTL 

ClickHouse的MergeTree引擎支持数据生命周期管理,即TTL(Time To Live)。TTL可以通过设置列字段或整张表的过期时间来实现。列字段的TTL会在时间到期时删除该列数据,而表级别的TTL会删除整张表的数据。如果同时设置了列级别和表级别的TTL,那么先到期的设置将被优先执行。TTL的设置依赖于日期或时间类型的字段,通过INTERVAL操作来指定数据的存活时间。

  • ClickHouse中分为表级TTL和列级TTL, 表级TTL就是表中的某些行数据到期了,会自动删除;列级TTL则是对表中的某些字段设置过期时间,一旦过期,表中的该字段则会变成0。
  • 只谈表级TTL,因为列级TTL基本很少用,用的时候百度下就可以了。
  • 涉及判断的字段,下面语句的create_time, 必须是 Date 或者 Datetime 类型,推荐使用分区的日期字段。
  • 建表时,指定表级TTL, 下面语句中,说明只保留create_time值是1月内的数据。
  • 使用过期时间的单位:SECOND、MINUTE、MINUTE、DAY、WEEK、MONTH、QUARTER YEAR

二、验证测试

[root@prod-ck-01 ~]# clickhouse-client --host 10.110.5.135 --port 9000 --user default --password 'xxx!' -m

ClickHouse client version 22.9.4.32 (official build).

Connecting to 10.110.5.135:9000 as user default.

Connected to ClickHouse server version 22.9.4 revision 54460.

Warnings:

 * Some obsolete setting is changed. Check 'select * from system.settings where changed' and read the changelog.

prod-ck-01 :) CREATE TABLE ckdb.student(

                  id UInt32,

                  stu_id String,

                  total_score Decimal(16,2),

                  create_time Datetime

              ) ENGINE = MergeTree

              PARTITION BY toYYYYMMDD(create_time)

              PRIMARY KEY (id)

              ORDER BY (id, stu_id)

              TTL create_time + INTERVAL 1 MONTH DELETE;

               

CREATE TABLE ckdb.student

(

    `id` UInt32,

    `stu_id` String,

    `total_score` Decimal(16, 2),

    `create_time` Datetime

)

ENGINE = MergeTree

PARTITION BY toYYYYMMDD(create_time)

PRIMARY KEY id

ORDER BY (id, stu_id)

TTL create_time + toIntervalMonth(1)

Query id: dcfbc78f-9d7a-47fc-a52e-4abf7bbd0149

Ok.

0 rows in set. Elapsed: 0.014 sec.

prod-ck-01 :) INSERT INTO ckdb.student VALUES

              (1, 'S001', 95.5, '2024-03-01 10:00:00'),

              (2, 'S002', 87.0, '2024-04-01 10:00:00'),

              (3, 'S003', 78.0, '2024-05-01 10:00:00'),

              (4, 'S004', 88.5, '2024-06-01 10:00:00'),

              (5, 'S005', 92.3, '2024-07-01 10:00:00');

               

INSERT INTO ckdb.student FORMAT Values

Query id: 14238ade-d4c1-45ff-9108-2ff0c7644c64

Ok.

5 rows in set. Elapsed: 0.026 sec.

prod-ck-01 :) SELECT * FROM ckdb.student;

               

SELECT *

FROM ckdb.student

Query id: 6e83b672-834b-4274-a899-9f0db6007a32

┌─id─┬─stu_id─┬─total_score─┬─────────create_time─┐

│  3 │ S003   │          78 │ 2024-05-01 10:00:00 │

└────┴────────┴─────────────┴─────────────────────┘

┌─id─┬─stu_id─┬─total_score─┬─────────create_time─┐

│  5 │ S005   │        92.3 │ 2024-07-01 10:00:00 │

└────┴────────┴─────────────┴─────────────────────┘

┌─id─┬─stu_id─┬─total_score─┬─────────create_time─┐

│  4 │ S004   │        88.5 │ 2024-06-01 10:00:00 │

└────┴────────┴─────────────┴─────────────────────┘

3 rows in set. Elapsed: 0.009 sec.

prod-ck-01 :) INSERT INTO ckdb.student VALUES

              (6, 'S006', 85.0, '2022-01-01 10:00:00'),

              (7, 'S007', 90.0, '2022-02-01 10:00:00');

               

INSERT INTO ckdb.student FORMAT Values

Query id: 7386f602-849f-42f7-a347-b733062fa7aa

Ok.

2 rows in set. Elapsed: 0.011 sec.

prod-ck-01 :) SELECT * FROM ckdb.student;

SELECT *

FROM ckdb.student

Query id: 30672af4-ef29-4bf7-814f-ba32406d34b1

┌─id─┬─stu_id─┬─total_score─┬─────────create_time─┐

│  5 │ S005   │        92.3 │ 2024-07-01 10:00:00 │

└────┴────────┴─────────────┴─────────────────────┘

┌─id─┬─stu_id─┬─total_score─┬─────────create_time─┐

│  3 │ S003   │          78 │ 2024-05-01 10:00:00 │

└────┴────────┴─────────────┴─────────────────────┘

┌─id─┬─stu_id─┬─total_score─┬─────────create_time─┐

│  4 │ S004   │        88.5 │ 2024-06-01 10:00:00 │

└────┴────────┴─────────────┴─────────────────────┘

3 rows in set. Elapsed: 0.009 sec.


http://www.ppmy.cn/server/150584.html

相关文章

树控件、下拉框、文本框常用测试用例

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、控件的测试外观操作 1)项目中的所有树是否风格一致 2)树结构的默认状态是怎样的。比如默认树是否是展开,是展开几级&#…

在 Ubuntu 下通过 Docker 部署 Samba 服务器

Samba 是一个开源软件套件,允许在 Linux 和 Windows 之间共享文件和打印机。它实现了 SMB/CIFS 协议,使得不同操作系统之间的互操作性变得简单高效。Docker 是一个流行的容器化平台,可以快速打包、分发和管理应用程序。通过 Docker 部署 Samb…

米哈游C++开发精选60道面试题及参考答案

C++ 面向对象的三个特征 封装是把数据和操作数据的函数捆绑在一起,并且对数据的访问进行限制。这样做的好处是可以隐藏对象的内部实现细节,只暴露必要的接口给外部。例如,在一个银行账户类中,账户余额这个数据成员是被封装起来的,外部不能直接访问和修改,而是通过存款、取…

zookeeper 使用 简介 curator 的使用

自定义 RPC 注册中心选型 新时代的 RPC 技术已经不单单的是满足于简单的远程服务调用,也不满足仅仅是对协议,序列化,网络通讯,STUB的这系列的技术的封装和优化。现在的新的技术也会对注册中心,负载均衡的封装,引入了 SOA 的相关架构,例如 GRPC。引入 nameming 的 provi…

2024告别培训班 数通、安全、云计算、云服务、存储、软考等1000G资源分享

大类有:软考初级 软考中级 软考高级 华为认证 华三认证: 软考初级: 信息处理技术员 程序员 网络管理员 软考中级: 信息安全工程师 信息系统监理师 信息系统管理工程师 嵌入式系统设计时 数据库系统工程师 电子商务设…

快速进行tmux及vim配置,打造终端IDE

代理配置 IP"192.168.X.X" PORT"XX" export http_proxy"http://$IP:$PORT" export https_proxy"http://$IP:$PORT"关于tmux部分的快速配置使用 yum install -y tmux git config --global http.sslverify false git clone https://gi…

设置 Git 凭据缓存(针对 HTTPS)

1. 启用凭据缓存 git config --global credential.helper cache默认缓存时间为 15 分钟,可以设置更长时间(例如 1 小时,3600 秒): git config --global credential.helper cache --timeout36002. 使用凭据存储&#…

如何在Android设备上复制整个目录到另一个位置?

在Android设备上复制整个目录到另一个位置,通常需要通过adb工具(Android Debug Bridge)来进行操作,因为它提供了文件系统级别的访问权限。以下是步骤: 打开命令行终端:首先,你需要连接你的Andro…