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

ops/2024/12/19 17:13:42/

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/ops/143233.html

相关文章

Java——网络编程(中)—TCP通讯(下)

1 双向通讯—创建服务端 (双向通信是指通信双方中,任何一方都可为发送端,任何一方都可为接收端) (1 创建ServerSocket对象,accept()返回socket) (2 双向通讯——>也要创建键盘输入对象) (3 通过与客户端对应的Socket对象获取输入流对象…

MySQL索引事务

1.索引 索引的作用类似书籍目录,可以用于快速定位,检索数据 可以对数据库表的某列或者某几列创建索引 索引针对查询操作引入的优化手段,但生成索引也会占用更多的空间 对于插入/删除/修改频率高的表不适用索引 使用场景 数据量大,经常对这些列进行条件查询 2.查看/创建/…

Jsckson @JsonValue 注解

概述 Jackson 是一个常用的 Java 库,用于将 Java 对象转换为 JSON 表示形式,并可以反向操作。有时,我们需要以自定义的方式序列化 Java 对象。Jackson 的JsonValue 注解通过允许使用单个方法的返回值作为对象的序列化表示来实现这一点。 Jso…

【前端开发】HTML+CSS网页,可以拿来当作业(免费开源)

HTML代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content_lizhongyu"widthdevice-width, initial-scale1.0"><title>小兔鲜儿-新鲜、惠民、快捷<…

如何查询SQL Server数据库服务器的IP地址

如何查询SQL Server数据库服务器的IP地址 作为数据库管理员或开发人员&#xff0c;了解如何查询SQL Server数据库服务器的IP地址是一项重要技能。本文将介绍几种简单而有效的方法&#xff0c;帮助你轻松获取这一信息。无论你是新手还是经验丰富的专业人士&#xff0c;这些方法…

RequestContextHolder 与 HttpServletRequest 的联系

1. 什么是 RequestContextHolder&#xff1f; RequestContextHolder 是 Spring 框架 提供的一个工具类&#xff0c;用于在当前线程中存储和获取与请求相关的上下文信息。它是基于 ThreadLocal 实现的&#xff0c;能够保证每个线程独立存储和访问请求信息。 与 HttpServletReq…

【安当产品应用案例100集】032-重塑企业SaaS平台的PostgreSQL凭据管理体系

一、案例背景 在本次案例分享中&#xff0c;一家为旅行社提供SaaS服务的技术服务商&#xff0c;其依赖PostgreSQL作为其核心数据存储解决方案&#xff0c;并且在阿里云和内网环境中均部署了相关服务与数据库实例。随着业务的发展和技术团队规模的扩大&#xff0c;当前的数据库…

富士相机基本参数学习

一色彩 富士相机视频调色入门课&#xff3b;上&#xff3d;&#xff5c;胶片模拟&#xff0c;白平衡与色彩&#xff5c;全是样片哦_哔哩哔哩_bilibili 步骤&#xff1a; 1设置曝光模式&#xff1a; 自动模式下拍摄降低难度 2设置白平衡&#xff1a;自动 不满意可以设置 3色彩&…