View a markdown version of this page

Sincronización de datos entre tablas e índices vectoriales - Amazon DynamoDB

Sincronización de datos entre tablas e índices vectoriales

DynamoDB mantiene un índice vectorial sincronizado automáticamente con su tabla base. Comprender cómo funciona la sincronización ayuda a predecir cuándo estarán completos los resultados de la búsqueda y por qué es posible que un elemento no aparezca en los resultados.

Reposición de un índice en una tabla existente

Al agregar un índice vectorial a una tabla que ya contiene elementos, DynamoDB repone el índice con los datos existentes. El índice pasa primero a IndexStatus CREATING mientras DynamoDB aprovisiona la infraestructura del índice. Permanece CREATING mientras DynamoDB rellena el índice a partir de los datos de la tabla base existente e informa Backfilling como true durante esa fase. Las nuevas escrituras en la tabla base se replican en el índice mientras se rellena, pero SearchVectors devuelve una ValidationException hasta que termine la reposición. Cuando el índice está listo, IndexStatus pasa a ser ACTIVE y el campo Backfilling deja de figurar en el informe. Utilice DescribeTable y espere hasta que IndexStatus sea ACTIVE y Backfilling no sea true antes de realizar la búsqueda.

La construcción del índice determina la duración del relleno, no el número de elementos de la tabla base. Incluso una tabla con muy pocos elementos puede tardar un tiempo considerable en terminar de rellenarse. Sondee DescribeTable en lugar de suponer que una tabla pequeña estará lista rápidamente.

Consulte Adición de un índice vectorial a una tabla existente.

Sincronización de escritura continua

Una vez que el índice está activo, DynamoDB replica cada escritura de la tabla base en el índice vectorial. Los siguientes comportamientos afectan a si una escritura llega al índice y cómo lo hace:

  • Un elemento se replica en el índice solo si contiene un atributo vectorial válido. Si el índice define una clave de partición, el elemento también debe contener ese atributo clave de partición; de lo contrario, la escritura se realiza correctamente en la tabla base, pero el elemento no se replica en el índice.

  • Los valores vectoriales se almacenan en la tabla base tal como están escritos, pero se almacenan con una precisión de punto flotante de 32 bits (f32) en el índice. Los valores con mayor precisión pierden esa precisión cuando se replican en el índice.

  • Al eliminar el atributo vectorial de un elemento o al eliminar el elemento, la entrada correspondiente se elimina del índice.

Para ver el conjunto completo de reglas de validación de escritura, consulte Escritura de elementos con datos vectoriales.

Sincronización entre regiones

Cuando una tabla que tiene un índice vectorial es una tabla global, DynamoDB replica las escrituras de cualquier región de réplica en las demás regiones y las indexa allí. DynamoDB replica los datos en el índice vectorial de forma asíncrona. Es posible que un vector que escriba en una región no aparezca inmediatamente en los resultados de SearchVectors de otra región, incluso si la tabla utiliza una coherencia sólida multirregional (MRSC). Consulte Uso de índices vectoriales con tablas globales.