Grundlegende Operationen für DynamoDB-Tabellen - 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.

Grundlegende Operationen für DynamoDB-Tabellen

Ähnlich wie andere Datenbanksysteme speichert Amazon DynamoDB Daten in Tabellen. Sie können Ihre Tabellen mit einigen grundlegenden Operationen verwalten.

Erstellen einer Tabelle

Verwenden Sie CreateTable, um eine Tabelle in Amazon DynamoDB zu erstellen. Zum Erstellen einer Tabelle müssen Sie folgende Informationen angeben:

  • Tabellenname. Der Name muss den Benennungsregeln von DynamoDB entsprechen und für das aktuelle AWS Konto und die Region eindeutig sein. So können Sie beispielsweise eine People-Tabelle in USA Ost (Nord-Virginia) und eine andere People-Tabelle in Europa (Irland) erstellen. Allerdings würden sich diese beiden Tabellen vollständig unterscheiden. Weitere Informationen finden Sie unter Unterstützte Datentypen und Benennungsregeln in Amazon DynamoDB.

  • Primärschlüssel. Der Primärschlüssel kann aus einem Attribut (Partitionsschlüssel) oder zwei Attributen (Partitionsschlüssel und Sortierschlüssel) bestehen. Sie müssen die Attributnamen, Datentypen und die Rolle der einzelnen Attribute angeben: HASH (für einen Partitionsschlüssel) und RANGE (für einen Sortierschlüssel). Weitere Informationen finden Sie unter Primärschlüssel.

  • Durchsatzeinstellungen (für bereitgestellte Tabellen). Im Modus bereitgestellter Kapazität müssen Sie die Anfangseinstellungen für den Lese- und Schreibdurchsatz für die Tabelle angeben. Sie können diese Einstellungen später anpassen oder das DynamoDB-Auto-Scaling aktivieren, um die Einstellungen für Sie zu verwalten. Weitere Informationen erhalten Sie unter Bereitgestellter Kapazitätsmodus von DynamoDB und Automatische Verwaltung der Durchsatzkapazität mit DynamoDB-Auto-Scaling.

Beispiel 1: Erstellen einer Tabelle im Modus bereitgestellter Kapazität

Das folgende AWS CLI Beispiel zeigt, wie eine Tabelle () erstellt wird. Music Der Primärschlüssel besteht aus Artist (Partitionsschlüssel) und SongTitle (Sortierschlüssel), die beide vom Datentyp String sind. Der maximale Durchsatz für diese Tabelle ist 10 Lesekapazitätseinheiten und 5 Schreibkapazitätseinheiten.

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5

Die CreateTable-Operation gibt Metadaten für die Tabelle, wie unten gezeigt, zurück.

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 10 }, "TableSizeBytes": 0, "TableName": "Music", "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397215.37 } }

Das Element TableStatus gibt den aktuellen Status der Tabelle an (CREATING). Es kann eine Weile dauern die Tabelle zu erstellen, abhängig von den Werten die Sie für ReadCapacityUnits und WriteCapacityUnits angeben. Größere Werte für diese erfordern, dass DynamoDB der Tabelle mehr Ressourcen zuweist.

Beispiel 2: Erstellen einer On-Demand-Tabelle

So erstellen Sie dieselbe Tabelle Music im On-Demand-Modus

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --billing-mode=PAY_PER_REQUEST

Die CreateTable-Operation gibt Metadaten für die Tabelle, wie unten gezeigt, zurück.

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 0, "ReadCapacityUnits": 0 }, "TableSizeBytes": 0, "TableName": "Music", "BillingModeSummary": { "BillingMode": "PAY_PER_REQUEST" }, "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397468.348 } }
Wichtig

Wenn DescribeTable für eine On-Demand-Tabelle aufgerufen wird, werden Lesekapazitätseinheiten und Schreibkapazitätseinheiten auf 0 eingestellt.

Beispiel 3: Erstellen Sie eine Tabelle mit der Tabellenklasse DynamoDB Standard-Infrequent Access

So erstellen Sie dieselbe Music-Tabelle mit der Tabellenklasse DynamoDB Standard-Infrequent Access.

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5 \ --table-class STANDARD_INFREQUENT_ACCESS

Die CreateTable-Operation gibt Metadaten für die Tabelle, wie unten gezeigt, zurück.

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 10 }, "TableClassSummary": { "LastUpdateDateTime": 1542397215.37, "TableClass": "STANDARD_INFREQUENT_ACCESS" }, "TableSizeBytes": 0, "TableName": "Music", "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397215.37 } }

Beschreiben einer Tabelle

Um Details über eine Tabelle anzuzeigen, verwenden Sie die DescribeTable-Operation. Sie müssen den Tabellennamen angeben. Die Ausgabe von DescribeTable erfolgt in demselben Format wie bei CreateTable. Sie enthält den Zeitstempel, mit dem die Tabelle erstellt wurde, ihr Schlüsselschema, ihre bereitgestellten Durchsatzeinstellungen, ihre geschätzte Größe und alle vorhandenen sekundären Indexe.

Wichtig

Wenn DescribeTable für eine On-Demand-Tabelle aufgerufen wird, werden Lesekapazitätseinheiten und Schreibkapazitätseinheiten auf 0 eingestellt.

Beispiel
aws dynamodb describe-table --table-name Music

Die Tabelle ist einsatzbereit, wenn der TableStatus sich von CREATING in ACTIVE ändert.

Anmerkung

Wenn Sie eine DescribeTable-Anforderung sofort nach der CreateTable-Anforderung ausgeben, kann DynamoDB möglicherweise einen Fehler (ResourceNotFoundException) zurückgeben. Der Grund hierfür ist, dass DescribeTable eine Eventually Consistent-Abfrage verwendet und dass die Metadaten für Ihre Tabelle zu diesem Zeitpunkt möglicherweise nicht verfügbar sein könnten. Warten Sie einige Sekunden und versuchen Sie dann die DescribeTable-Anforderung erneut.

Für Abrechnungszwecke beinhalten Ihre DynamoDB-Speicherkosten einen Overhead pro Artikel von 100 Byte. (Weitere Informationen finden Sie unter DynamoDB-Preise.) Diese zusätzlichen 100 Byte pro Element werden nicht in Kapazitätseinheitenberechnungen oder durch die DescribeTable-Operation verwendet.

Aktualisieren einer Tabelle

Die UpdateTable-Operation ermöglicht es Ihnen einen der folgenden Schritte ausführen:

Beispiel

Das folgende AWS CLI Beispiel zeigt, wie die Einstellungen für den bereitgestellten Durchsatz einer Tabelle geändert werden.

aws dynamodb update-table --table-name Music \ --provisioned-throughput ReadCapacityUnits=20,WriteCapacityUnits=10
Anmerkung

Wenn Sie eine UpdateTable-Anforderung ausgeben, ändert sich der Tabellenstatus von AVAILABLE in UPDATING. Die Tabelle steht vollständig zur Verfügung, während sie UPDATING. Wenn dieser Vorgang abgeschlossen ist, ändert sich der Status der Tabelle von UPDATING in AVAILABLE.

Beispiel

Das folgende AWS CLI Beispiel zeigt, wie der Lese-/Schreibkapazitätsmodus einer Tabelle in den On-Demand-Modus geändert wird.

aws dynamodb update-table --table-name Music \ --billing-mode PAY_PER_REQUEST

Löschen einer Tabelle

Sie können eine ungenutzte Tabelle mit der DeleteTable-Operation entfernen. Das Löschen einer Tabelle ist ein unwiederbringlicher Vorgang.

Beispiel

Das folgende AWS CLI Beispiel zeigt, wie eine Tabelle gelöscht wird.

aws dynamodb delete-table --table-name Music

Wenn Sie eine DeleteTable-Anforderung ausgeben, ändert sich der Tabellenstatus von ACTIVE in DELETING. Es kann eine Weile dauern die Tabelle zu löschen, abhängig von den verwendeten Ressourcen (z. B. die in der Tabelle gespeicherten Daten und alle Streams oder Indizes der Tabelle).

Wenn die DeleteTable-Operation abschließt, ist die Tabelle in DynamoDB nicht mehr vorhanden.

Löschschutz verwenden

Mit der Löschschutz-Eigenschaft können Sie eine Tabelle vor dem versehentlichen Löschen schützen. Wenn Sie diese Eigenschaft für Tabellen aktivieren, können Sie sicherstellen, dass Tabellen nicht versehentlich während regulärer Tabellenverwaltungsvorgängen durch Ihre Administratoren gelöscht werden. Auf diese Weise können Sie Störungen des normalen Geschäftsbetriebs vermeiden.

Der Tabelleneigentümer oder ein autorisierter Administrator steuert die Löschschutz-Eigenschaft für jede Tabelle. Die Löschschutz-Eigenschaft ist bei Tabellen standardmäßig deaktiviert. Dies umfasst globale Replikate und Tabellen, die aus Backups wiederhergestellt wurden. Wenn der Löschschutz für eine Tabelle deaktiviert ist, kann die Tabelle von allen Benutzern gelöscht werden, die durch eine Identity and Access Management (IAM) -Richtlinie autorisiert wurden. Wenn der Löschschutz für eine Tabelle aktiviert ist, kann die Tabelle von niemandem gelöscht werden.

Wenn Sie diese Einstellung ändern möchten, rufen Sie Zusätzliche Einstellungen für die Tabelle auf, navigieren Sie zum Bereich Löschschutz und wählen Sie Löschschutz aktivieren aus.

Die Löschschutzeigenschaft wird von der DynamoDB-Konsole,API,CLI/SDKund unterstützt. AWS CloudFormation Die CreateTable API unterstützt die Löschschutzeigenschaft bei der Tabellenerstellung und UpdateTable API unterstützt das Ändern der Löschschutzeigenschaft für bestehende Tabellen.

Anmerkung
  • Wenn ein AWS Konto gelöscht wird, werden alle Daten dieses Kontos, einschließlich der Tabellen, trotzdem innerhalb von 90 Tagen gelöscht.

  • Wenn DynamoDB keinen Zugriff mehr auf einen kundenverwalteten Schlüssel hat, der zum Verschlüsseln einer Tabelle verwendet wurde, wird die Tabelle trotzdem archiviert. Bei der Archivierung wird ein Backup der Tabelle erstellt und das Original gelöscht.

Auflisten von Tabellennamen

Die ListTables Operation gibt die Namen der DynamoDB-Tabellen für das AWS Girokonto und die Region zurück.

Beispiel

Das folgende AWS CLI Beispiel zeigt, wie die DynamoDB-Tabellennamen aufgelistet werden.

aws dynamodb list-tables

Beschreiben der bereitgestellten Durchsatzkontingente

Der DescribeLimits Vorgang gibt die aktuellen Lese- und Schreibkapazitätskontingente für das aktuelle AWS Konto und die Region zurück.

Beispiel

Das folgende AWS CLI Beispiel zeigt, wie die aktuell bereitgestellten Durchsatzquoten beschrieben werden.

aws dynamodb describe-limits

Die Ausgabe zeigt die oberen Kontingente der Lese- und Schreibkapazitätseinheiten für das aktuelle AWS Konto und die Region.

Weitere Informationen zu diesen Kontingenten und zum Anfordern einer Kontingenterhöhung finden Sie unter Standardkontingente für den Durchsatz.