Todos os produtos
Search
Central de documentação

Tablestore:Lifecycle management

Última atualização: Jul 03, 2026

O tempo de vida (TTL) é um atributo do índice de pesquisa que define o período de retenção de dados. O Tablestore exclui automaticamente os dados que ultrapassam esse período para reduzir o uso e os custos de armazenamento.

Observações de uso

Para usar o recurso de gerenciamento de ciclo de vida, desabilite a operação de escrita UpdateRow na tabela de dados.

  • Essa exigência evita inconsistências de dados entre a tabela de dados e o índice de pesquisa.

    O TTL da tabela de dados aplica-se por coluna de atributo, enquanto o TTL do índice de pesquisa aplica-se à linha inteira. Se você usar uma operação UpdateRow, o Tablestore poderá excluir algumas colunas da tabela de dados enquanto a linha correspondente permanece no índice de pesquisa, causando dessincronização.

    Caso precise atualizar dados, use a operação PutRow para sobrescrever toda a linha.

  • O TTL de um índice de pesquisa, especificado em segundos, pode ser -1 ou um inteiro positivo de 32 bits. O valor -1 indica armazenamento permanente dos dados. O valor máximo corresponde a aproximadamente 68 anos.

  • O TTL do índice de pesquisa é independente do TTL da tabela de dados. O valor do TTL do índice de pesquisa deve ser menor ou igual ao valor do TTL da tabela de dados. Ao reduzir ambos os TTLs, diminua primeiro o TTL do índice de pesquisa e depois o TTL da tabela de dados.

  • O Tablestore limpa diariamente os dados expirados dos índices de pesquisa. É possível consultar dados expirados até que eles sejam removidos durante esse processo de limpeza.

  • Após atualizar o TTL de uma tabela de dados e de um índice de pesquisa, o Tablestore remove quaisquer dados recém-expirados no próximo ciclo de limpeza.

Procedimento

Defina o tempo de vida (TTL) de um índice de pesquisa pelo console ou por um SDK. A operação UpdateRow deve permanecer desabilitada na tabela de dados para usar este recurso.

Console

  1. Desabilite a operação de escrita UpdateRow na tabela de dados.

    1. Na aba Basic Information da tabela de dados, clique em Modify Attributes.

    2. Na caixa de diálogo Modify Attributes, defina No como No, marque a caixa de seleção de notificação de risco e clique em OK.

  2. Configure o tempo de vida (TTL) do índice de pesquisa.

    Depois de desabilitar a operação UpdateRow na tabela de dados, defina o TTL em um índice de pesquisa novo ou existente.

    Novo índice

    1. Na aba Indexes da tabela de dados, clique em Create Search Index.

    2. Na caixa de diálogo Create Index, defina o nome do índice e o método de geração de esquema.

    3. Ative a chave Advanced Settings, configure o Time to Live e clique em OK.

      Defina o Time to Live como -1 para evitar que os dados expirem.

    Índice existente

    1. Na aba Indexes da tabela de dados, localize o índice de pesquisa desejado e clique em Index Details na coluna Actions.

    2. Na caixa de diálogo Index Details, clique em Modify, atualize o valor de Time to Live e clique em Modify.

      O valor de Time to Live está em segundos. O mínimo é 86.400 (um dia). Também é possível defini-lo como -1 para evitar que os dados expirem. O TTL do índice de pesquisa não deve exceder o TTL da tabela de dados.

  3. Para expirar dados da própria tabela de dados, configure o TTL dela separadamente.

    1. Na aba Basic Information da tabela de dados, na seção Description, clique em Modify Attributes.

    2. Na caixa de diálogo Modify Attributes, defina o tempo de vida conforme necessário e clique em OK.

SDK

Use o Java SDK ou o Go SDK para gerenciar o ciclo de vida dos dados. O exemplo a seguir usa o Java SDK.

  1. Proíba a operação UpdateRow em uma tabela de dados.

    O código de exemplo a seguir demonstra como proibir a operação UpdateRow em uma tabela de dados:

    public static void disableTableUpdate(SyncClient client) {
        UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
        TableOptions options = new TableOptions();
        // Prohibit the UpdateRow operation on a data table to prevent impacts on your business. 
        options.setAllowUpdate(false);
        updateTableRequest.setTableOptionsForUpdate(options);
        client.updateTable(updateTableRequest);
    }
  2. Especifique o TTL do índice de pesquisa.

    Após proibir a operação UpdateRow na tabela de dados, especifique o TTL para um índice de pesquisa existente ou durante a criação de um novo índice.

    Especificar o TTL ao criar um índice de pesquisa

    O código de exemplo a seguir mostra como criar um índice de pesquisa com o TTL especificado. Neste exemplo, o índice de pesquisa consiste nas seguintes colunas: Col_Keyword do tipo String e Col_Long do tipo Long. O TTL do índice de pesquisa é de sete dias.

    // Use Tablestore SDK for Java V5.12.0 or later. 
    public static void createIndexWithTTL(SyncClient client) {
        int days = 7;
        CreateSearchIndexRequest createRequest = new CreateSearchIndexRequest();
        // Specify the name of the data table. 
        createRequest.setTableName("<TABLE_NAME>");
        // Specify the name of the search index. 
        createRequest.setIndexName("<SEARCH_INDEX_NAME>");
        IndexSchema indexSchema = new IndexSchema();
        indexSchema.setFieldSchemas(Arrays.asList(
                // Specify the names and types of the fields. 
                new FieldSchema("Col_Keyword", FieldType.KEYWORD), 
                new FieldSchema("Col_Long", FieldType.LONG)));
        createRequest.setIndexSchema(indexSchema);
        // Specify the TTL for the search index. 
        createRequest.setTimeToLiveInDays(days);
        // Create the search index. 
        client.createSearchIndex(createRequest);
    }

    Alterar o TTL de um índice de pesquisa existente

    O código de exemplo a seguir demonstra como definir o TTL de um índice de pesquisa existente para 7 dias:

    // Use Tablestore SDK for Java V5.12.0 or later. 
    public static void updateIndexWithTTL(SyncClient client) {
        int days = 7;
        UpdateSearchIndexRequest updateSearchIndexRequest = new UpdateSearchIndexRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>");
        // Change the TTL of a search index. 
        updateSearchIndexRequest.setTimeToLiveInDays(days);
        client.updateSearchIndex(updateSearchIndexRequest);
    }
  3. O TTL da tabela de dados é independente do TTL do índice de pesquisa criado para ela. Especifique o TTL diretamente na tabela de dados.

    O código de exemplo a seguir ilustra como definir o TTL de uma tabela de dados para 7 dias:

    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);
    }