• Clickhouse之数据删除方式 X


    什么是TTL?
      TTL的意思是Time To Live表示数据的存活时间。由于数据的价值会根据保存的时间成反比,出于存储成本的考虑通常只会保留近一年的数据。而在MergeTree (合并树)引擎中,可以通过设置TTL来轻松管理数据的存活时间,使数据的价值最大化。当然数仓的数据是不会删除的,不过会部分业务不需要旧数据,比如用户的画像数据,用户画像是按天按小时更新甚至实时更新,比较旧画像数据继续保存着没价值则需要删除。

      在ClickHouse 中,TTL可以设置值的生命周期,它既可以为整张表设置,也可以为每个列字段单独设置。表级别的 TTL 还会指定数据在磁盘和卷上自动转移的逻辑。TTL 表达式的计算结果必须是 日期(date) 或 日期时间(datetime),如果同时设置了列级别的和表级别的TTL则以先到期的为准。

    1.字段级别TTL
    当列字段中的值过期时, ClickHouse会将它们替换成数据类型的默认值。如果分区内,某一列的所有值均已过期,ClickHouse会从文件系统中删除此列。ClickHouse的INTERVAL(数据时间间隔)支持的操作有:second(秒),minute(分钟),hour(小时),day(日),week(周),month(月),quarter(季度),year(年)。

    示例:

    复制代码
    -- 创建时指定 TTL
    CREATE TABLE example_table
    (
    d DateTime,
    a Int TTL d + INTERVAL 1 day,
    b Int TTL d + INTERVAL 1 day,
    c String
    )
    ENGINE = MergeTree
    PARTITION BY toYYYYMM(d)
    ORDER BY d;
    -- 为表中已存在的列字段添加 TTL
    ALTER TABLE example_table
    MODIFY COLUMN `c` String TTL d + toIntervalDay(1)
    -- 修改列字段的 TTL
    ALTER TABLE example_table
    MODIFY COLUMN
    c String TTL d + INTERVAL 1 WEEK;
    复制代码



    2.表级别TTL
    表可以设置一个用于移除过期行的表达式,以及多个用于在磁盘或卷上自动转移数据片段的表达式。当表中的行过期时,ClickHouse 会删除所有对应的行。

    示例:event_date超过一个月的数据自动删除

    复制代码
    -- 创建时指定 TTL
    CREATE TABLE example_table
    (
    `event_date` Date,
    `uid` Int32,
    `name` String
    )
    ENGINE = AggregatingMergeTree()
    PARTITION BY event_date
    ORDER BY uid
    TTL event_date + toIntervalMonth(1)
    SETTINGS index_granularity = 128;
    -- 修改表的 TTL,event_date超过三个月的数据自动删除
    ALTER TABLE example_table
    MODIFY TTL event_date + toIntervalMonth(3);


    集群版本:
    ALTER TABLE default.example_table on cluster ck_cluster MODIFY TTL event_date + toIntervalMonth(3); // 保存三个月

  • 相关阅读:
    Rancher 中 Traefik 负载均衡 Initializing 状态
    【音视频】YUV、RGB视频像素处理
    Debian WSL 2 安装使用 Docker
    CentOS 7 切换 Java 版本到 Java 11
    阿里云 CentOS 8.2 停服后 yum / dnf 无法安装更新
    CentOS 8 Stream 报错处理 Faild to start Load Kernel Modules. Failed to insert 'ipmi_si': No such device
    System.getProperty()获取系统变量
    简单科普私钥、地址、助记词、Keystore的区别
    synchronized实现原理及锁升级过程
    H3C 策略路由原理介绍
  • 原文地址:https://www.cnblogs.com/xingxia/p/clickhouse_ttl.html
Copyright © 2020-2023  润新知