

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.

# Zugreifen auf Amazon QLDB mithilfe der QLDB-Shell (nur Daten-API)
<a name="data-shell"></a>

**Wichtig**  
Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter [Migrieren eines Amazon QLDB-Ledgers zu Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

Amazon QLDB bietet eine Befehlszeilen-Shell für die Interaktion mit der Transaktionsdaten-API. Mit der QLDB-Shell können Sie [PartiQL-Anweisungen](ql-reference.md) für Ledger-Daten ausführen.

Die neueste Version dieser Shell ist in Rust geschrieben und als Open Source im GitHub Repository [awslabs/ im Standardzweig verfügbar amazon-qldb-shell](https://github.com/awslabs/amazon-qldb-shell). `main` Die Python-Version (v1) ist auch weiterhin für die Verwendung im selben Repository in der `master` Filiale verfügbar.

**Anmerkung**  
Die Amazon QLDB-Shell unterstützt nur die `qldb-session` Transaktionsdaten-API. Diese API wird nur für die Ausführung von PartiQL-Anweisungen in einem QLDB-Ledger verwendet.  
Informationen zur Interaktion mit den `qldb` Verwaltungs-API-Vorgängen über eine Befehlszeilenschnittstelle finden Sie unter. [Zugreifen auf Amazon QLDB mithilfe der AWS CLI (nur Verwaltungs-API)](Tools.CLI.md)

Dieses Tool ist nicht dafür vorgesehen, in eine Anwendung integriert oder für Produktionszwecke verwendet zu werden. Das Ziel dieses Tools ist es, Sie schnell mit QLDB und PartiQL experimentieren zu lassen.

In den folgenden Abschnitten wird beschrieben, wie Sie mit der QLDB-Shell beginnen.

**Topics**
+ [Voraussetzungen](#data-shell-prerequisites)
+ [Installation der Shell](#data-shell-install)
+ [Die Shell aufrufen](#data-shell-invoking)
+ [Shell-Parameter](#data-shell-params)
+ [Befehlsreferenz](#data-shell-reference)
+ [Einzelne Anweisungen ausführen](#data-shell-indiv-statements)
+ [Verwalten von Transaktionen](#data-shell-transactions)
+ [Die Shell wird beendet](#data-shell-exiting)
+ [Beispiel](#data-shell-examples)

## Voraussetzungen
<a name="data-shell-prerequisites"></a>

Bevor Sie mit der QLDB-Shell beginnen, müssen Sie Folgendes tun:

1. Folgen Sie den Anweisungen zur AWS Einrichtung in. [Zugreifen auf Amazon QLDB](accessing.md) Diese umfasst die folgenden Funktionen:

   1. Melde dich an für AWS.

   1. Erstellen Sie einen Benutzer mit den entsprechenden QLDB-Berechtigungen.

   1. Gewähren Sie programmatischen Zugriff für die Entwicklung.

1. Richten Sie Ihre AWS Anmeldeinformationen und Ihren Standard AWS-Region ein. Anweisungen finden Sie im *AWS Command Line Interface Benutzerhandbuch* unter [Grundlagen der Konfiguration](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html).

   Eine vollständige Liste der verfügbaren Regionen finden Sie unter [Amazon QLDB-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/qldb.html) in der. *Allgemeine AWS-Referenz*

1. Erstellen Sie für alle Ledger im `STANDARD` Berechtigungsmodus IAM-Richtlinien, die Ihnen Berechtigungen zum Ausführen von PartiQL-Anweisungen in den entsprechenden Tabellen gewähren. Informationen zum Erstellen dieser Richtlinien finden Sie unter. [Erste Schritte mit dem Standardberechtigungsmodus in Amazon QLDB](getting-started-standard-mode.md)

## Installation der Shell
<a name="data-shell-install"></a>

Informationen zur Installation der neuesten Version der QLDB-Shell finden Sie in der Datei [README.md](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#installation) unter. GitHub QLDB stellt vorgefertigte Binärdateien für Linux, macOS und Windows im Bereich [Releases des Repositorys](https://github.com/awslabs/amazon-qldb-shell/releases) bereit. GitHub 

Für macOS ist die Shell in den `aws/tap` [Homebrew-Tap](https://docs.brew.sh/) integriert. Führen Sie die folgenden Befehle aus, um die Shell unter macOS mit Homebrew zu installieren.

```
$ xcode-select --install # Required to use Homebrew
$ brew tap aws/tap # Add AWS as a Homebrew tap
$ brew install qldbshell
```

### Konfiguration
<a name="data-shell-install.config"></a>

Nach der Installation lädt die Shell die Standardkonfigurationsdatei, die sich `$XDG_CONFIG_HOME/qldbshell/config.ion` bei der Initialisierung unter befindet. Unter Linux und macOS befindet sich diese Datei normalerweise unter`~/.config/qldbshell/config.ion`. Wenn eine solche Datei nicht existiert, läuft die Shell mit den Standardeinstellungen.

Sie können eine `config.ion` Datei nach der Installation manuell erstellen. Diese Konfigurationsdatei verwendet das [Amazon Ion-Datenformat](ion.md). Das Folgende ist ein Beispiel für eine `config.ion` Minimaldatei.

```
{
  default_ledger: "my-example-ledger"
}
```

Wenn in Ihrer Konfigurationsdatei `default_ledger` nicht festgelegt ist, ist der `--ledger` Parameter erforderlich, wenn Sie die Shell aufrufen. Eine vollständige Liste der Konfigurationsoptionen finden Sie in der [README.md-Datei](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#configuration) unter. GitHub

## Die Shell aufrufen
<a name="data-shell-invoking"></a>

Um die QLDB-Shell auf Ihrem Befehlszeilenterminal für ein bestimmtes Ledger aufzurufen, führen Sie den folgenden Befehl aus. Ersetzen Sie es durch Ihren *my-example-ledger* Ledger-Namen.

```
$ qldb --ledger my-example-ledger
```

Dieser Befehl stellt eine Verbindung zu Ihrem AWS-Region Standardbefehl her. Um die Region explizit anzugeben, können Sie den Befehl mit dem `--qldb-session-endpoint` Parameter `--region` oder ausführen, wie im folgenden Abschnitt beschrieben.

Nach dem Aufrufen einer `qldb` Shell-Sitzung können Sie die folgenden Eingabetypen eingeben:
+ [Shell-Befehle](#data-shell-reference)
+ [Einzelne PartiQL-Anweisungen in separaten Transaktionen](#data-shell-indiv-statements)
+ [Mehrere PartiQL-Anweisungen innerhalb einer Transaktion](#data-shell-transactions)

## Shell-Parameter
<a name="data-shell-params"></a>

Eine vollständige Liste der verfügbaren Flags und Optionen zum Aufrufen einer Shell erhalten Sie, wenn Sie den `qldb` Befehl mit dem `--help` Flag wie folgt ausführen.

```
$ qldb --help
```

Im Folgenden sind einige wichtige Flags und Optionen für den `qldb` Befehl aufgeführt. Sie können diese optionalen Parameter hinzufügen, um die Konfigurationsoptionen Profil AWS-Region, Endpunkt, Ergebnisformat und andere Konfigurationsoptionen zu überschreiben.

**Usage**

```
$ qldb [FLAGS] [OPTIONS]
```FLAGGEN

**`-h`, `--help`**  
Druckt Hilfeinformationen aus.

**`-v`, `--verbose`**  
Konfiguriert die Ausführlichkeit der Protokollierung. Standardmäßig protokolliert die Shell nur Fehler. Um den Ausführlichkeitsgrad zu erhöhen, wiederholen Sie dieses Argument (z. B.`-vv`). Die höchste Stufe entspricht `-vvv` der Ausführlichkeit. `trace`

**`-V`, `--version`**  
Druckt Versionsinformationen.OPTIONS

**`-l`, `--ledger` *LEDGER\$1NAME***  
Der Name des Ledgers, zu dem eine Verbindung hergestellt werden soll. Dies ist ein erforderlicher Shell-Parameter, falls er `default_ledger` nicht in Ihrer `config.ion` Datei festgelegt ist. In dieser Datei können Sie zusätzliche Optionen festlegen, z. B. die Region.

**`-c`, `--config` *CONFIG\$1FILE***  
Die Datei, in der Sie beliebige Shell-Konfigurationsoptionen definieren können. Einzelheiten zur Formatierung und eine vollständige Liste der Konfigurationsoptionen finden Sie in der Datei [README.md](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#configuration) unter. GitHub

**`-f`, `--format` `ion|table`**  
Das Ausgabeformat Ihrer Abfrageergebnisse. Der Standardwert ist `ion`.

**`-p`, `--profile` *PROFILE***  
Der Speicherort Ihres AWS Anmeldeinformationsprofils, das für die Authentifizierung verwendet werden soll.  
Falls nicht angegeben, verwendet die Shell Ihr AWS Standardprofil, das sich unter befindet`~/.aws/credentials`.

**`-r`, `--region` *REGION\$1CODE***  
Der AWS-Region Code des QLDB-Ledgers, zu dem eine Verbindung hergestellt werden soll. Beispiel: `us-east-1`.  
Wenn nicht angegeben, stellt die Shell eine Verbindung zu Ihrem Standard her, AWS-Region wie in Ihrem Profil angegeben. AWS 

**`-s`, `--qldb-session-endpoint` *QLDB\$1SESSION\$1ENDPOINT***  
Der `qldb-session` API-Endpunkt, zu dem eine Verbindung hergestellt werden soll.  
Eine vollständige Liste der verfügbaren QLDB-Regionen und -Endpunkte finden Sie unter [Amazon QLDB-Endpunkte](https://docs.aws.amazon.com/general/latest/gr/qldb.html) und Kontingente in der. *Allgemeine AWS-Referenz*

## Befehlsreferenz
<a name="data-shell-reference"></a>

Nachdem Sie eine `qldb` Sitzung aufgerufen haben, unterstützt die Shell die folgenden Schlüssel und Datenbankbefehle:


**Shell-Schlüssel**  

| Schlüssel | Beschreibung der Funktion | 
| --- | --- | 
| Enter | Führt die Anweisung aus. | 
|  Escape\$1 Enter (macOS, Linux) Shift\$1 Enter (Windows)  |  Beginnt eine neue Zeile, um eine Anweisung einzugeben, die sich über mehrere Zeilen erstreckt. Sie können auch Eingabetext mit mehreren Zeilen kopieren und in die Shell einfügen. Anweisungen zur Einrichtung Option statt Escape als Metaschlüssel in macOS findest du auf der [OS X Daily-Website](https://osxdaily.com/2013/02/01/use-option-as-meta-key-in-mac-os-x-terminal/).  | 
| Ctrl\$1C | Bricht den aktuellen Befehl ab. | 
| Ctrl\$1D | Signalisiert das Ende der Datei (EOF) und beendet die aktuelle Ebene der Shell. Wenn es sich nicht um eine aktive Transaktion handelt, wird die Shell beendet. Bricht bei einer aktiven Transaktion die Transaktion ab. | 


**Befehle für die Shell-Datenbank**  
<a name="data-shell-reference-commands"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/qldb/latest/developerguide/data-shell.html)

**Anmerkung**  
Bei allen QLDB-Shell-Befehlen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

## Einzelne Anweisungen ausführen
<a name="data-shell-indiv-statements"></a>

Mit Ausnahme der Datenbankbefehle und Shell-Metabefehle, die in [README.md](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#command-interface) aufgeführt sind, interpretiert die Shell jeden Befehl, den Sie eingeben, als separate PartiQL-Anweisung. Standardmäßig aktiviert die Shell den Modus. `auto-commit` Dieser Modus ist konfigurierbar.

In diesem `auto-commit` Modus führt die Shell implizit jede Anweisung in ihrer eigenen Transaktion aus und schreibt die Transaktion automatisch fest, wenn keine Fehler gefunden werden. Das bedeutet, dass Sie nicht jedes Mal, wenn Sie eine Anweisung ausführen, `commit` manuell `start transaction` (oder`begin`) ausführen müssen.

## Verwalten von Transaktionen
<a name="data-shell-transactions"></a>

Alternativ können Sie mit der QLDB-Shell Transaktionen manuell steuern. Sie können mehrere Anweisungen innerhalb einer Transaktion interaktiv oder nicht interaktiv ausführen, indem Sie Befehle und Anweisungen nacheinander stapeln.

### Interaktive Transaktionen
<a name="data-shell-transactions.interactive"></a>

Gehen Sie wie folgt vor, um eine interaktive Transaktion auszuführen.

1. Um eine Transaktion zu starten, geben Sie den `begin` Befehl ein.

   ```
   qldb> begin
   ```

   Nachdem Sie eine Transaktion gestartet haben, zeigt die Shell die folgende Eingabeaufforderung an.

   ```
   qldb *>  
   ```

1. Anschließend wird jede Anweisung, die Sie eingeben, in derselben Transaktion ausgeführt.
   + Sie können beispielsweise eine einzelne Anweisung wie folgt ausführen.

     ```
     qldb *> SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'
     ```

     Nachdem Sie die Taste gedrückt habenEnter, zeigt die Shell die Ergebnisse der Anweisung an.
   + Sie können auch mehrere Anweisungen oder Befehle eingeben, die durch ein Semikolon (`;`) getrennt sind, und zwar wie folgt.

     ```
     qldb *> SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'; commit
     ```

1. Um die Transaktion zu beenden, geben Sie einen der folgenden Befehle ein.
   + Geben Sie den `commit` Befehl ein, um Ihre Transaktion in das Journal des Hauptbuchs zu übernehmen.

     ```
     qldb *> commit
     ```
   + Geben Sie den `abort` Befehl ein, um Ihre Transaktion zu beenden und alle von Ihnen vorgenommenen Änderungen abzulehnen.

     ```
     qldb *> abort
     transaction was aborted
     ```

**Timeout-Limit für Transaktionen**

[Eine interaktive Transaktion hält sich an das Transaktions-Timeout-Limit von QLDB.](limits.md#limits.fixed) Wenn Sie eine Transaktion nicht innerhalb von **30 Sekunden** nach dem Start festschreiben, lässt QLDB die Transaktion automatisch ablaufen und lehnt alle während der Transaktion vorgenommenen Änderungen ab.

Anstatt die Ergebnisse der Anweisung anzuzeigen, zeigt die Shell dann eine Ablauffehlermeldung an und kehrt zur normalen Eingabeaufforderung zurück. Um es erneut zu versuchen, müssen Sie den `begin` Befehl erneut eingeben, um eine neue Transaktion zu starten.

```
transaction failed after 1 attempts, last error: communication failure: Transaction 2UMpiJ5hh7WLjVgEiMLOoO has expired
```

### Nicht interaktive Transaktionen
<a name="data-shell-transactions.noninteractive"></a>

Sie können eine vollständige Transaktion mit mehreren Anweisungen ausführen, indem Sie Befehle und Anweisungen nacheinander wie folgt stapeln.

```
qldb> begin; SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'; SELECT * FROM Person p, DriversLicense l WHERE p.GovId = l.LicenseNumber; commit
```

Sie müssen jeden Befehl und jede Anweisung durch ein Semikolon () trennen. `;` Wenn eine Anweisung in der Transaktion nicht gültig ist, lehnt die Shell die Transaktion automatisch ab. Die Shell fährt mit den nachfolgenden Anweisungen, die Sie eingegeben haben, nicht fort.

Sie können auch mehrere Transaktionen einrichten.

```
qldb> begin; statement1; commit; begin; statement2; statement3; commit
```

Ähnlich wie im vorherigen Beispiel: Wenn eine Transaktion fehlschlägt, fährt die Shell nicht mit den nachfolgenden Transaktionen oder Anweisungen fort, die Sie eingegeben haben.

Wenn Sie eine Transaktion nicht beenden, wechselt die Shell in den interaktiven Modus und fordert Sie auf, den nächsten Befehl oder die nächste Anweisung einzugeben.

```
qldb> begin; statement1; commit; begin
qldb *>
```

## Die Shell wird beendet
<a name="data-shell-exiting"></a>

Um die aktuelle `qldb` Shell-Sitzung zu beenden, geben Sie den `quit` Befehl `exit` oder ein oder verwenden Sie die Tastenkombination Ctrl \$1, D wenn sich die Shell nicht in einer Transaktion befindet.

```
qldb> exit
$
```

```
qldb> quit
$
```

## Beispiel
<a name="data-shell-examples"></a>

Informationen zum Schreiben von PartiQL-Anweisungen in QLDB finden Sie unter. [Amazon QLDB PartiQL-Referenz](ql-reference.md)

**Example**  
Das folgende Beispiel zeigt eine typische Folge grundlegender Befehle.  
Die QLDB-Shell führt jede PartiQL-Anweisung in diesem Beispiel in einer eigenen Transaktion aus.  
In diesem Beispiel wird unterstellt, dass der Ledger `test-ledger` bereits vorhanden und aktiv ist.

```
$ qldb --ledger test-ledger --region us-east-1

qldb> CREATE TABLE TestTable
qldb> INSERT INTO TestTable `{"Name": "John Doe"}`
qldb> SELECT * FROM TestTable
qldb> DROP TABLE TestTable
qldb> exit
```