Versionen von globalen DynamoDB-Tabellen - Amazon-DynamoDB

Versionen von globalen DynamoDB-Tabellen

Es gibt zwei Versionen von globalen DynamoDB-Tabellen: Version 2019.11.21 (Aktuell) und Version 2017.11.29 (Legacy). Wir empfehlen für globale Tabellen die Verwendung der Version 2019.11.21 (Aktuell), da sie einfacher zu verwenden ist, in mehr Regionen unterstützt wird und für die meisten Workloads kostengünstiger ist als Version 2017.11.29 (Legacy).

Ermitteln der Version einer globalen Tabelle

Ermitteln der Version mit der AWS CLI

Identifizieren des Replikats einer globalen Tabelle der Version 2019.11.21 (Aktuell)

Rufen Sie den Befehl describe-table auf, um festzustellen, ob es sich bei einer Tabelle um ein Replikat von Version 2019.11.21 (Aktuell) handelt. Wenn die Ausgabe das GlobalTableVersion-Attribut mit dem Wert „2019.11.21“ enthält, handelt es sich bei der Tabelle um das Replikat einer globalen Tabelle der Version 2019.11.21 (Aktuell).

Beispiel eines CLI-Befehls für describe-table:

aws dynamodb describe-table \ --table-name users \ --region us-east-2

Wenn die (verkürzte) Ausgabe das GlobalTableVersion-Attribut mit dem Wert „2019.11.21“ enthält, handelt es sich bei der Tabelle um das Replikat einer globalen Tabelle der Version 2019.11.21 (Aktuell).

{ "Table": { "AttributeDefinitions": [ { "AttributeName": "id", "AttributeType": "S" }, { "AttributeName": "name", "AttributeType": "S" } ], "TableName": "users", ... "GlobalTableVersion": "2019.11.21", "Replicas": [ { "RegionName": "us-west-2", "ReplicaStatus": "ACTIVE", } ], ... } }

Identifizieren des Replikats einer globalen Tabelle der Version 2017.11.29 (Legacy)

Die Version 2017.11.29 (Legacy) verwendet einen speziellen Befehlssatz für die Verwaltung der globalen Tabelle. Rufen Sie den Befehl describe-global-table auf, um festzustellen, ob es sich bei einer Tabelle um ein Replikat von Version 2017.11.29 (Legacy) handelt. Wenn Sie eine erfolgreiche Antwort erhalten, handelt es sich bei der globalen Tabelle um ein Replikat der Version 2017.11.29 (Legacy). Wenn der Befehl describe-global-table den Fehler GlobalTableNotFoundException zurückgibt, handelt es sich bei der Tabelle nicht um ein Replikat der Version 2017.11.29 (Legacy).

Beispiel eines CLI-Befehls für describe-global-table:

aws dynamodb describe-global-table \ --table-name users \ --region us-east-2

Wenn der Befehl eine erfolgreiche Antwort zurückgibt, handelt es sich bei der globalen Tabelle um ein Replikat der Version 2017.11.29 (Legacy).

{ "GlobalTableDescription": { "ReplicationGroup": [ { "RegionName": "us-west-2" }, { "RegionName": "us-east-2" } ], "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/users", "CreationDateTime": "2025-06-10T13:55:53.630000-04:00", "GlobalTableStatus": "ACTIVE", "GlobalTableName": "users" } }

Ermitteln der Version mithilfe der DynamoDB-Konsole

Gehen Sie wie folgt vor, um die Version des Replikats einer globalen Tabelle zu ermitteln:

  1. Öffnen Sie die DynamoDB-Konsole unter https://console.aws.amazon.com/dynamodb/home.

  2. Klicken Sie im Navigationsbereich auf der linken Seite der Konsole auf Tables (Tabellen).

  3. Wählen Sie die globale Tabelle aus, deren Version Sie ermitteln möchten.

  4. Wählen Sie die Registerkarte Globale Tabellen aus.

    Im Abschnitt Zusammenfassung wird die Version der verwendeten globalen Tabellen angezeigt.

Unterschiede im Verhalten zwischen der Legacy- und der aktuellen Version

In der folgenden Liste werden die Verhaltensunterschiede zwischen der Legacy-Version und der aktuellen Version globaler Tabellen beschrieben.

  • Version 2019.11.21 (Aktuell) verbraucht im Vergleich zu Version 2017.11.29 (Legacy) bei mehreren Operationen in DynamoDB-Datenbanken weniger Schreibkapazität und ist daher für die meisten Kunden kostengünstiger. Die Unterschiede in Bezug auf DynamoDB-Operationen im Einzelnen:

    • Für den Aufruf von PutItem für ein 1 KB großes Element in einer Region und die Replikation in andere Regionen sind in Version 2017.11.29 (Legacy) 2 rWRUs pro Region erforderlich, in Version 2019.11.21 (Aktuell) nur 1 rWRU.

    • Für den Aufruf von UpdateItem für ein 1 KB großes Element sind in Version 2017.11.29 (Legacy) 2 rWRUs in der Quellregion und 1 rWRU pro Zielregion erforderlich, in Version 2019.11.21 (Aktuell) jedoch nur 1 rWRU für die Quell- und Zielregion.

    • Für den Aufruf von DeleteItem für ein 1 KB großes Element sind in Version 2017.11.29 (Legacy) 1 rWRUs in der Quellregion und 2 rWRU pro Zielregion erforderlich, in Version 2019.11.21 (Aktuell) jedoch nur 1 rWRU für die Quell- und Zielregion.

    Die folgende Tabelle zeigt den rWRU-Verbrauch der Tabellen-Versionen 2017.11.29 (Legacy) und 2019.11.21 (Aktuell) für ein 1 KB großes Element in zwei Regionen.

    Operation 2017.11.29 (Legacy) 2019.11.21 (Aktuell) Einsparungen
    PutItem 4 rWRUs 2 rWRUs 50 %
    UpdateItem 3 rWRUs 2 rWRUs 33 %
    DeleteItem 3 rWRUs 2 rWRUs 33 %
  • Version 2017.11.29 (Legacy) ist nur in 11 AWS-Regionen verfügbar. Version 2019.11.21 (Aktuell) hingegen ist in allen AWS-Regionen verfügbar.

  • Sie erstellen globale Tabellen der Version 2017.11.29 (Legacy), indem Sie zuerst eine Gruppe leerer regionaler Tabellen erstellen und dann zur Erzeugung der globalen Tabelle die CreateGlobalTable-API aufrufen. Sie erstellen globale Tabellen der Version 2019.11.21 (Aktuell), indem Sie die UpdateTable-API aufrufen, um einer vorhandenen regionalen Tabelle ein Replikat hinzuzufügen.

  • Version 2017.11.29 (Legacy) erfordert, dass Sie alle Replikate in der Tabelle leeren, bevor Sie einer neuen Region (auch während ihrer Erstellung) ein Replikat hinzufügen. Version 2019.11.21 (Aktuell) unterstützt Sie beim Hinzufügen und Entfernen von Replikaten zu Regionen in einer Tabelle, die bereits Daten enthält.

  • Version 2017.11.29 (Legacy) verwendet die folgenden dedizierten Steuerebenen-APIs zur Verwaltung von Replikaten:

    In Version 2019.11.21 (Aktuell) werden die DescribeTable- und die UpdateTable-API zur Verwaltung von Replikaten verwendet.

  • In Version 2017.11.29 (Legacy) werden zwei DynamoDB-Streams-Datensätze für jeden Schreibvorgang veröffentlicht. In Version 2019.11.21 (Aktuell) wird nur ein DynamoDB-Streams-Datensatz für jeden Schreibvorgang veröffentlicht.

  • In Version 2017.11.29 (Legacy) werden die Attribute aws:rep:deleting, aws:rep:updateregion und aws:rep:updatetime gefüllt und aktualisiert. In Version 2019.11.21 (Aktuell) werden dieser Attribute nicht gefüllt und aktualisiert.

  • In Version 2017.11.29 (Legacy) werden die Verwenden von Time to Live (TTL) in DynamoDB-Einstellungen nicht replikatsübergreifend synchronisiert. In Version 2019.11.21 (Aktuell) werden die TTL-Einstellungen replikatsübergreifend synchronisiert.

  • In Version 2017.11.29 (Legacy) werden TTL-Löschvorgänge nicht auf andere Replikate übertragen. In Version 2019.11.21 (Aktuell) werden TTL-Löschvorgänge auf alle Replikate übertragen.

  • In Version 2017.11.29 (Legacy) werden die Auto-Scaling-Einstellungen nicht replikatsübergreifend synchronisiert. In Version 2019.11.21 (Aktuell) werden die Auto-Scaling-Einstellungen replikatsübergreifend aktualisiert.

  • In Version 2017.11.29 (Legacy) werden die Einstellungen für den globalen sekundären Index (GSI) nicht replikatsübergreifend synchronisiert. In Version 2019.11.21 (Aktuell) werden die GSI-Einstellungen replikatsübergreifend synchronisiert.

  • In Version 2017.11.29 (Legacy) werden die Einstellungen für die Verschlüsselung im Ruhezustand nicht replikatsübergreifend synchronisiert. In Version 2019.11.21 (Aktuell) werden die Einstellungen für die Verschlüsselung im Ruhezustand replikatsübergreifend synchronisiert.

  • In Version 2017.11.29 (Legacy) wird die PendingReplicationCount-Metrik veröffentlicht. In Version 2019.11.21 (Aktuell) wird diese Metrik nicht veröffentlicht.

Aktualisieren auf die aktuelle Version

Erforderliche Berechtigungen für die Aktualisierung von globalen Tabellen

Für eine Aktualisierung auf die Version 2019.11.21 (Aktuell) aktualisieren müssen Sie in allen Regionen mit Replikaten über die Berechtigung dynamodb:UpdateGlobalTableversion verfügen. Diese Berechtigungen werden zusätzlich zu den Berechtigungen benötigt, die für den Zugriff auf die DynamoDB-Konsole und die Anzeige von Tabellen erforderlich sind.

Über die folgende IAM-Richtlinie werden Berechtigungen zum Aktualisieren einer globalen Tabelle auf Version 2019.11.21 (Aktuell) erteilt.

{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": "*" } ] }

Über die folgende IAM-Richtlinie wird die Berechtigung erteilt, nur die globale Tabelle Music mit Replikaten in zwei Regionen auf die Version 2019.11.21 (Aktuell) zu aktualisieren.

{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Music", "arn:aws:dynamodb:ap-southeast-1:123456789012:table/Music", "arn:aws:dynamodb:us-east-2:123456789012:table/Music" ] } ] }

Informationen Fakten zum Ablauf der Aktualisierung

  • Während der Aktualisierung wird in allen Replikaten globaler Tabellen die Verarbeitung des Lese- und Schreibdatenverkehr fortgesetzt.

  • Die Aktualisierung dauert je nach Tabellengröße und Anzahl der Replikate zwischen einigen Minuten und mehreren Stunden.

  • Während der Aktualisierung ändert sich der Wert von TableStatus von ACTIVE auf UPDATING. Wenn Sie den Status der Tabelle sehen möchten, rufen Sie die DescribeTable-API oder in der DynamoDB-Konsole die Ansicht Tabelle auf.

  • Die Einstellungen für die bereitgestellte Kapazität für eine globale Tabelle werden während der Aktualisierung vom Auto-Scaling-Prozess nicht angepasst. Es wird dringend empfohlen, während der Aktualisierung der Tabelle den Modus On-Demand-Kapazität zu verwenden.

  • Wenn Sie sich bei der Aktualisierung für den Modus bereitgestellter Kapazität mit Auto Scaling entscheiden, müssen Sie in Ihren Richtlinien den minimalen Lese- und Schreibdurchsatz erhöhen, um dem erwarteten Anstieg des Datenverkehrs während der Dauer der Aktualisierung Rechnung zu tragen.

  • Es kann vorkommen, dass die Metrik ReplicationLatency vorübergehend Latenzspitzen meldet oder dass die Meldung von Metrikdaten während der Aktualisierung ganz ausbleibt. Weitere Informationen finden Sie unter ReplicationLatency.

  • Sobald der Aktualisierungsvorgang abgeschlossen ist, wird der Status der Tabelle zurück zu ACTIVE.

Verhalten von DynamoDB Streams vor, während und nach der Aktualisierung

Operation Replikatregion Verhalten vor der Aktualisierung Verhalten während der Aktualisierung Verhalten nach der Aktualisierung

Put oder Update

Quelle

Das Auffüllen von Zeitstempeln erfolgt mit UpdateItem. Das Auffüllen von Zeitstempeln erfolgt mit PutItem. Es wird kein für den Kunden sichtbarer Zeitstempel generiert.
Es werden zwei Streams-Datensätze generiert. Der erste Datensatz enthält die vom Kunden geschriebenen Attribute. Der zweite Datensatz enthält die aws:rep:*-Attribute. Es werden zwei Streams-Datensätze generiert. Der erste Datensatz enthält die vom Kunden geschriebenen Attribute. Der zweite Datensatz enthält die aws:rep:*-Attribute. Es wird ein einziger Streams-Datensatz generiert, der die vom Kunden geschriebenen Attribute enthält.
Für jeden Schreibvorgang durch den Kunden werden zwei rWCUs verbraucht. Für jeden Schreibvorgang durch den Kunden werden zwei rWCUs verbraucht. Für jeden Schreibvorgang durch den Kunden wird eine rWCU verbraucht.
Die Metriken ReplicationLatency und PendingReplicationCount werden in CloudWatch veröffentlicht. Die Metriken ReplicationLatency und PendingReplicationCount werden in CloudWatch veröffentlicht. Die Metrik ReplicationLatency wird in CloudWatch veröffentlicht.

Ziel

Die Replikation erfolgt mit „PutItem“. Die Replikation erfolgt mit „PutItem“. Die Replikation erfolgt mit „PutItem“.
Es wird ein einzelner Streams-Datensatz generiert, der sowohl die vom Kunden geschriebenen Attribute als auch die aws:rep:*-Attribute enthält. Es wird ein einzelner Streams-Datensatz generiert, der sowohl die vom Kunden geschriebenen Attribute als auch die aws:rep:*-Attribute enthält. Es wird ein einzelner Streams-Datensatz generiert, der nur die vom Kunden geschriebenen Attribute und keine Replikationsattribute enthält.
Es wird eine rWCU verbraucht, wenn das Element in der Zielregion existiert. Es werden zwei rWCUs verbraucht, wenn das Element in der Zielregion nicht existiert. Es wird eine rWCU verbraucht, wenn das Element in der Zielregion existiert. Es werden zwei rWCUs verbraucht, wenn das Element in der Zielregion nicht existiert. Für jeden Schreibvorgang durch den Kunden wird eine rWCU verbraucht.
Die Metriken ReplicationLatency und PendingReplicationCount werden in CloudWatch veröffentlicht. Die Metriken ReplicationLatency und PendingReplicationCount werden in CloudWatch veröffentlicht. Die Metrik ReplicationLatency wird in CloudWatch veröffentlicht.

Löschen

Quelle

Jedes Element mit kleinerem Zeitstempelwert wird mit DeleteItem gelöscht. Jedes Element mit kleinerem Zeitstempelwert wird mit „DeleteItem“ gelöscht. Jedes Element mit kleinerem Zeitstempelwert wird mit „DeleteItem“ gelöscht.
Es wird ein einzelner Streams-Datensatz generiert, der sowohl die vom Kunden geschriebenen Attribute als auch die aws:rep:*-Attribute enthält. Es wird ein einzelner Streams-Datensatz generiert, der sowohl die vom Kunden geschriebenen Attribute als auch die aws:rep:*-Attribute enthält. Es wird ein einzelner Streams-Datensatz generiert, der die vom Kunden geschriebenen Attribute enthält.
Für jeden Löschvorgang durch den Kunden wird eine rWCU verbraucht. Für jeden Löschvorgang durch den Kunden wird eine rWCU verbraucht. Für jeden Löschvorgang durch den Kunden wird eine rWCU verbraucht.
Die Metriken ReplicationLatency und PendingReplicationCount werden in CloudWatch veröffentlicht. Die Metriken ReplicationLatency und PendingReplicationCount werden in CloudWatch veröffentlicht. Die Metrik ReplicationLatency wird in CloudWatch veröffentlicht.

Ziel

Ein Löschvorgang findet in zwei Phasen statt:

  • In Phase 1 wird das Löschkennzeichen durch „UpdateItem“ gesetzt.

  • In Phase 2 wird das Element von „DeleteItem“ gelöscht.

Das Element wird mit „DeleteItem“ gelöscht. Das Element wird mit „DeleteItem“ gelöscht.
Es werden zwei Streams-Datensätze generiert. Der erste Datensatz enthält die am aws:rep:deleting-Feld vorgenommene Änderung. Der zweite Datensatz enthält die vom Kunden geschriebenen Attribute und die aws:rep:*-Attribute. Es wird ein einzelner Stream-Datensatz generiert, der die vom Kunden geschriebenen Attribute enthält. Es wird ein einzelner Stream-Datensatz generiert, der die vom Kunden geschriebenen Attribute enthält.
Für jeden Löschvorgang durch den Kunden werden zwei rWCUs verbraucht. Für jeden Löschvorgang durch den Kunden wird eine rWCU verbraucht. Für jeden Löschvorgang durch den Kunden wird eine rWCU verbraucht.
Die Metriken ReplicationLatency und PendingReplicationCount werden in CloudWatch veröffentlicht. Die Metrik ReplicationLatency wird in CloudWatch veröffentlicht. Die Metrik ReplicationLatency wird in CloudWatch veröffentlicht.

Aktualisieren auf Version 2019.11.21 (Aktuell)

Führen Sie die folgenden Schritte aus, um Ihre Version für globale DynamoDB-Tabellen mithilfe der AWS-Managementkonsole zu aktualisieren.

So aktualisieren globale Tabellen auf Version 2019.11.21 (Aktuell)
  1. Öffnen Sie die DynamoDB-Konsole unter https://console.aws.amazon.com/dynamodb/home.

  2. Wählen Sie im Navigationsbereich auf der linken Seite der Konsole die Option Tabellen und dann die globale Tabelle aus, die Sie auf Version 2019.11.21 (Aktuell) aktualisieren möchten.

  3. Wählen Sie die Registerkarte Globale Tabellen aus.

  4. Wählen Sie Update version (Version aktualisieren) aus.

    Screenshot der Konsole mit der Schaltfläche „Update version“ (Version aktualisieren)
  5. Lesen Sie sich die neuen Anforderungen durch und stimmen Sie ihnen zu, wählen Sie dann Update version Version aktualisieren.

  6. Nach Abschluss des Aktualisierungsvorgangs wird die in der Konsole angezeigte Version für globale Tabellen in 2019.11.21 geändert.