全部产品
Search
文档中心

表格存储:时序数据生命周期

更新时间:Apr 26, 2024

当要实现自动清理时序表中的历史数据时,您可以使用数据生命周期(TTL)功能有效地管理时序数据,减少数据存储空间,降低存储成本。配置TTL后,如果希望延长数据保存时间,您可以修改TTL。

注意事项

  • 数据清理后无法恢复,请谨慎操作。

    通过配置TTL清理历史数据前,如果需要备份历史数据,请通过DataWorks数据集成服务导出时序数据到OSS中存储。具体操作,请参见数据导出到OSS概述

  • 修改TTL前,您可以调用DescribeTimeseriesTable接口查看当前时序数据生命周期。

数据生命周期

时序模型中的数据包括时间线元数据和时序表数据,分别由时间线元数据表和时间线数据表存储。表格存储分别提供了时间线元数据生命周期和时序表数据生命周期用于管理相应数据。

时序表数据生命周期

时序表数据生命周期是时间线数据表的一个属性,即时序表数据的保存时间,单位为秒。当时序表数据的保留时间超过设置的TTL时,系统会自动异步清理超过TTL的数据。

例如数据表的TTL设置为86400(一天),在2016-07-21 00:00:00 UTC+8时,时序表中数据早于2016-07-20 00:00:00 UTC+8的时间线均会过期,系统会自动异步清理对应过期数据。

创建时序表时,如果未设置TTL,则系统会使用默认值-1(表示数据永不过期),您也可以自定义TTL。创建时序表后,您可以通过UpdateTimeseriesTable接口修改TTL。

超过TTL的过期数据为无效数据,即使系统还未删除数据,用户已无法查询对应数据。

  • 当调小TTL时,时序表中可能会有数据过期,系统会异步删除对应过期数据。

  • 当调大TTL时,如果系统还未删除在旧的TTL之外以前的时序表数据,且对应时序表数据在新设的TTL中,则对应时序表数据可以重新查询。

时间线元数据生命周期

时间线元数据生命周期是时间线元数据表的一个属性,即时间线元数据的保存时间,单位为秒。当时间线元数据的保留时间超过设置的TTL时,系统会自动异步清理超过TTL的时间线元数据,不会删除时序表数据。

重要

当某些时间线元数据过期,但是相应时间线数据未过期时,通过GetTimeseriesData接口指定时间线标识进行查询时仍可查询到时序表数据。

创建时序表时,如果未设置TTL,则系统会使用默认值-1(表示数据永不过期),您也可以自定义TTL。创建时序表后,您可以通过UpdateTimeseriesTable接口修改TTL。

重要

时间线元数据中有一个时间线元数据属性列(_attributes)支持进行更新,但目前仅在时间线元数据生命周期为-1(数据永不过期)时支持该属性的更新。

如果要将时间线元数据生命周期从-1修改为大于等于7天,请确认业务逻辑中不需要更新时间线元数据属性,并将时间线元数据属性是否允许更新配置为

如果要将时间线元数据属性是否允许更新配置为,则您需要同步将时间线元数据生命周期调整为-1

超过TTL的过期数据为无效数据,即使系统还未删除时间线元数据,用户已无法检索到对应时间线元数据。

  • 当调小TTL时,时间线元数据表中可能会有时间线元数据过期,系统会异步删除对应过期数据。

  • 当调大TTL时,如果系统还未删除在旧的TTL之外以前的时间线元数据,且对应时间线元数据在新设的TTL中,则对应时间线元数据可以重新检索到。

使用方式

创建时序表时,您可以配置数据生命周期。您也可以在创建时序表后修改数据生命周期。此处以创建时序表后修改数据生命周期为例介绍。您可以使用控制台、命令行工具或者SDK进行数据生命周期修改操作。

说明
  • 关于在创建数据表时进行数据生命周期配置的具体操作,请参见时序表操作

  • 通过不同使用方式进行操作时支持的功能存在差异,请以实际为准。

使用控制台

您可以使用控制台修改时间线元数据生命周期或时序表数据生命周期。

修改时序表数据生命周期

  1. 进入实例管理页面。

    1. 登录表格存储控制台

    2. 在页面上方,选择资源组和地域。

    3. 概览页面,单击实例名称或者单击实例操作实例管理

  2. 实例详情页签,单击时序表列表页签。

  3. 时序表列表页签,单击时序表名称。

  4. 基本详情页签的基本信息区域,单击数据生命周期后的image.png图标。

  5. 在弹出的悬浮框中,修改数据生命周期。

    时序表中数据的过期时间,单位为秒。取值必须大于等于86400秒(一天)或者必须为-1(数据永不过期)。

  6. 单击确定

修改时间线元数据生命周期

  1. 进入实例管理页面。

    1. 登录表格存储控制台

    2. 在页面上方,选择资源组和地域。

    3. 概览页面,单击实例名称或者单击实例操作实例管理

  2. 实例详情页签,单击时序表列表页签。

  3. 时序表列表页签,单击时序表名称。

  4. 基本详情页签的基本信息区域,单击时间线元数据生命周期后的image.png图标。

  5. 在弹出的悬浮框中,修改数据生命周期。

    时序时间线表的时间线数据存活时间,单位为秒。取值必须大于等于604800秒(即7天)或者必须为-1(数据永不过期)。

  6. 单击确定

使用命令行工具

您可以使用命令行工具修改时序表数据生命周期。

执行alter命令更新表信息。更多信息,请参见更新表

以下示例用于修改当前表的数据生命周期为86400秒(即1天)。

alter --ttl 86400 --ts

使用SDK

您可以使用SDK修改时间线元数据生命周期或时序表数据生命周期。

修改时序表数据生命周期

以下示例用于更新指定时序表的TTL为3年。

private static void updateTimeseriesTable(TimeseriesClient client) {
    // 填写时序表名称。
    String tableName = "<TIMESERIES_TABLE>";
    UpdateTimeseriesTableRequest updateTimeseriesTableRequest = new UpdateTimeseriesTableRequest(tableName);
    // 更新TTL为3年。
    updateTimeseriesTableRequest.setTimeseriesTableOptions(new TimeseriesTableOptions(86400 * 365 * 3)); 
    client.updateTimeseriesTable(updateTimeseriesTableRequest);

    DescribeTimeseriesTableResponse describeTimeseriesTableResponse = client.describeTimeseriesTable(new DescribeTimeseriesTableRequest(tableName));
    TimeseriesTableMeta tableMeta = describeTimeseriesTableResponse.getTimeseriesTableMeta();
    // 查看更新后时序表的TTL配置。
    System.out.println(tableMeta.getTimeseriesTableOptions().getTimeToLive()); 
}

修改时间线元数据生命周期

以下示例用于更新指定时序表的时间线元数据TTL为3年。

private static void updateTimeseriesMetaTableTTL(TimeseriesClient client) {
    // 填写时序表名称。
    String tableName = "<TIMESERIES_TABLE>";
    UpdateTimeseriesTableRequest updateTimeseriesTableRequest = new UpdateTimeseriesTableRequest(tableName);
    // 更新TTL为3年。
    TimeseriesMetaOptions options = new TimeseriesMetaOptions();
    options.setMetaTimeToLive(86400 * 365 * 3);
    updateTimeseriesTableRequest.setTimeseriesMetaOptions(options);
    client.updateTimeseriesTable(updateTimeseriesTableRequest);
}

常见问题

如何删除时序数据