

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
<a name="WorkingWithTables.Basics"></a>

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

**Topics**
+ [

## Erstellen einer Tabelle
](#WorkingWithTables.Basics.CreateTable)
+ [

## Beschreiben einer Tabelle
](#WorkingWithTables.Basics.DescribeTable)
+ [

## Aktualisieren einer Tabelle
](#WorkingWithTables.Basics.UpdateTable)
+ [

## Löschen einer Tabelle
](#WorkingWithTables.Basics.DeleteTable)
+ [

## Löschschutz verwenden
](#WorkingWithTables.Basics.DeletionProtection)
+ [

## Auflisten von Tabellennamen
](#WorkingWithTables.Basics.ListTables)
+ [

## Beschreiben der bereitgestellten Durchsatzkontingente
](#WorkingWithTables.Basics.DescribeLimits)

## Erstellen einer Tabelle
<a name="WorkingWithTables.Basics.CreateTable"></a>

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](HowItWorks.NamingRulesDataTypes.md).
+ **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](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey).
+ **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 [DynamoDB – Modus mit bereitgestellter Kapazität](provisioned-capacity-mode.md) und [Automatische Verwaltung der Durchsatzkapazität mit DynamoDB-Auto-Scaling](AutoScaling.md).

### Beispiel 1: Erstellen einer On-Demand-Tabelle
<a name="create-payperrequest-example"></a>

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 2: Erstellen einer Tabelle im Modus bereitgestellter Kapazität
<a name="create-provisioned-example"></a>

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 3: Erstellen Sie eine Tabelle mit der Tabellenklasse DynamoDB Standard-Infrequent Access
<a name="create-infrequent-access-example"></a>

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
<a name="WorkingWithTables.Basics.DescribeTable"></a>

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. 

**Example**  

```
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](https://aws.amazon.com/dynamodb/pricing/).) Diese zusätzlichen 100 Byte pro Element werden nicht in Kapazitätseinheitenberechnungen oder durch die `DescribeTable`-Operation verwendet. 

## Aktualisieren einer Tabelle
<a name="WorkingWithTables.Basics.UpdateTable"></a>

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 read/write Kapazitätsmodus der Tabelle.
+ Bearbeiten Sie globale sekundäre Indizes für die Tabelle (siehe [Verwenden globaler sekundärer Indizes in DynamoDB](GSI.md)).
+ Aktivieren oder Deaktivieren von DynamoDB Streams für die Tabelle (siehe [Ändern Sie die Datenerfassung für DynamoDB Streams](Streams.md)).

**Example**  
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`.

**Example**  
Das folgende AWS CLI Beispiel zeigt, wie der read/write Kapazitä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
<a name="WorkingWithTables.Basics.DeleteTable"></a>

Sie können eine ungenutzte Tabelle mit der `DeleteTable`-Operation entfernen. Das Löschen einer Tabelle ist ein unwiederbringlicher Vorgang. Informationen zum Löschen einer Tabelle mit der AWS-Managementkonsole finden Sie unter [Schritt 6: (Optional) Löschen der DynamoDB-Tabelle, um Ressourcen zu bereinigen](getting-started-step-6.md).

**Example**  
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
<a name="WorkingWithTables.Basics.DeletionProtection"></a>

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öschschutz-Eigenschaft wird von der DynamoDB-Konsole, der API, CLI/SDK und CloudFormation unterstützt. Die API `CreateTable` unterstützt die Löschschutz-Eigenschaft während der Tabellenerstellung und die API `UpdateTable` unterstützt Änderungen an der Löschschutz-Eigenschaft für vorhandene Tabellen.

**Anmerkung**  
Wenn ein AWS Konto gelöscht wird, werden alle Daten dieses Kontos, einschließlich der Tabellen, weiterhin 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
<a name="WorkingWithTables.Basics.ListTables"></a>

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

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

```
aws dynamodb list-tables
```

## Beschreiben der bereitgestellten Durchsatzkontingente
<a name="WorkingWithTables.Basics.DescribeLimits"></a>

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

**Example**  
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](ServiceQuotas.md#default-limits-throughput).