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.
Themen
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 anderePeople
-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) undRANGE
(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-PreiseDescribeTable
-Operation verwendet.
Aktualisieren einer Tabelle
Die UpdateTable
-Operation ermöglicht es Ihnen einen der folgenden Schritte ausführen:
-
Ändern Sie die bereitgestellten Durchsatzeinstellungen (für Tabellen im Modus bereitgestellter Kapazität).
-
Ändern Sie den Lese-/Schreibkapazitätsmodus der Tabelle.
-
Bearbeiten Sie globale sekundäre Indizes für die Tabelle (siehe Verwenden globaler sekundärer Indizes in DynamoDB).
-
Aktivieren oder Deaktivieren von DynamoDB Streams für die Tabelle (siehe Ändern Sie die Datenerfassung für DynamoDB Streams).
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.