View a markdown version of this page

Sincronizzazione dei dati tra tabelle e indici vettoriali - Amazon DynamoDB

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

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

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.

Sincronizzazione continua delle scritture

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

Sincronizzazione tra regioni

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.