Todos los productos
Search
Centro de documentos

Tablestore:Configurar el TTL de un índice de búsqueda

Última actualización: Sep 08, 2026

Configure el tiempo de vida (TTL) de un índice de búsqueda con Tablestore SDK for Java. Tablestore elimina automáticamente los datos del índice cuando expira su periodo de retención.

Requisitos previos

Antes de empezar, asegúrese de que cuenta con lo siguiente:

  • Tablestore SDK for Java 5.12.0 o una versión posterior instalada y un cliente inicializado

  • Una tabla existente con un máximo de una versión de datos

Notas de uso

  • Antes de usar la gestión del ciclo de vida del índice de búsqueda, deshabilite las operaciones UpdateRow en 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. Con UpdateRow, la limpieza por TTL podría eliminar solo algunas columnas de la tabla y conservar la fila completa en el índice de búsqueda.

    Para actualizar datos, use PutRow y sobrescriba la fila completa.

  • El TTL de un índice de búsqueda se mide en segundos y acepta -1 o un entero positivo de 32 bits. El valor -1 almacena 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 que el TTL de la tabla. Si el TTL objetivo del índice de búsqueda es mayor que el TTL actual de la tabla, aumente primero el TTL de la tabla. Si va a reducir ambos valores de TTL, reduzca primero el del índice de búsqueda.

  • Tablestore elimina los datos caducados del índice de búsqueda una vez al día. Hasta que finalice la siguiente limpieza, las consultas podrían seguir devolviendo datos caducados 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 caduquen por este cambio durante el siguiente ciclo de limpieza.

Procedimiento

La gestión del ciclo de vida consiste en deshabilitar las actualizaciones UpdateRow de la tabla, configurar el TTL del índice de búsqueda y, de forma opcional, configurar el TTL de la tabla. Configurar el TTL de la tabla no siempre es la última operación. El orden de las operaciones debe garantizar que el TTL del índice de búsqueda sea menor o igual que el TTL de la tabla. Si el TTL objetivo del índice de búsqueda es mayor que el TTL actual de la tabla, aumente primero el TTL de la tabla. Si va a reducir ambos valores de TTL, reduzca primero el del índice de búsqueda.

  1. Deshabilite las actualizaciones de la tabla con UpdateRow.

    A continuación se muestra un ejemplo que deshabilita las actualizaciones UpdateRow para example_table.

    String tableName = "example_table";
    UpdateTableRequest request = new UpdateTableRequest(tableName);
    TableOptions tableOptions = new TableOptions();
    tableOptions.setAllowUpdate(false);
    request.setTableOptionsForUpdate(tableOptions);
    
    client.updateTable(request);
  2. Configure el TTL del índice de búsqueda.

    Elija una opción según si el índice de búsqueda ya existe o no.

    Índice nuevo

    Establezca un TTL de siete días al crear un índice de búsqueda.

    String tableName = "example_table";
    String indexName = "example_index";
    IndexSchema indexSchema = new IndexSchema();
    indexSchema.setFieldSchemas(Arrays.asList(
            new FieldSchema("category", FieldType.KEYWORD),
            new FieldSchema("price", FieldType.LONG)));
    
    CreateSearchIndexRequest request = new CreateSearchIndexRequest();
    request.setTableName(tableName);
    request.setIndexName(indexName);
    request.setIndexSchema(indexSchema);
    request.setTimeToLiveInDays(7);
    
    client.createSearchIndex(request);

    Índice existente

    Actualice el TTL de un índice de búsqueda existente a siete días.

    String tableName = "example_table";
    String indexName = "example_index";
    UpdateSearchIndexRequest request =
            new UpdateSearchIndexRequest(tableName, indexName);
    request.setTimeToLiveInDays(7);
    
    client.updateSearchIndex(request);
  3. Si es necesario, configure el TTL de la tabla.

    En el siguiente ejemplo se establece el TTL de example_table en 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 de TTL descrita anteriormente.

    String tableName = "example_table";
    UpdateTableRequest request = new UpdateTableRequest(tableName);
    TableOptions tableOptions = new TableOptions();
    tableOptions.setTimeToLiveInDays(7);
    request.setTableOptionsForUpdate(tableOptions);
    
    client.updateTable(request);

Una vez terminada la configuración, consulte información de la tabla y información del índice de búsqueda para comprobar ambos valores de TTL.