赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. 多元索引
  6. 索引管理
  7. 生命周期管理

生命周期管理

  • 索引管理
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

数据生命周期(Time To Live,简称TTL)是多元索引的一个属性,即数据的保存时间。多元索引会自动清理超过保存时间的数据,减少用户的数据存储空间,降低存储成本。

注意事项

  • 使用生命周期管理功能,必须禁用数据表的UpdateRow更新写入功能,避免一些语义上的问题:

    由于数据表TTL是属性列级别生效的,而多元索引TTL是整行生效的,如果存在UpdateRow写入操作,当系统清理数据表中数据时,数据表中部分字段值已删除而部分字段值未删除,但是多元索引中整行数据均未删除,则会造成数据表和多元索引中的数据不一致。

    如果业务有UpdateRow更新写入操作,请查看是否能改为PutRow覆盖写入操作。

  • 多元索引的TTL取值范围为-1或者int32的正整数(单位为秒),其中-1表示永久存储,int32最大值换算为年大约为68年。

  • 多元索引的TTL和数据表的TTL是独立的,多元索引的TTL值必须小于或等于数据表的TTL值。当需要同时调小多元索引TTL和数据表TTL时,请先调整多元索引TTL,再调整数据表TTL。

  • 多元索引每天会自动清理已过期的数据,过期数据的清理粒度为“天”,因此您仍然可以查询到某一时刻已过期但是还未及时清理的数据,多元索引会在下一次清理过期数据时自动清理这些过期数据。

  • 数据表和多元索引的TTL更新后,系统会在下一次清理过期数据时自动清理数据表和多元索引中的存量过期数据。

使用方式

通过控制台或者SDK设置多元索引生命周期。使用多元索引生命周期,您必须始终保持数据表UpdateRow更新写入操作为禁止状态。

使用控制台

  1. 禁用数据表UpdateRow更新写入操作。

    1. 在数据表的基本详情页签,单击修改表属性。

    2. 在修改表属性对话框,设置是否允许更新为否并选中风险提示信息,然后单击确定。fig_tableupdate

  2. 设置多元索引生命周期。

    禁用数据表UpdateRow更新写入操作后,您可以在创建多元索引时指定TTL或为已有多元索引指定TTL。

    创建多元索引时指定TTL

    1. 在数据表的索引管理页签,单击创建多元索引。

    2. 在创建索引对话框,设置索引名和数据生命周期和Schema生成方式。

    3. 打开高级选项开关后,设置数据生命周期,单击确定。

      image

    为已有多元索引指定TTL

    1. 在数据表的索引管理页签,单击目标多元索引操作列的索引详情。fig_indexdetailsenter

    2. 在索引详情对话框,单击修改,修改数据生命周期,然后单击修改ttl。

      image

  3. 多元索引的TTL和数据表的TTL是独立的。如果需要使用数据表TTL,请为数据表设置TTL。

    1. 在数据表的基本详情页签中基本信息区域,单击修改表属性。

    2. 在修改表属性对话框,根据需要设置数据生命周期,然后单击确定。fig_ttltablemodify

使用SDK

您可以通过Java SDK或者Go SDK使用生命周期管理。此处以Java SDK为例介绍数据生命周期的管理。

  1. 禁用数据表UpdateRow更新写入操作。

    以下示例用于禁用数据表的UpdateRow更新写入操作。

    public static void disableTableUpdate(SyncClient client) {
        UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
        TableOptions options = new TableOptions();
        // 禁用数据表UpdateRow更新写入操作,请确保数据表无UpdateRow写入操作,避免影响业务。
        options.setAllowUpdate(false);
        updateTableRequest.setTableOptionsForUpdate(options);
        client.updateTable(updateTableRequest);
    }
  2. 设置多元索引生命周期。

    禁用数据表UpdateRow更新写入操作后,您可以在创建多元索引时指定TTL或者为已有多元索引指定TTL。

    创建多元索引时指定TTL

    以下示例用于创建一个多元索引,多元索引包含Col_Keyword和Col_Long两列,类型分别设置为字符串(String)和整型(Long)。同时指定多元索引生命周期为7天。

    // 请使用5.12.0及以上版本的Java SDK。
    public static void createIndexWithTTL(SyncClient client) {
        int days = 7;
        CreateSearchIndexRequest createRequest = new CreateSearchIndexRequest();
        //设置数据表名称。
        createRequest.setTableName("<TABLE_NAME>");
        //设置多元索引名称。
        createRequest.setIndexName("<SEARCH_INDEX_NAME>");
        IndexSchema indexSchema = new IndexSchema();
        indexSchema.setFieldSchemas(Arrays.asList(
                //设置字段名和类型。
                new FieldSchema("Col_Keyword", FieldType.KEYWORD), 
                new FieldSchema("Col_Long", FieldType.LONG)));
        createRequest.setIndexSchema(indexSchema);
        //设置多元索引TTL。
        createRequest.setTimeToLiveInDays(days);
        //调用client创建多元索引。
        client.createSearchIndex(createRequest);
    }

    为已有多元索引指定TTL

    以下示例用于指定已有多元索引的生命周期为7天。

    // 请使用5.12.0及以上版本的Java SDK。
    public static void updateIndexWithTTL(SyncClient client) {
        int days = 7;
        UpdateSearchIndexRequest updateSearchIndexRequest = new UpdateSearchIndexRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>");
        // 更新多元索引TTL。
        updateSearchIndexRequest.setTimeToLiveInDays(days);
        client.updateSearchIndex(updateSearchIndexRequest);
    }
  3. 多元索引的TTL和数据表的TTL是独立的。如果需要使用数据表TTL,请为数据表设置TTL。

    以下示例用于指定数据表的生命周期为7天。

    public static void updateTableTTL(SyncClient client) {
        int days = 7;
        UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
        TableOptions options = new TableOptions();
        options.setTimeToLiveInDays(days);
        updateTableRequest.setTableOptionsForUpdate(options);
        client.updateTable(updateTableRequest);
    }

相关文章

创建多元索引 2025-04-22 14:42

通过控制台、命令行或SDK您可以为某一个表创建一个或多个多元索引,然后使用多元索引对表中的数据进行查询和简单分析。 最佳使用方式 请根据实

列出多元索引列表 2025-04-22 14:42

创建多元索引后,您可以查询某个数据表关联的所有多元索引的列表信息。 接口 列出多元索引列表的接口为ListSearchInde

查询多元索引描述信息 2025-04-22 14:42

创建多元索引后,您可以查询多元索引的描述信息,例如多元索引的字段信息、索引预排序等。 接口 查询多元索引描述信息的接口为Des

删除多元索引 2025-04-22 14:42

如果不再需要使用多元索引,您可以删除数据表下的指定多元索引。 注意事项 多元索引删除后不可恢复,请谨慎操作。 如果需要删除的多元索引

生命周期管理 2025-04-22 14:42

数据生命周期(Time To Live,简称TTL)是多元索引的一个属性,即数据的保存时间。多元索引会自动清理超过保存时间的数据,减少用户的数据存储空间,降低存储成本。

动态修改schema 2025-04-22 14:42

如果由于业务变更、性能优化等情况需要在多元索引中新增、更新或者删除索引列以及修改多元索引的路由键和预排序方式,您可以通过动态修改多元索引的schema实现。动态修改schema操作包括为源索引创建灰度索引并修改多元索引schema、等待表数据全部同步到灰度索引、设置权重进行A/B测试、交换源索引和灰

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号