Effiziente Massenoperationen - 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.

Effiziente Massenoperationen

Wann dieses Muster verwendet werden sollte

Diese Muster sind nützlich, um Massenaktualisierungen für DynamoDB-Elemente effizient durchzuführen.

  • DynamoDB-Shell ist kein Anwendungsfall, der für die Produktion unterstützt wird.

  • TransactWriteItems – bis zu 100 einzelne Updates mit oder ohne Bedingungen, die als Alles-oder-Nichts-ACID-Paket ausgeführt werden.

    Kompromiss — Es wird zusätzlicher Durchsatz verbraucht, 2 WCUs pro 1 KB Schreibvorgang.

  • PartiQL BatchExecuteStatement – bis zu 25 Updates mit oder ohne Bedingungen.

    Kompromiss – Es ist eine zusätzliche Logik erforderlich, um Anforderungen in Batches von 25 zu verteilen.

  • AWS Step Functions — Massenoperationen mit begrenzter Geschwindigkeit für Entwickler, die damit vertraut sind. AWS Lambda

    Kompromiss – Die Ausführungszeit ist umgekehrt proportional zur Ratenbegrenzung. Limitiert durch das maximale Timeout der Lambda-Funktion. Die Funktionalität beinhaltet, dass Datenänderungen, die zwischen dem Lesen und dem Schreiben auftreten, überschrieben werden können. Weitere Informationen finden Sie unter Backfilling an Amazon DynamoDB Time to Live attribute using Amazon EMR: Part 2.

  • AWS Glue und Amazon EMR — ratenbegrenzter Massenbetrieb mit verwalteter Parallelität. Bei Anwendungen oder Updates, die nicht zeitkritisch sind, können diese Optionen im Hintergrund ausgeführt werden und verbrauchen dann nur einen kleinen Prozentsatz des Durchsatzes. Beide Dienste verwenden die emr-dynamodb-connector, um DynamoDB-Operationen auszuführen. Diese Services führen einen umfangreichen Lesevorgang aus, gefolgt von einem umfangreichen Schreibvorgang bei aktualisierten Elementen mit einer Option zur Ratenbegrenzung.

    Kompromiss – Die Ausführungszeit ist umgekehrt proportional zur Ratenbegrenzung. Die Funktionalität beinhaltet, dass Datenänderungen, die zwischen dem Lesen und dem Schreiben auftreten, überschrieben werden können. Sie können nicht aus globalen sekundären Indizes () lesen. GSIs Weitere Informationen finden Sie unter Backfilling an Amazon DynamoDB Time to Live attribute using Amazon EMR: Part 2.

  • DynamoDB-Shell – Massenoperationen mit Ratenbegrenzung und SQL-ähnlichen Abfragen. Sie können aus Effizienzgründen GSIs daraus lesen.

    Kompromiss – Die Ausführungszeit ist umgekehrt proportional zur Ratenbegrenzung. Weitere Informationen finden Sie unter Rate limited bulk operations in DynamoDB Shell.

Verwenden des Musters

Massenaktualisierungen können erhebliche Auswirkungen auf die Kosten haben, insbesondere wenn Sie den On-Demand-Durchsatzmodus verwenden. Es gibt einen Kompromiss zwischen Geschwindigkeit und Kosten, wenn Sie den Modus mit bereitgestelltem Durchsatz verwenden. Ein sehr strikt festgelegter rate-limit-Parameter kann zu einer sehr langen Verarbeitungszeit führen. Sie können die Geschwindigkeit der Aktualisierung anhand der durchschnittlichen Elementgröße und der Ratenbegrenzung grob bestimmen.

Alternativ können Sie anhand der erwarteten Dauer des Aktualisierungsvorgangs und der durchschnittlichen Elementgröße den für den Vorgang erforderlichen Durchsatz ermitteln. Die zu den einzelnen Mustern gehörenden Blog-Referenzen enthalten Einzelheiten zur Strategie, der Implementierung und den Einschränkungen bei der Verwendung des Musters. Weitere Informationen finden Sie unter Cost-effective bulk processing with Amazon DynamoDB.

Es gibt mehrere Möglichkeiten, Massenaktualisierungen für eine dynamische DynamoDB-Tabelle durchzuführen. Welcher Ansatz am besten geeignet ist, hängt von Faktoren wie den Anforderungen an die and/or ACID-Idempotenz, der Anzahl der zu aktualisierenden Punkte und der Vertrautheit ab. APIs Es ist wichtig, den Kompromiss zwischen Kosten und Zeit zu berücksichtigen. Die meisten der oben erläuterten Ansätze bieten eine Option zur Ratenbegrenzung des Durchsatzes, der von der Massenaktualisierung verwendet wird.