Use o Tablestore SDK for Python para configurar o tempo de vida (TTL) de um índice de pesquisa. O Tablestore remove automaticamente os dados do índice após o término do período de retenção.
Pré-requisitos
Instale o Tablestore SDK for Python e inicialize um cliente.
Existe uma tabela com o número máximo de versões de dados definido como
1.
Observações de uso
Antes de gerenciar o TTL de um índice de pesquisa, desative as operações
UpdateRowna tabela para evitar inconsistências de dados entre a tabela e o índice. O TTL da tabela aplica-se a colunas de atributos individuais, enquanto o TTL do índice de pesquisa aplica-se à linha inteira. ComUpdateRow, a limpeza por TTL pode remover apenas algumas colunas da tabela e manter a linha completa no índice de pesquisa. Para atualizar dados, usePutRowe sobrescreva toda a linha.O TTL do índice de pesquisa é medido em segundos e aceita
-1ou um inteiro positivo de 32 bits. O valor-1armazena os dados permanentemente. O valor positivo máximo representa um período de retenção de aproximadamente 68 anos.Os TTLs do índice de pesquisa e da tabela são configurados independentemente, mas o TTL do índice de pesquisa deve ser menor ou igual ao TTL da tabela. Se o TTL desejado para o índice for superior ao TTL atual da tabela, aumente primeiro o TTL da tabela. Para reduzir ambos, diminua primeiramente o TTL do índice de pesquisa.
O Tablestore remove os dados expirados do índice de pesquisa uma vez por dia. Até a conclusão da próxima limpeza, as consultas ainda podem retornar dados expirados pendentes de remoção. Após a atualização do TTL da tabela ou do índice de pesquisa, o Tablestore elimina os dados que expiraram devido à alteração durante o próximo ciclo de limpeza.
Procedimento
O gerenciamento de ciclo de vida consiste em desativar as operações UpdateRow para a tabela, configurar o TTL do índice de pesquisa e, opcionalmente, configurar o TTL da tabela. A configuração do TTL da tabela nem sempre é a última operação. Defina a ordem das etapas 2 e 3 com base na restrição de TTL descrita anteriormente.
-
Desative as operações
UpdateRowpara a tabela.O exemplo a seguir desativa as operações
UpdateRowparaexample_table.table_options = TableOptions( time_to_live=None, max_version=None, max_time_deviation=None, allow_update=False, ) client.update_table( "example_table", table_options=table_options, ) -
Configure o TTL do índice de pesquisa.
Escolha uma opção conforme a existência do índice de pesquisa.
Novo índice
Defina um TTL de sete dias ao criar um índice de pesquisa.
fields = [ FieldSchema("category", FieldType.KEYWORD, index=True), FieldSchema("price", FieldType.LONG, index=True), ] index_meta = SearchIndexMeta( fields, time_to_live=7 * 24 * 60 * 60, ) client.create_search_index( "example_table", "example_index", index_meta, )Índice existente
Atualize o TTL de um índice de pesquisa existente para sete dias.
index_meta = SearchIndexMeta( fields=None, time_to_live=7 * 24 * 60 * 60, ) client.update_search_index( "example_table", "example_index", index_meta, ) -
Configure o TTL da tabela, se necessário.
O exemplo abaixo define o TTL de
example_tablecomo sete dias. Execute esta operação antes ou depois de configurar o TTL do índice de pesquisa, respeitando a restrição mencionada acima.table_options = TableOptions( time_to_live=7 * 24 * 60 * 60, max_version=None, max_time_deviation=None, ) client.update_table( "example_table", table_options=table_options, )
Após a configuração, consulte as informações da tabela e consulte as informações do índice de pesquisa para verificar ambos os TTLs.