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
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Tabela de dados criada. Para mais informações, consulte Criar uma tabela de dados.
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
-
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) -
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) -
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
Referências
Use a operação ListSearchIndex para consultar todos os índices de pesquisa criados para uma tabela de dados. Para mais informações, consulte Listar índices de pesquisa.
Use a operação DescribeSearchIndex para obter a descrição de um índice de pesquisa, incluindo informações sobre campos e configurações. Para mais informações, consulte Consultar a descrição de um índice de pesquisa.
Modifique dinamicamente o esquema de um índice de pesquisa para adicionar, atualizar ou remover colunas de índice. Para mais informações, consulte Modificar dinamicamente o esquema de um índice de pesquisa.
Exclua índices de pesquisa desnecessários. Para mais informações, consulte Excluir um índice de pesquisa.