Utilice Tablestore SDK for Python para configurar el tiempo de vida (TTL) de un índice de búsqueda. Tablestore elimina automáticamente los datos del índice una vez que expira su periodo de retención.
Requisitos previos
Instale Tablestore SDK for Python e inicialice un cliente.
Debe existir una tabla y su número máximo de versiones de datos debe estar establecido en
1.
Notas de uso
Antes de gestionar el TTL de un índice de búsqueda, deshabilite las operaciones
UpdateRowen la tabla para evitar inconsistencias de datos entre la tabla y el índice de búsqueda. El TTL de una tabla se aplica a columnas de atributos individuales, mientras que el TTL de un índice de búsqueda se aplica a toda la fila. ConUpdateRow, la limpieza por TTL podría eliminar solo algunas columnas de la tabla pero conservar la fila completa en el índice de búsqueda. Para actualizar datos, utilicePutRowy sobrescriba la fila completa.El TTL de un índice de búsqueda se mide en segundos y acepta
-1o un entero positivo de 32 bits. Un valor de-1almacena los datos de forma permanente. El valor positivo máximo representa un periodo de retención de aproximadamente 68 años.El TTL del índice de búsqueda y el TTL de la tabla se configuran de manera independiente, pero el TTL del índice de búsqueda debe ser menor o igual al TTL de la tabla. Si el TTL deseado para el índice de búsqueda es mayor que el TTL actual de la tabla, aumente primero el TTL de la tabla. Si reduce ambos valores de TTL, disminuya primero el TTL del índice de búsqueda.
Tablestore elimina los datos vencidos del índice de búsqueda una vez al día. Hasta que finalice la siguiente limpieza, las consultas podrían devolver datos vencidos que aún no se han eliminado. Después de actualizar el TTL de una tabla o de un índice de búsqueda, Tablestore elimina los datos que venzan debido al cambio durante el siguiente ciclo de limpieza.
Procedimiento
La gestión del ciclo de vida consiste en deshabilitar las operaciones UpdateRow para la tabla, configurar el TTL del índice de búsqueda y, opcionalmente, configurar el TTL de la tabla. La configuración del TTL de la tabla no siempre es la última operación. Determine el orden de los pasos 2 y 3 según la restricción de TTL descrita anteriormente.
-
Deshabilite las operaciones
UpdateRowpara la tabla.A continuación se muestra un ejemplo que deshabilita las operaciones
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 el TTL del índice de búsqueda.
Elija una opción según si el índice de búsqueda ya existe.
Índice nuevo
Establezca un TTL de siete días al crear un índice de búsqueda.
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
Actualice el TTL de un índice de búsqueda existente a siete días.
index_meta = SearchIndexMeta( fields=None, time_to_live=7 * 24 * 60 * 60, ) client.update_search_index( "example_table", "example_index", index_meta, ) -
Configure el TTL de la tabla si es necesario.
El siguiente ejemplo establece el TTL de
example_tableen siete días. Ejecute esta operación antes o después de configurar el TTL del índice de búsqueda, según la restricción descrita anteriormente.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, )
Después de la configuración, utilice query table information y query search index information para comprobar ambos valores de TTL.