View a markdown version of this page

Datensynchronisierung zwischen Tabellen und Vektorindizes - 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.

Datensynchronisierung zwischen Tabellen und Vektorindizes

DynamoDB synchronisiert einen Vektorindex automatisch mit seiner Basistabelle. Wenn Sie wissen, wie die Synchronisation funktioniert, können Sie vorhersagen, wann die Suchergebnisse vollständig sind und warum ein Element möglicherweise nicht in den Ergebnissen erscheint.

Auffüllen eines Indexes für eine vorhandene Tabelle

Wenn Sie einer Tabelle, die bereits Elemente enthält, einen Vektorindex hinzufügen, füllt DynamoDB den Index mit den vorhandenen Daten auf. Der Index wechselt zuerst zu, IndexStatus CREATING während DynamoDB die Indexinfrastruktur einrichtet. Dann wechselt er zu IndexStatus ACTIVE with Backfilling set to, true während DynamoDB den Index aus vorhandenen Basistabellendaten füllt. Neue Schreibvorgänge in die Basistabelle werden in dieser Phase in den Index repliziert, es wird jedoch ein Fehler SearchVectors zurückgegeben, bis das Auffüllen abgeschlossen ist. Verwenden Sie diese DescribeTable Option und warten Sie, bis IndexStatus es ist ACTIVE und Backfilling ist, false bevor Sie suchen. Siehe Hinzufügen eines Vektorindexes zu einer vorhandenen Tabelle.

Fortlaufende Schreibsynchronisierung

Nachdem der Index aktiv ist, repliziert DynamoDB jeden Schreibvorgang in die Basistabelle in den Vektorindex. Die folgenden Verhaltensweisen wirken sich darauf aus, ob und wie ein Schreibvorgang den Index erreicht:

  • Ein Element wird nur dann in den Index repliziert, wenn es ein gültiges Vektorattribut enthält. Wenn der Index einen Partitionsschlüssel definiert, muss das Element auch dieses Partitionsschlüsselattribut enthalten. Andernfalls ist der Schreibvorgang in der Basistabelle erfolgreich, das Element wird jedoch nicht in den Index repliziert.

  • Vektorwerte werden in der Basistabelle so gespeichert, wie sie geschrieben wurden, aber im Index mit 32-Bit-Gleitkommagenauigkeit (f32) gespeichert. Werte mit höherer Genauigkeit verlieren diese Genauigkeit, wenn sie in den Index repliziert werden.

  • Wenn Sie das Vektorattribut aus einem Element löschen oder das Element löschen, wird der entsprechende Eintrag aus dem Index entfernt.

Den vollständigen Satz der Regeln für die Schreibvalidierung finden Sie unter. Elemente mit Vektordaten schreiben

Regionsübergreifende Synchronisation

Wenn es sich bei einer Tabelle mit einem Vektorindex um eine globale Tabelle handelt, repliziert DynamoDB Schreibvorgänge in einer beliebigen Replikatregion in die anderen Regionen und indexiert sie dort. DynamoDB repliziert Daten asynchron in den Vektorindex. Ein Vektor, den Sie in eine Region schreiben, erscheint möglicherweise nicht sofort in SearchVectors Ergebnissen in einer anderen Region — selbst wenn die Tabelle Multiregion Strong Consistency (MRSC) verwendet. Siehe Verwendung von Vektorindizes mit globalen Tabellen.