

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Sincronizzazione dei dati tra tabelle e indici vettoriali
<a name="VectorSearchDataSync"></a>

DynamoDB mantiene automaticamente sincronizzato un indice vettoriale con la sua tabella di base. Comprendere come funziona la sincronizzazione aiuta a prevedere quando i risultati della ricerca sono completi e perché un elemento potrebbe non apparire nei risultati.

## Riempire un indice su una tabella esistente
<a name="VectorSearchDataSync.Backfilling"></a>

Quando aggiungi un indice vettoriale a una tabella che contiene già elementi, DynamoDB riempie l'indice con i dati esistenti. L'indice passa prima a `IndexStatus` `CREATING` mentre DynamoDB esegue il provisioning dell'infrastruttura dell'indice. Rimane attivo `CREATING` mentre DynamoDB compila l'indice a partire dai dati della tabella di base esistente e riporta i dati come in quella fase. `Backfilling` `true` Le nuove scritture nella tabella di base vengono replicate nell'indice durante il backfill, ma `SearchVectors` restituiscono un valore fino al termine del backfill. `ValidationException` Quando l'indice è pronto, `IndexStatus` diventa `ACTIVE` e il `Backfilling` campo non viene più riportato. Usa `DescribeTable` e attendi che `IndexStatus` sia `ACTIVE` e non `Backfilling` sia `true` prima di eseguire la ricerca.

La struttura dell'indice determina la durata del backfill, non il numero di elementi nella tabella di base. Anche una tabella con pochissimi elementi può richiedere molto tempo per completare il riempimento. Fai un sondaggio `DescribeTable` piuttosto che dare per scontato che un tavolino sia pronto rapidamente.

Consulta [Aggiungere un indice vettoriale a una tabella esistente](VectorSearchWorkingWith.md#VectorSearchWorkingWith.Create.ExistingTable).

## Sincronizzazione continua delle scritture
<a name="VectorSearchDataSync.OngoingWrites"></a>

Dopo che l'indice è attivo, DynamoDB replica ogni scrittura nella tabella di base nell'indice vettoriale. I seguenti comportamenti influenzano se e come una scrittura raggiunge l'indice:
+ Un elemento viene replicato nell'indice solo se contiene un attributo vettoriale valido. Se l'indice definisce una chiave di partizione, l'elemento deve contenere anche l'attributo della chiave di partizione; in caso contrario, la scrittura ha esito positivo sulla tabella di base ma l'elemento non viene replicato nell'indice.
+ I valori vettoriali vengono memorizzati nella tabella di base così come sono stati scritti, ma nell'indice con una precisione a 32 bit in virgola mobile (f32). I valori con una precisione maggiore perdono tale precisione quando vengono replicati nell'indice.
+ Quando si elimina l'attributo vettoriale da un elemento o si elimina l'elemento, la voce corrispondente viene rimossa dall'indice.

Per il set completo di regole di convalida della scrittura, vedere. [Scrittura di elementi con dati vettoriali](VectorSearchWorkingWith.md#VectorSearchWorkingWith.Write)

## Sincronizzazione tra regioni
<a name="VectorSearchDataSync.GlobalTables"></a>

Quando una tabella con un indice vettoriale è una tabella globale, DynamoDB replica le scritture in qualsiasi regione di replica nelle altre regioni e le indicizza lì. DynamoDB replica i dati nell'indice vettoriale in modo asincrono. Un vettore scritto in una regione potrebbe non apparire immediatamente nei `SearchVectors` risultati in un'altra regione, anche se la tabella utilizza la coerenza forte multiregionale (MRSC). Consulta [Utilizzo di indici vettoriali con tabelle globali](VectorSearchGlobalTables.md).