View a markdown version of this page

Überwachung der Vektorindexkapazität - 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.

Überwachung der Vektorindexkapazität

Um den Kapazitätsverbrauch für Vektorindexoperationen zu INDEXES überwachen, setzen Sie den ReturnConsumedCapacity Parameter TOTAL in Ihren SearchVectors Anfragen auf oder oder INDEXES in Ihren API-Schreibanforderungen auf.

Vektorindexoperationen werden in zwei Einheiten gemessen, getrennt von den in der Basistabelle verwendeten Einheiten für Lese- und Schreibkapazität:

  • Vektorsuche (VS) — Die Einheit, die SearchVectors Operationen misst. Der VS-Verbrauch wird als angegeben VectorSearchRequestBytes und skaliert entsprechend der Größe der Vektordaten, die bei der Suche untersucht und zurückgegeben werden.

  • Vector Write (VWR) — Die Einheit, die Meter in einen Vektorindex repliziert schreiben. Der VWR-Verbrauch wird als angegeben VectorWriteRequestBytes und skaliert entsprechend der Größe der in den Index replizierten Daten.

Das folgende Beispiel zeigt den Wert, der von einer ConsumedCapacity SearchVectors Anforderung zurückgegeben wird.

{ "ConsumedCapacity": { "VectorSearchRequestBytes": 41714.0 } }

Bei Schreiboperationen (PutItem,UpdateItem,DeleteItem,BatchWriteItem,TransactWriteItems) enthält die Antwort eine VectorIndexes ZuordnungConsumedCapacity, die anhand des Indexnamens eingegeben wird. Jeder Eintrag gibt an, wie viel Kapazität VectorWriteRequestBytes bei der Replikation von Änderungen an den einzelnen Vektorindizes verbraucht wird.

{ "ConsumedCapacity": { "TableName": "Products", "CapacityUnits": 5.0, "Table": { "CapacityUnits": 5.0 }, "VectorIndexes": { "ProductEmbeddingIndex": { "VectorWriteRequestBytes": 4125.0 } } } }

Die Kapazität des Vektorindexes wird in verarbeiteten Byte gemessen und getrennt von der Lese- und Schreibkapazität der Basistabelle gemeldet. Verwenden Sie diese Felder, um zu verstehen, was die Kosten Ihres Vektorindexes beeinflusst:

  • Search cost (VectorSearchRequestBytes) skaliert in erster Linie mit der Größe der Vektoren, die bei der Suche untersucht werden müssen. Diese Größe wächst mit der Anzahl der Dimensionen im Index und der Menge der zurückgegebenen Daten. Wenn Sie eine Suche auf einen einzelnen Partitionsschlüsselwert beschränken, wird die Menge der untersuchten Daten reduziert. Die Rückgabe des Vektorattributs in den Ergebnissen erhöht die Kosten weiter, da die Antwortvariablen die vollständigen Vektordaten enthalten. Die Suchkosten steigen nicht proportional zur Anzahl der Elemente im Index. Wenn die Anzahl der Dimensionen, der TopK Wert und die Projektion gleich bleiben, wachsen die bei einer Suche untersuchten Daten logarithmisch an, wenn Sie Elemente hinzufügen. Dies liegt daran, dass bei einer ungefähren Suche nach dem nächsten Nachbarn eine kleine Teilmenge des Index durchquert wird, anstatt jeden Vektor zu lesen. Wenn Sie die Anzahl der Elemente in einem Index verdoppeln, wird den bei jeder Suche untersuchten Daten eine kleine, konstante Menge hinzugefügt.

  • Die Schreibkosten (VectorWriteRequestBytes) fallen jedes Mal an, wenn Sie ein Element schreiben, aktualisieren oder löschen, das ein vektorindiziertes Attribut ändert, und skaliert mit der Größe der in den Index replizierten Daten. Schreibvorgänge, die ein indiziertes Attribut nicht ändern, erfordern keine Vektor-Schreibkapazität.

Higher-dimensional Einbettungen erhöhen sowohl die Such- als auch die Schreibkosten, da jeder Vektor mehr Daten enthält. Aktuelle Preise finden Sie in den Amazon DynamoDB-Preisen auf der Website. AWS

DynamoDB veröffentlicht außerdem die Vektorindexkapazität CloudWatch als VectorSearchRequestBytes und VectorWriteRequestBytes -Metriken, dimensioniert durch und. TableName VectorIndexName Verwenden Sie diese Metriken, um die Nutzung von Vektorindizes im Laufe der Zeit grafisch darzustellen und Warnmeldungen zu erstellen. Definitionen von Metriken finden Sie unter VectorSearchRequestBytes undVectorWriteRequestBytes.

Per-request Mindestmessung

DynamoDB misst die Vektorindexkapazität mit mindestens 1 KB pro Anforderung und Rechnungen pro Byte, die über diesem Minimum liegen. Dies gilt für beide Anforderungstypen. Eine SearchVectors Anfrage, die weniger als 1 KB an Vektordaten untersucht, wird mit 1 KB bewertet. Eine Schreibanforderung, die weniger als 1 KB in die Vektorindizes einer Tabelle repliziert, wird ebenfalls mit 1 KB gemessen.

Das Minimum gilt pro Anfrage, nicht pro Index. Bei einem Schreibvorgang, der Vektoren in mehreren Vektorindizes einer Tabelle aktualisiert, ist nicht für jeden ein separates Minimum von 1 KB erforderlich, obwohl die ConsumedCapacity Berichte VectorWriteRequestBytes pro Index erstellt werden.

Dies hat zur Folge, dass Vektoren mit niedriger Dimension nicht proportional niedriger gemessen werden. Ein Vektor mit einer geringen Anzahl von Dimensionen enthält nur wenige Byte an 32-Bit-Gleitkommadaten und wird trotzdem mit einem Minimum von 1 KB gemessen.

Wenn der Wert über dem Mindestwert liegt, werden die von der Suche untersuchten Vektordaten innerhalb des Indexes VectorSearchRequestBytes wiedergegeben, nicht die Größe des angegebenen Abfragevektors. VectorSearchRequestBytesIst daher größer als der Abfragewektor allein.

Die Suchkosten steigen logarithmisch an, wie bereits erläutert, aber diese Beziehung ist keine Formel zur Schätzung Ihrer Rechnung. VectorSearchRequestBytesbeinhaltet auch die Daten, die die Suche zurückgibt. Diese Daten skalieren mit TopK und mit den von Ihnen projizierten Attributen. Die Metrik ist außerdem auf das Minimum von 1 KB pro Anfrage begrenzt. Bei einem Höchstwert TopK mit einer vollständigen Projektion können die zurückgegebenen Daten die untersuchten Daten überschreiten.

Schätzen Sie die Kosten für Vektorindizes nicht anhand der Dimensionsanzahl ab. Verwenden Sie die VectorWriteRequestBytes Werte VectorSearchRequestBytes und, die von Ihrem eigenen Workload zurückgegeben werden, oder die entsprechenden CloudWatch Metriken. Prüfen Sie anhand eines repräsentativen Datensatzes, bevor Sie die Größe einer Arbeitslast festlegen.