View a markdown version of this page

Utilizzo di indici vettoriali con tabelle globali - 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à.

Utilizzo di indici vettoriali con tabelle globali

È possibile utilizzare indici vettoriali con tabelle globali per eseguire ricerche di similarità in più regioni. AWS Quando aggiungi una replica a una tabella con un indice vettoriale, DynamoDB replica automaticamente la definizione dell'indice vettoriale nella nuova regione di replica. Non si crea l'indice vettoriale separatamente in ogni regione. Gli elementi scritti in qualsiasi regione di replica vengono replicati nelle altre regioni e indicizzati lì, quindi SearchVectors restituiscono i risultati dalla regione locale.

È possibile utilizzare indici vettoriali con ogni configurazione di tabella globale:

Multi-account le tabelle globali utilizzano sempre MREC perché MRSC supporta solo configurazioni con lo stesso account. Si tratta di un vincolo globale per le tabelle, non di una limitazione dell'indice vettoriale.

L'esempio seguente aggiunge una replica nella us-west-2 regione a una tabella denominata Products che ha già un indice vettoriale. La tabella deve utilizzare la modalità di capacità su richiesta, richiesta sia per gli indici vettoriali che per questo esempio.

aws dynamodb update-table \ --table-name Products \ --region us-east-1 \ --replica-updates '[{"Create": {"RegionName": "us-west-2"}}]'

Durante la creazione della replica, lo stato della tabella di origine è UPDATING e quello della replica è. ReplicaStatus CREATING DescribeTableDa utilizzare per confermare il raggiungimento dei risultati della replica ACTIVE e per verificare che l'indice vettoriale sia stato replicato. La regione di replica riporta lo stesso nome dell'indice vettoriale, le stesse dimensioni, la stessa funzione di distanza e la stessa proiezione della regione di origine.

aws dynamodb describe-table \ --table-name Products \ --region us-west-2

Dopo che la replica è attiva, è possibile eseguire SearchVectors l'esecuzione sulla regione di replica sullo stesso set di vettori della regione di origine. Prima di effettuare la ricerca nella regione di replica, usatela DescribeTable in quella regione e verificate che l'indice vettoriale abbia terminato il riempimento, vale a dire che lo IndexStatus è ACTIVE e Backfilling lo è. false L'indice vettoriale della replica viene riempito in modo indipendente, quindi può continuare a riempirsi per un breve periodo dopo che la replica stessa diventa attiva. Poiché la ricerca vettoriale utilizza il vicino più prossimo approssimativo (ANN), la classificazione potrebbe differire leggermente tra le regioni per la stessa query, anche su dati identici.

aws dynamodb search-vectors \ --table-name Products \ --region us-west-2 \ --index-name ProductEmbeddingIndex \ --search-vector '[{"N": "0.1234"}, {"N": "-0.5678"}, {"N": "0.9012"}, ...]' \ --top-k 10
Il ritardo di replica influisce sui risultati della ricerca interregionale

L'indice vettoriale si propaga in modo asincrono tra le regioni, anche per le tabelle globali MRSC (Multi-region Strong Consistency). Un vettore scritto in una regione potrebbe non apparire immediatamente nei risultati di un'altra regione. SearchVectors Per leggere le scritture più recenti, invia la ricerca alla stessa regione in cui è stata effettuata la scrittura.