Todos os produtos
Search
Central de documentação

Tablestore:Definir o TTL de um índice de pesquisa

Última atualização: Jun 30, 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 excedem esse período para reduzir o uso e os custos de armazenamento.

Pré-requisitos

Observações de uso

  • Esta restrição 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 a operação UpdateRow, o Tablestore poderá excluir algumas colunas da tabela de dados e manter a linha correspondente no índice de pesquisa, causando dessincronização.

    Para atualizar dados, use a operação PutRow e sobrescreva toda a linha.

  • O TTL do í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 valores de TTL, diminua primeiro o TTL do índice de pesquisa e depois o da tabela de dados.

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

  • Após a atualização do TTL da tabela de dados e do índice de pesquisa, o Tablestore remove quaisquer dados recém-expirados no próximo ciclo de limpeza.

Procedimento

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

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

    def disable_table_update(client):
        # Prohibit the UpdateRow operation on the data table to prevent impacts on your business. 
        table_options = TableOptions(time_to_live=None, max_version=None, max_time_deviation=None, allow_update=False)
        client.update_table('<TABLE_NAME>', table_options, None)
  2. Especifique o TTL do índice de pesquisa.

    Depois de 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.

    Especifique o TTL ao criar um índice de pesquisa

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

    def create_index_with_ttl(client):
        # The field of the Keyword type
        field_keyword = FieldSchema('Col_Keyword', FieldType.KEYWORD)
        # The field of the Long type
        field_long = FieldSchema('Col_Long', FieldType.LONG)
        fields = [field_keyword, field_long]
    
        index_meta = SearchIndexMeta(fields, time_to_live=24 * 3600 * 7)
        client.create_search_index('<TABLE_NAME>', '<SEARCH_INDEX_NAME>', index_meta)

    Especifique o TTL de um índice de pesquisa existente

    O exemplo de código a seguir mostra como definir o TTL de um índice de pesquisa existente como sete dias:

    def update_index_with_ttl(client):
        index_meta = SearchIndexMeta(fields=None, time_to_live=24 * 3600 * 7)
        client.update_search_index('<TABLE_NAME>', '<SEARCH_INDEX_NAME>', index_meta)
  3. O TTL do índice de pesquisa é independente do TTL da tabela de dados associada. Defina o TTL da tabela de dados conforme necessário.

    O exemplo de código a seguir mostra como definir o TTL de uma tabela de dados como sete dias:

    def update_table_ttl(client):
        table_options = TableOptions(time_to_live=24 * 3600 * 7, max_version=None, max_time_deviation=None)
        client.update_table('<TABLE_NAME>', table_options, None)

Perguntas frequentes

[O que fazer se a mensagem de erro [table ttl] must be bigger than or equal search index ttl for retornada ao modificar o TTL de uma tabela de dados?](t2633375.xdita#)

Referências