2017-06-28 1 views
3

Wenn wir table.batch_writer(), die Boto3 API, wird es einfügen oder es auch aktualisiert?DynamoDb Batch schreiben Update

Mit Update meine ich die partition key, sort key are same, aber andere attributes sind nicht gleich. Ich kann dies in keiner Dokumentation finden.

Antwort

2

Die batch_writer in Boto3 Karten auf die Batch Writing functionality angeboten von DynamoDB, als Service. Dieses Batch-Schreiben bezieht sich speziell auf PutItem- und DeleteItem-Operationen und enthält kein UpdateItem.

Aus der Dokumentation:

Der BatchWriteItem Betrieb nimmt oder mehrere Elemente in einer oder mehreren Tabellen löscht. Ein einzelner Aufruf von BatchWriteItem kann bis zu 16 MB an Daten schreiben, was bis zu 25 Anfragen zum Löschen oder Löschen umfassen kann. Einzelne zu schreibende Elemente können bis zu 400 KB groß sein.

Hinweis

BatchWriteItem können keine Elemente aktualisieren. Verwenden Sie zum Aktualisieren von Elementen die Aktion UpdateItem.

Um klar zu sein, die PutItem operation entweder fügt ein neues Element oder ersetzt ein Element, identifiziert eindeutig durch seinen Schlüssel (entweder Partition-only oder Composite-Partition + Sortierschlüssel auf, wie die Tabelle definiert wurde). So in gewisser Weise, können Sie daran denken, ein Element als Aktualisierung es ist nicht-Schlüssel-Attribute ersetzen, aber es ist richtiger, dies als Ersatz zu betrachten, anstatt ein Update. Vergleichen Sie dies mit der UpdateItem API, die selektive Manipulation der Attribute eines Artikels ermöglicht.

Es ist erwähnenswert, dass selbst mit Put & Element löschen Funktionen ist die Batch-API begrenzender als einzelne PutItem oder DeleteItem-Aufrufe, weil es bedingte Schreibvorgänge nicht unterstützt. Die BatchWrite-API ist nur zum Stapelladen oder Stapellöschung von Daten nützlich, um den Netzwerk-Overhead in Bezug auf HTTP-Header zu reduzieren, zusätzliche Compute-Ressourcen zum Generieren der SigV4-Signatur & usw.