View a markdown version of this page

Verwendung von Vektorindizes mit globalen Tabellen - Amazon DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Vektorindizes mit globalen Tabellen

Sie können Vektorindizes mit globalen Tabellen verwenden, um eine Ähnlichkeitssuche in mehreren Regionen durchzuführen. AWS Wenn Sie einer Tabelle mit einem Vektorindex ein Replikat hinzufügen, repliziert DynamoDB die Vektorindexdefinition automatisch in die neue Replikatregion. Sie erstellen den Vektorindex nicht in jeder Region separat. Elemente, die Sie in eine beliebige Replikatregion schreiben, werden in die anderen Regionen repliziert und dort indexiert, sodass Ergebnisse aus der lokalen Region SearchVectors zurückgegeben werden.

Sie können Vektorindizes mit jeder globalen Tabellenkonfiguration verwenden:

Multi-account Globale Tabellen verwenden immer MREC, da MRSC nur Konfigurationen mit gleichen Konten unterstützt. Dies ist eine globale Tabelleneinschränkung, keine Beschränkung auf Vektorindizes.

Im folgenden Beispiel wird einer Tabelle mit dem Namen, die bereits über einen Vektorindex verfügtProducts, ein Replikat in der us-west-2 Region hinzugefügt. Die Tabelle muss den On-Demand-Kapazitätsmodus verwenden, der sowohl für Vektorindizes als auch für dieses Beispiel erforderlich ist.

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

Während das Replikat erstellt wird, ist der Status der Quelltabelle UPDATING und der des Replikats gleich. ReplicaStatus CREATING Wird verwendetDescribeTable, um zu überprüfen, ob das Replikat das Ziel erreicht, ACTIVE und um zu überprüfen, ob der Vektorindex repliziert wurde. Die Replikatregion meldet denselben Vektorindexnamen, dieselben Abmessungen, dieselbe Entfernungsfunktion und dieselbe Projektion wie die Quellregion.

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

Nachdem das Replikat aktiv ist, können Sie für SearchVectors die Replikatregion dieselben Vektoren wie für die Quellregion verwenden. Bevor Sie in der Replikatregion suchen, verwenden Sie diese Region und DescribeTable vergewissern Sie sich, dass der Vektorindex vollständig aufgefüllt wurde — er ist und ist. IndexStatus ACTIVE Backfilling false Der Vektorindex des Replikats wird unabhängig voneinander aufgefüllt, sodass er noch für kurze Zeit, nachdem das Replikat selbst aktiv wird, wieder aufgefüllt werden kann. Da bei der Vektorsuche der ungefähre nächste Nachbar (ANN) verwendet wird, kann sich die Rangfolge zwischen Regionen für dieselbe Abfrage leicht unterscheiden, selbst bei identischen Daten.

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
Die Verzögerung bei der Replikation wirkt sich auf regionsübergreifende Suchergebnisse aus

Der Vektorindex wird asynchron über Regionen verteilt, selbst bei globalen MRSC-Tabellen (Multiregion Strong Consistency). Ein Vektor, den Sie in eine Region schreiben, erscheint möglicherweise nicht sofort in Ergebnissen in SearchVectors einer anderen Region. Um die letzten Schreibvorgänge zu lesen, senden Sie die Suche an dieselbe Region, in der der Schreibvorgang vorgenommen wurde.