

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.

# Was ist Amazon QLDB?
<a name="what-is"></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 Quantum Ledger Database (Amazon QLDB) ist eine vollständig verwaltete Ledger-Datenbank, die ein transparentes, unveränderliches und kryptografisch überprüfbares Transaktionsprotokoll bereitstellt, das einer zentralen vertrauenswürdigen Stelle gehört. Sie können Amazon QLDB verwenden, um alle Änderungen an Anwendungsdaten nachzuverfolgen und einen vollständigen und überprüfbaren Verlauf der Änderungen im Laufe der Zeit zu verwalten. Weitere Informationen zu den verschiedenen Datenbankoptionen, die in Amazon Web Services verfügbar sind, finden Sie unter [Choosing the right database for your organization on AWS](https://aws.amazon.com/getting-started/decision-guides/databases-on-aws-how-to-choose/).

Ein Ledger (Hauptbuch) wird normalerweise verwendet, um einen Verlauf der wirtschaftlichen und finanziellen Aktivitäten eines Unternehmens aufzuzeichnen. Viele Organisationen erstellen Anwendungen mit Ledger-artigen Funktionen, da sie einen korrekten Verlauf der Daten ihrer Anwendungen beibehalten möchten. Beispiel: Sie möchten möglicherweise den Verlauf von Haben und Soll in Bankgeschäften verfolgen, die Herkunft der Daten in einem Versicherungsanspruch überprüfen oder die Bewegung eines Elements in einem Lieferkettennetzwerk verfolgen. Ledger-Anwendungen werden häufig mithilfe von Prüfungstabellen oder Prüfpfaden implementiert, die in relationalen Datenbanken erstellt werden.

Amazon QLDB ist eine neue Datenbankklasse, mit der Sie den komplexen Entwicklungsaufwand für die Erstellung eigener Ledger-ähnlicher Anwendungen überflüssig machen müssen. Mit QLDB ist der Verlauf der Änderungen an Ihren Daten unveränderlich — er kann nicht überschrieben oder an Ort und Stelle geändert werden. Und mithilfe von Kryptografie können Sie überprüfen, ob keine unbeabsichtigten Änderungen an den Daten Ihrer Anwendung vorgenommen wurden. *QLDB verwendet ein unveränderliches Transaktionsprotokoll, das als Journal bezeichnet wird.* Im Journal wird nur angehängt und es besteht aus einer sequenzierten und hashverketteten Gruppe von *Blöcken*, die Ihre festgeschriebenen Daten enthalten.

## Amazon QLDB-Video
<a name="what-is.video"></a>

Das folgende Video bietet einen Überblick über Amazon QLDB und erklärt, wie Sie davon profitieren können.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/jcZ_rsLJrqk/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/jcZ_rsLJrqk)


## Amazon QLDB — Preisgestaltung
<a name="what-is.pricing"></a>

Mit Amazon QLDB zahlen Sie nur für das, was Sie tatsächlich nutzen, ohne Mindestgebühren oder obligatorische Inanspruchnahme der Services. Sie zahlen nur für die Ressourcen, die Ihre Ledger-Datenbank nutzt, und müssen nicht im Vorhinein bereitstellen.

Weitere Informationen finden Sie unter [Amazon QLDB-Preise](https://aws.amazon.com/qldb/pricing/).

## Erste Schritte mit QLDB
<a name="what-is.get-started"></a>

Wir empfehlen, dass Sie zuerst die folgenden Themen lesen:
+ **[Überblick über Amazon QLDB](what-is.overview.md)**— Um sich einen allgemeinen Überblick über QLDB zu verschaffen.
+ **[Kernkonzepte und Terminologie in Amazon QLDB](ledger-structure.md)**— Um grundlegende QLDB-Konzepte und -Terminologie zu erlernen.
+ **[Zugreifen auf Amazon QLDB](accessing.md)**— Um zu erfahren, wie man mit der AWS-Managementkonsole, API oder AWS Command Line Interface ()AWS CLI auf QLDB zugreift. 
+ **[So funktioniert Amazon QLDB mit IAM](security_iam_service-with-iam.md)**— Um zu lernen, wie man den Zugriff auf QLDB mithilfe von AWS Identity and Access Management (IAM) steuert.

Informationen zum schnellen Einstieg in die QLDB-Konsole finden Sie unter. [Erste Schritte mit der Amazon QLDB-Konsole](getting-started.md) 

Informationen zur Entwicklung mit QLDB unter Verwendung eines AWS bereitgestellten Treibers finden Sie unter. [Erste Schritte mit dem Amazon QLDB-Treiber](getting-started-driver.md)

# Überblick über Amazon QLDB
<a name="what-is.overview"></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.

Die folgenden Abschnitte bieten einen allgemeinen Überblick über die Amazon QLDB-Servicekomponenten und deren Zusammenspiel.

**Topics**
+ [Schreiben Sie zuerst ein Journal](#what-is.overview.journal)
+ [Immutable (Unveränderlich)](#what-is.overview.immutable)
+ [Kryptografisch überprüfbar](#what-is.overview.verifiable)
+ [SQL-ähnlich und dokumentenflexibel](#what-is.overview.sql-like)
+ [Open-Source-Tools für Entwickler](#what-is.overview.open-source)
+ [Serverlos und hochverfügbar](#what-is.overview.scalable)
+ [Für Unternehmen geeignet](#what-is.overview.enterprise)

## Schreiben Sie zuerst ein Journal
<a name="what-is.overview.journal"></a>

In der traditionellen Datenbankarchitektur schreiben Sie im Allgemeinen Daten in Tabellen als Teil einer Transaktion. Ein Transaktionsprotokoll — in der Regel eine interne Implementierung — zeichnet alle Transaktionen und die von ihnen vorgenommenen Datenbankänderungen auf. Das Transaktionsprotokoll ist eine zentrale Komponente der Datenbank. Sie benötigen das Protokoll, um Transaktionen im Falle eines Systemausfalls, einer Notfallwiederherstellung oder einer Datenreplikation wiederzugeben. Datenbanktransaktionsprotokolle sind jedoch nicht unveränderlich und nicht darauf ausgelegt, Benutzern direkten und einfachen Zugriff zu ermöglichen.

In Amazon QLDB ist das Journal der Kern der Datenbank. Das Journal ist strukturell einem Transaktionsprotokoll ähnlich. Es handelt sich um eine unveränderliche Datenstruktur, in der nur Anhängen Ihre Anwendungsdaten zusammen mit den zugehörigen Metadaten gespeichert werden. Alle Schreibtransaktionen, einschließlich Aktualisierungen und Löschungen, werden zuerst im Journal festgeschrieben.

QLDB verwendet das Journal, um den aktuellen Status Ihrer Hauptbuchdaten zu ermitteln, indem es sie in abfragbaren, benutzerdefinierten Tabellen materialisiert. Diese Tabellen bieten außerdem einen zugänglichen Verlauf aller Transaktionsdaten, einschließlich Dokumentrevisionen und Metadaten. Darüber hinaus verarbeitet das Journal Gleichzeitigkeit, Sequenzierung, kryptografische Verifizierung und Verfügbarkeit der Ledger-Daten.

Das folgende Diagramm veranschaulicht die QLDB-Journalarchitektur.

![\[Als Diagramm betitelte QLDB: Das Journal ist die Datenbank, zeigt die Journalarchitektur mit einer Anwendung, die eine Verbindung zu einem Ledger herstellt und Transaktionen an das Journal übergibt, die in Tabellen materialisiert werden.\]](http://docs.aws.amazon.com/de_de/qldb/latest/developerguide/images/journal-first.png)

+ In diesem Beispiel stellt eine Anwendung eine Verbindung zu einem Hauptbuch her und führt Transaktionen aus, die ein Dokument in eine Tabelle mit dem Namen einfügen, aktualisieren und löschen. `cars`
+ Die Daten werden nacheinander zuerst in das Journal geschrieben.
+ Dann werden die Daten in die Tabelle mit integrierten Ansichten materialisiert. Mit diesen Ansichten können Sie sowohl den aktuellen Zustand als auch den vollständigen Verlauf des Fahrzeugs abfragen, wobei jeder Revision eine Versionsnummer zugewiesen ist.
+ Sie können Daten auch direkt aus dem Journal exportieren oder streamen.

## Immutable (Unveränderlich)
<a name="what-is.overview.immutable"></a>

Da das QLDB-Journal nur zum Anhängen verwendet werden kann, werden alle Änderungen an Ihren Daten, die nicht geändert oder überschrieben werden können, vollständig aufgezeichnet. Es gibt keine APIs oder andere Methoden, um übertragene Daten zu ändern. Mit dieser Journalstruktur können Sie auf den gesamten Verlauf Ihres Hauptbuchs zugreifen und ihn abfragen.

**Anmerkung**  
*Die einzige Ausnahme von der Unveränderlichkeit, die QLDB unterstützt, ist die Datenschwärzung.* Mit dieser Funktion können Sie gesetzliche Bestimmungen wie die Allgemeine Datenschutzverordnung (DSGVO) in der Europäischen Union und den California Consumer Privacy Act (CCPA) einhalten.  
QLDB bietet eine Schwärzungsoperation, mit der Sie inaktive Dokumentrevisionen in der Historie einer Tabelle dauerhaft löschen können. Bei diesem Vorgang werden nur die Benutzerdaten in der angegebenen Revision gelöscht, und die Journalsequenz und die Metadaten des Dokuments bleiben unverändert. Dadurch wird die allgemeine Datenintegrität Ihres Ledgers gewahrt. Weitere Informationen finden Sie unter [Revisionen von Dokumenten redigieren](working.redaction.md).

QLDB schreibt in einer Transaktion einen Block in das Journal. Jeder Block enthält Eintragsobjekte, die die Dokumente darstellen, die Sie einfügen, aktualisieren und löschen, sowie die Anweisungen, die Sie ausgeführt haben, um sie zu übertragen. Diese Blöcke werden sequenziert und Hash-verkettet, um die Datenintegrität zu gewährleisten.

Das folgende Diagramm veranschaulicht diese Journalstruktur.

![\[Datensätze mit Diagrammtiteln können nicht geändert werden und zeigen die unveränderliche Journalstruktur in QLDB, die nur angehängt werden kann, mit der Sequenznummer jedes Hash-verketteten Journalblocks.\]](http://docs.aws.amazon.com/de_de/qldb/latest/developerguide/images/immutable.png)


Das Diagramm zeigt, dass Transaktionen an das Journal als Blöcke übergeben werden, die zur Verifizierung Hash-verkettet sind. Jeder Block verfügt über eine Sequenznummer, um seine Adresse anzugeben.

## Kryptografisch überprüfbar
<a name="what-is.overview.verifiable"></a>

Journalblöcke werden sequenziert und mit kryptografischen Hashing-Techniken verkettet, so ähnlich wie Blockchains. QLDB verwendet die Hash-Kette des Journals, um die Integrität von Transaktionsdaten mithilfe einer kryptografischen Überprüfungsmethode zu gewährleisten. Mit einem *Digest* (einem Hash-Wert, der die vollständige Hash-Kette eines Journals ab einem Zeitpunkt darstellt) und einem *Hash-Prüfnachweis* (einem Mechanismus, der die Gültigkeit eines beliebigen Knotens innerhalb eines binären Hash-Baums belegt) können Sie sicherstellen, dass an Ihren Daten keine unbeabsichtigten Änderungen vorgenommen wurden.

Das folgende Diagramm zeigt einen Digest, der die vollständige Hash-Kette eines Journals zu einem bestimmten Zeitpunkt abdeckt. 

![\[Als Diagramm betitelte Hash-Verkettung mit SHA-256, zeigt einen Digest, der die vollständige Hash-Kette eines Journals abdeckt, mit der Struktur eines Journalblocks, der Einträge enthält, die Ion-Dokumente, PartiQL-Anweisungen und Metadaten darstellen.\]](http://docs.aws.amazon.com/de_de/qldb/latest/developerguide/images/verifiable.png)


In diesem Diagramm werden die Journalblöcke mit der kryptografischen Hash-Funktion SHA-256 gehasht und nacheinander mit den folgenden Blöcken verkettet. Jeder Block enthält Einträge, die Ihre Datendokumente, Metadaten und die PartiQL-Anweisungen enthalten, die in der Transaktion ausgeführt wurden.

Weitere Informationen finden Sie unter [Datenüberprüfung in Amazon QLDB](verification.md).

## SQL-ähnlich und dokumentenflexibel
<a name="what-is.overview.sql-like"></a>

QLDB verwendet PartiQL als Abfragesprache und Amazon Ion als dokumentenorientiertes Datenmodell. PartiQL ist eine SQL-kompatible Open-Source-Abfragesprache, die für die Verwendung mit Ion erweitert wurde. Mit PartiSQL können Sie Ihre Daten mit vertrauten SQL-Operatoren einfügen, abfragen und verwalten. Beim Abfragen von flachen Dokumenten entspricht die Syntax der Verwendung von SQL zum Abfragen relationaler Tabellen. Weitere Informationen zur QLDB-Implementierung von PartiQL finden Sie unter. [Amazon QLDB PartiQL-Referenz](ql-reference.md)

Amazon Ion ist eine Obermenge von JSON. Ion ist ein dokumentenbasiertes Open-Source-Datenformat, das Ihnen die Flexibilität bietet, strukturierte, halbstrukturierte und verschachtelte Daten zu speichern und zu verarbeiten. Weitere Informationen zu Ion in QLDB finden Sie unter. [Referenz zum Amazon Ion-Datenformat in Amazon QLDB](ion.md)

Einen allgemeinen Vergleich der Kernkomponenten und Funktionen herkömmlicher relationaler Datenbanken mit denen von QLDB finden Sie unter. [Von relational zu Ledger](what-is.relational-ledger.md)

## Open-Source-Tools für Entwickler
<a name="what-is.overview.open-source"></a>

Um die Anwendungsentwicklung zu vereinfachen, bietet QLDB Open-Source-Treiber in verschiedenen Programmiersprachen. Sie können diese Treiber verwenden, um mit der Transaktionsdaten-API zu interagieren, indem Sie PartiQL-Anweisungen in einem Ledger ausführen und die Ergebnisse dieser Anweisungen verarbeiten. Informationen und Tutorials zu den aktuell unterstützten Treibersprachen finden Sie unter [Erste Schritte mit dem Amazon QLDB-Treiber](getting-started-driver.md).

Amazon Ion bietet auch Client-Bibliotheken, die Ion-Daten für Sie verarbeiten. Entwicklerhandbücher und Codebeispiele für die Verarbeitung von Ion-Daten finden Sie in der [Amazon Ion-Dokumentation](http://amzn.github.io/ion-docs/) unter GitHub.

## Serverlos und hochverfügbar
<a name="what-is.overview.scalable"></a>

QLDB ist vollständig verwaltet, serverlos und hochverfügbar. Der Service wird automatisch skaliert, um die Anforderungen Ihrer Anwendung zu erfüllen, und Sie müssen keine Instanzen oder Kapazität bereitstellen. Mehrere Kopien Ihrer Daten werden innerhalb einer Availability Zone und zwischen Availability Zones in einer repliziert. AWS-Region

## Für Unternehmen geeignet
<a name="what-is.overview.enterprise"></a>

QLDB-Transaktionen entsprechen vollständig den Eigenschaften Atomizität, Konsistenz, Isolation und Haltbarkeit (ACID). QLDB verwendet Optimistic Concurrency Control (OCC), und Transaktionen werden mit voller Serialisierbarkeit ausgeführt — der höchsten Isolationsstufe. Dies bedeutet, dass keine Gefahr besteht, dass Phantomlesevorgänge, fehlerhafte Lesevorgänge, Schreibverzerrungen oder andere ähnliche Probleme mit der Gleichzeitigkeit auftreten. Weitere Informationen finden Sie unter [Amazon QLDB-Parallelitätsmodell](concurrency.md).

# Von relational zu Ledger
<a name="what-is.relational-ledger"></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.

Wenn Sie ein Anwendungsentwickler sind, haben Sie möglicherweise Erfahrung mit einem relationalen Datenbankmanagementsystem (RDBMS) und einer strukturierten Abfragesprache (SQL). Wenn Sie beginnen, mit Amazon QLDB zu arbeiten, werden Sie auf viele Gemeinsamkeiten stoßen. Wenn Sie sich weiterführenden Themen zuwenden, werden Sie auch auf leistungsstarke neue Funktionen stoßen, die QLDB auf der RDBMS-Grundlage aufgebaut hat. In diesem Abschnitt werden gängige Datenbankkomponenten und -operationen beschrieben und mit ihren Entsprechungen in QLDB verglichen und gegenübergestellt.

Das folgende Diagramm zeigt die Mapping-Konstrukte der Kernkomponenten zwischen einem herkömmlichen RDBMS und Amazon QLDB.

![\[Diagramm der Zuordnung der Kernkomponenten herkömmlicher RDBMS (Datenbank, Tabelle, Index, Zeile, Spalte usw.) zu den entsprechenden QLDB-Komponenten (Ledger, Tabelle, Index, Ion-Dokument, Doc-Attribut usw.).\]](http://docs.aws.amazon.com/de_de/qldb/latest/developerguide/images/rdbms-mapping.png)


Die folgende Tabelle zeigt die wichtigsten Ähnlichkeiten und Unterschiede der integrierten Betriebsfunktionen zwischen einem herkömmlichen RDBMS und QLDB auf hoher Ebene.


****  

| Operation | RDBMS | QLDB | 
| --- | --- | --- | 
| Erstellen von Tabellen | CREATE TABLE-Anweisung, die alle Spaltennamen und Datentypen definiert | CREATE TABLE-Anweisung, die keine Tabellenattribute oder Datentypen definiert, um schemalosen und offenen Inhalt zu ermöglichen | 
| Erstellen von Indizes | CREATE INDEX-Anweisung | CREATE INDEXAnweisung für alle Felder der obersten Ebene in einer Tabelle | 
| Einfügen von Daten | INSERT-Anweisung, die Werte innerhalb von neuen Zeilen oder Tupeln angibt, die dem von der Tabelle definierten Schema entsprechen. | INSERT-Anweisung, die Werte in einem neuen Dokument in einem gültigen Amazon Ion-Format angibt, unabhängig von den vorhandenen Dokumenten in der Tabelle | 
| Abfragen von Daten | SELECT-FROM-WHERE-Anweisung | SELECT-FROM-WHERE-Anweisung in der gleichen Syntax wie SQL beim Abfragen von flachen Dokumenten | 
| Aktualisieren von Daten | UPDATE-SET-WHERE-Anweisung | UPDATE-SET-WHERE-Anweisung in der gleichen Syntax wie SQL beim Aktualisieren von flachen Dokumenten | 
| Löschen von Daten | DELETE-FROM-WHERE-Anweisung | DELETE-FROM-WHERE-Anweisung in der gleichen Syntax wie SQL beim Löschen von flachen Dokumenten | 
| Verschachtelte und halbstrukturierte Daten | Nur flache Zeilen oder Tupel | Dokumente, die strukturierte, halbstrukturierte oder verschachtelte Daten umfassen können, die vom Amazon Ion-Datenformat und der PartiQL-Abfragesprache unterstützt werden | 
| Abfragen von Metadaten | Keine integrierten Metadaten | SELECT-Anweisung, die Abfragen aus der integrierten Committed-Ansicht einer Tabelle ausführt | 
| Abfragen des Revisionsverlaufs | Kein integrierter Datenverlauf | SELECT-Anweisung, die Abfragen aus der integrierten Verlaufsfunktion ausführt | 
| Kryptografische Verifizierung | Keine integrierte Kryptographie oder Unveränderlichkeit | APIs die eine Zusammenfassung eines Journals und einen Nachweis zurückgeben, der die Integrität aller Dokumentrevisionen im Vergleich zu diesem Digest bestätigt | 

Einen Überblick über die Kernkonzepte und Terminologie in QLDB finden Sie unter. [Schlüsselkonzepte](ledger-structure.md)

Ausführliche Informationen zum Erstellen, Abfragen und Verwalten von Daten in einem Ledger finden Sie unter [Arbeiten mit Daten und Verlauf](working-with-data.md).

# Kernkonzepte und Terminologie in Amazon QLDB
<a name="ledger-structure"></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.

Dieser Abschnitt bietet einen Überblick über die Kernkonzepte und die Terminologie in Amazon QLDB, einschließlich der Ledger-Struktur und der Art und Weise, wie ein Ledger Daten verwaltet. Als Ledger-Datenbank unterscheidet sich QLDB von anderen dokumentenorientierten Datenbanken, wenn es um die folgenden Schlüsselkonzepte geht.

**Topics**
+ [QLDB-Datenobjektmodell](#ledger-structure.concepts)
+ [Transaktionen, bei denen das Journal im Vordergrund steht](#ledger-structure.transactions)
+ [Abfragen Ihrer Daten](#ledger-structure.querying)
+ [Datenspeicher](#ledger-structure.storage)
+ [QLDB-API-Modell](#ledger-structure.api)
+ [Nächste Schritte](#ledger-structure.next-steps)

## QLDB-Datenobjektmodell
<a name="ledger-structure.concepts"></a>

Das grundlegende Datenobjektmodell in Amazon QLDB wird wie folgt beschrieben:

1. **Hauptbuch**

   Ihr erster Schritt besteht darin, ein *Ledger* zu erstellen, das der primäre AWS Ressourcentyp in QLDB ist. Informationen zum Erstellen eines Ledgers finden Sie unter [Schritt 1: Erstellen Sie ein neues Hauptbuch](getting-started-step-1.md) *Erste Schritte mit der* Konsole oder. [Grundlegende Operationen für Amazon QLDB-Ledger](ledger-management.basics.md)

   Sowohl für den Modus als auch für den `STANDARD` Berechtigungsmodus eines Ledgers erstellen Sie AWS Identity and Access Management (IAM `ALLOW_ALL` -) Richtlinien, die Berechtigungen zum Ausführen von API-Vorgängen auf dieser Ledger-Ressource gewähren.

   ARN-Format für das Hauptbuch:

   ```
   arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}
   ```

1. **Journal und Tabellen**

   Um mit dem Schreiben von Daten in ein QLDB-Ledger zu beginnen, erstellen Sie zunächst eine *Tabelle* mit einer grundlegenden Anweisung. [CREATE TABLE](ql-reference.create-table.md) *Hauptbuchdaten bestehen aus Überarbeitungen von Dokumenten, die in das Journal des Hauptbuches übernommen werden.* Sie übernehmen Dokumentänderungen im Kontext benutzerdefinierter Tabellen in das Hauptbuch. In QLDB stellt eine Tabelle eine materialisierte Ansicht einer Sammlung von Dokumentrevisionen aus dem Journal dar.

   Im `STANDARD` Berechtigungsmodus eines Ledgers müssen Sie IAM-Richtlinien erstellen, die Berechtigungen zum Ausführen von PartiQL-Anweisungen für diese Tabellenressource gewähren. Mit Berechtigungen für eine Tabellenressource können Sie Anweisungen ausführen, die auf den aktuellen Status der Tabelle zugreifen. Sie können den Revisionsverlauf der Tabelle auch mithilfe der integrierten `history()` Funktion abfragen.

   Tabellen-ARN-Format:

   ```
   arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/table/${table-id}
   ```

   Weitere Hinweise zur Gewährung von Berechtigungen für ein Ledger und die zugehörigen Ressourcen finden Sie unter[So funktioniert Amazon QLDB mit IAM](security_iam_service-with-iam.md).

1. **Dokumente**

   Tabellen bestehen aus Versionen von[QLDB-Dokumente](ql-reference.docs.md), bei denen es sich um Datensätze im [Amazon `struct` Ion-Format](ion.md) handelt. Eine *Dokumentrevision* stellt eine einzelne Version einer Sequenz von Dokumenten dar, die durch eine eindeutige Dokument-ID identifiziert werden.

   QLDB speichert die vollständige Änderungshistorie Ihrer übergebenen Dokumente. Mit einer Tabelle können Sie den aktuellen Status ihrer Dokumente abfragen, während Sie mit dieser `history()` Funktion den gesamten Revisionsverlauf der Dokumente einer Tabelle abfragen können. Einzelheiten zum Abfragen und Schreiben von Revisionen finden Sie unter. [Arbeiten mit Daten und Verlauf](working-with-data.md)

1. **Systemkatalog**

   Jedes Ledger stellt außerdem eine systemdefinierte *Katalogressource* bereit, die Sie abfragen können, um alle Tabellen und Indizes in einem Ledger aufzulisten. Im `STANDARD` Berechtigungsmodus eines Ledgers benötigen Sie die `qldb:PartiQLSelect` Berechtigung für diese Katalogressource, um Folgendes tun zu können:
   + Führen Sie `SELECT` Anweisungen in der Systemkatalogtabelle [information\$1schema.user\$1tables](working.catalog.md) aus.
   + Zeigen Sie Tabellen- und Indexinformationen auf der Seite mit den Ledger-Details in der [QLDB-Konsole](console_QLDB.md) an.
   + Sehen Sie sich die Liste der Tabellen und Indizes im *PartiQL-Editor auf der QLDB-Konsole* an.

   ARN-Format des Katalogs:

   ```
   arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/information_schema/user_tables
   ```

## Transaktionen, bei denen das Journal im Vordergrund steht
<a name="ledger-structure.transactions"></a>

Wenn eine Anwendung Daten in ein QLDB-Ledger liest oder schreibt, tut sie dies in einer Datenbanktransaktion. Alle Transaktionen unterliegen den Beschränkungen, die unter definiert sind. [Kontingente und Limits in Amazon QLDB](limits.md#limits.fixed) Innerhalb einer Transaktion führt QLDB die folgenden Schritte aus:

1. Liest den aktuellen Status der Daten aus dem Ledger.

1. Führen Sie die in der Transaktion angegebenen Anweisungen aus und überprüfen Sie dann mithilfe der [optimistischen Parallelitätssteuerung (OCC), ob Konflikte vorliegen, um eine vollständig serialisierbare](concurrency.md) Isolierung sicherzustellen.

1. Wenn keine OCC-Konflikte gefunden werden, geben Sie die Transaktionsergebnisse wie folgt zurück:
   + Geben Sie bei Lesevorgängen die Ergebnismenge zurück und übertragen Sie die `SELECT` Anweisungen ausschließlich durch Anhängen in das Journal.
   + Bei Schreibvorgängen werden alle Aktualisierungen, Löschungen oder neu eingefügten Daten ausschließlich durch Anhängen in das Journal übernommen.

Das *Journal* stellt einen vollständigen und unveränderlichen Verlauf aller Änderungen an Ihren Daten dar. QLDB schreibt in einer Transaktion einen verketteten *Block* in das Journal. Jeder Block enthält *Eingabeobjekte*, die die Dokumentrevisionen darstellen, die Sie einfügen, aktualisieren und löschen, zusammen mit den [PartiQL](ql-reference.md)-Anweisungen, durch die sie festgeschrieben wurden.

Das folgende Diagramm veranschaulicht diese Journalstruktur.

![\[Das Amazon QLDB-Journalstrukturdiagramm zeigt eine Reihe verketteter Blöcke, die einen Strang bilden, sowie die Sequenznummer und den Block-Hash jedes Blocks.\]](http://docs.aws.amazon.com/de_de/qldb/latest/developerguide/images/verification/journal-structure.png)


Das Diagramm zeigt, dass Transaktionen in das Journal als Blöcke übergeben werden, die Dokumentrevisionseinträge enthalten. Jeder Block wird gehasht und zur [Überprüfung](verification.md) mit den nachfolgenden Blöcken verkettet. Jeder Block verfügt über eine Sequenznummer, um seine Adresse in der Strähne anzugeben.

**Anmerkung**  
In Amazon QLDB ist ein Strang eine Partition des Tagebuchs Ihres Hauptbuches. QLDB unterstützt derzeit nur Zeitschriften mit einem einzigen Strang.

Hinweise zum Dateninhalt in einem Block finden Sie unter [Journalinhalte in Amazon QLDB](journal-contents.md).

## Abfragen Ihrer Daten
<a name="ledger-structure.querying"></a>

QLDB soll den Anforderungen leistungsstarker OLTP-Workloads (Online Transaction Processing) gerecht werden. Ein Ledger bietet abfragbare Tabellenansichten Ihrer Daten auf der Grundlage der Transaktionsinformationen, die im Journal gespeichert sind. Eine *Tabellenansicht* in QLDB ist eine Teilmenge der Daten in einer Tabelle. Ansichten werden in Echtzeit verwaltet, sodass sie immer verfügbar für abzufragende Anwendungen sind.

Sie können die folgenden systemdefinierten Ansichten mit `SELECT` PartiQL-Anweisungen abfragen:
+ *Benutzer* — Die letzte aktive Version nur der Daten, die Sie in die Tabelle geschrieben haben (d. h. der aktuelle Status Ihrer Benutzerdaten). Dies ist die Standardansicht in QLDB.
+ *Festgeschrieben* — Die letzte aktive Version sowohl Ihrer Benutzerdaten als auch der vom System generierten Metadaten. Dies ist die vollständige systemdefinierte Tabelle, die direkt Ihrer Benutzertabelle entspricht.

Zusätzlich zu diesen abfragbaren Ansichten können Sie den Revisionsverlauf Ihrer Daten mithilfe der integrierten Funktionen abfragen. [Funktion „Verlauf“](working.history.md#working.history.function) Die Verlaufsfunktion gibt sowohl Ihre Benutzerdaten als auch die zugehörigen Metadaten in demselben Schema wie die *festgeschriebene* Ansicht zurück.

## Datenspeicher
<a name="ledger-structure.storage"></a>

In QLDB gibt es zwei Arten der Datenspeicherung:
+ *Journalspeicher* — Der Speicherplatz, der vom Journal eines Ledgers verwendet wird. Das Journal kann nur angehängt werden (Append-only) und enthält den vollständigen, unveränderlichen und überprüfbaren Verlauf aller Datenänderungen.
+ *Indizierter Speicher — Der Festplattenspeicher, der von den Tabellen, Indizes und dem indizierten* Verlauf eines Ledgers verwendet wird. Der indizierte Speicher besteht aus für Hochleistungs-Abfragen optimierten Ledgerdaten.

Nachdem Ihre Daten in das Journal übernommen wurden, werden sie in den von Ihnen definierten Tabellen materialisiert. Diese Tabellen sind für schnellere und effizientere Abfragen optimiert. Wenn eine Anwendung die Transaktionsdaten-API zum Lesen von Daten verwendet, greift sie auf die Tabellen und Indizes zu, die in Ihrem indizierten Speicher gespeichert sind.

## QLDB-API-Modell
<a name="ledger-structure.api"></a>

QLDB bietet zwei Typen, mit APIs denen Ihr Anwendungscode interagieren kann:
+ *Amazon QLDB* *— Die QLDB-Ressourcenmanagement-API (auch als Kontrollebene bezeichnet).* Diese API wird nur für die Verwaltung von Ledger-Ressourcen und für nicht transaktionale Datenoperationen verwendet. Sie können diese Operationen verwenden, um Ledger zu erstellen, zu löschen, zu beschreiben, aufzulisten und zu aktualisieren. Sie können Daten auch kryptografisch verifizieren und Journalblöcke exportieren oder streamen.
+ *Amazon QLDB Session* — Die QLDB-Transaktionsdaten-API. Sie können diese API verwenden, um Datentransaktionen in einem Ledger mit [PartiQL-Anweisungen](ql-reference.md) auszuführen.
**Wichtig**  
Anstatt direkt mit der *QLDB Session* API zu interagieren, empfehlen wir, den QLDB-Treiber oder die QLDB-Shell zu verwenden, um Datentransaktionen in einem Ledger auszuführen.  
Wenn Sie mit einem AWS SDK arbeiten, verwenden Sie den QLDB-Treiber. Der Treiber bietet eine abstrakte Ebene über der *QLDB-Sitzungsdaten-API* und verwaltet den `SendCommand` Vorgang für Sie. Für weitere Informationen und eine Liste der unterstützten Programmiersprachen siehe [Erste Schritte mit dem Treiber](getting-started-driver.md).
Wenn Sie mit dem arbeiten AWS CLI, verwenden Sie die QLDB-Shell. Die Shell ist eine Befehlszeilenschnittstelle, die den QLDB-Treiber verwendet, um mit einem Ledger zu interagieren. Weitere Informationen finden Sie unter [Verwenden der Amazon QLDB-Shell (nur Daten-API)](data-shell.md).

Weitere Informationen zu diesen API-Vorgängen finden Sie unter. [Amazon QLDB API-Referenz](api-reference.md)

## Nächste Schritte
<a name="ledger-structure.next-steps"></a>

Informationen zur Verwendung eines Ledgers mit Ihren Daten finden [Arbeiten mit Daten und Verlauf in Amazon QLDB](working-with-data.md) Sie in den Beispielen, in denen das Erstellen von Tabellen, das Einfügen von Daten und das Ausführen einfacher Abfragen beschrieben wird. In diesem Leitfaden wird anhand von Beispieldaten und Abfragebeispielen ausführlich erläutert, wie diese Konzepte funktionieren.

Einen schnellen Einstieg in ein Tutorial zu einer Beispielanwendung mit der QLDB-Konsole finden Sie unter. [Erste Schritte mit der Amazon QLDB-Konsole](getting-started.md)

Eine Liste der Schlüsselbegriffe und Definitionen, die in diesem Abschnitt beschrieben werden, finden Sie unter [Amazon QLDB-Glossar](qldb-glossary.md).

# Journalinhalte in Amazon QLDB
<a name="journal-contents"></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.

In Amazon QLDB ist das *Journal* das unveränderliche Transaktionsprotokoll, das den vollständigen und überprüfbaren Verlauf aller Änderungen an Ihren Daten speichert. *Das Journal kann nur angehängt werden und besteht aus einem sequenzierten und Hash-verketteten Satz von Blöcken, die Ihre übergebenen Daten und andere Systemmetadaten enthalten.* QLDB schreibt in einer Transaktion einen verketteten Block in das Journal.

Dieser Abschnitt enthält ein Beispiel für einen Journalblock mit Beispieldaten und beschreibt den Inhalt eines Blocks.

**Topics**
+ [Blockbeispiel](#journal.block-example)
+ [Blockinhalte](#journal.block-contents)
+ [Redigierte Überarbeitungen](#journal.redacted-revisions)
+ [Beispielanwendung](#journal.sample)
+ [Weitere Informationen finden Sie auch unter](#journal.see-also)

## Blockbeispiel
<a name="journal.block-example"></a>

Ein Journalblock enthält Transaktionsmetadaten zusammen mit Einträgen, die die Dokumentrevisionen darstellen, die in der Transaktion festgeschrieben wurden, sowie die [PartiQL](ql-reference.md)-Anweisungen, die diese festgeschrieben haben.

Im Folgenden finden Sie ein Beispiel für einen Block mit Beispieldaten.

**Anmerkung**  
Dieses Blockbeispiel dient nur zu Informationszwecken. Die angezeigten Hashes sind keine echten berechneten Hashwerte.

```
{
  blockAddress:{
    strandId:"4o5UuzWSW5PIoOGm5jPA6J",
    sequenceNo:25
  },
  transactionId:"3gtB8Q8dfIMA8lQ5pzHAMo",
  blockTimestamp:2022-06-08T18:46:46.512Z,
  blockHash:{{QS5lJt8vRxT30L9OGL5oU1pxFTe+UlEwakYBCrvGQ4A=}},
  entriesHash:{{buYYc5kV4rrRtJAsrIQnfnhgkzfQ8BKjI0C2vFnYQEw=}},
  previousBlockHash:{{I1UKRIWUgkM1X6042kcoZ/eN1rn0uxhDTc08zw9kZ5I=}},
  entriesHashList:[
    {{BUCXP6oYgmug2AfPZcAZup2lKolJNTbTuV5RA1VaFpo=}},
    {{cTIRkjuULzp/4KaUEsb/S7+TG8FvpFiZHT4tEJGcANc=}},
    {{3aktJSMyJ3C5StZv4WIJLu/w3D8mGtduZvP0ldKUaUM=}},
    {{GPKIJ1+o8mMZmPj/35ZQXoca2z64MVYMCwqs/g080IM=}}
  ],
  transactionInfo:{
    statements:[
      {
        statement:"INSERT INTO VehicleRegistration VALUE ?",
        startTime:2022-06-08T18:46:46.063Z,
        statementDigest:{{KY2nL6UGUPs5lXCLVXcUaBxcEIop0Jvk4MEjcFVBfwI=}}
      },
      {
        statement:"SELECT p_id FROM Person p BY p_id WHERE p.FirstName = ? and p.LastName = ?",
        startTime:2022-06-08T18:46:46.173Z,
        statementDigest:{{QS2nfB8XBf2ozlDx0nvtsliOYDSmNHMYC3IRH4Uh690=}}
      },
      {
        statement:"UPDATE VehicleRegistration r SET r.Owners.PrimaryOwner.PersonId = ? WHERE r.VIN = ?",
        startTime:2022-06-08T18:46:46.278Z,
        statementDigest:{{nGtIA9Qh0/dwIplOR8J5CTeqyUVtNUQgXfltDUo2Aq4=}}
      },
      {
        statement:"DELETE FROM DriversLicense l WHERE l.LicenseNumber = ?",
        startTime:2022-06-08T18:46:46.385Z,
        statementDigest:{{ka783dcEP58Q9AVQ1m9NOJd3JAmEvXLjzl0OjN1BojQ=}}
      }
    ],
    documents:{
      HwVFkn8IMRa0xjze5xcgga:{
        tableName:"VehicleRegistration",
        tableId:"HQZ6cgIMUi204Lq1tT4oaJ",
        statements:[0,2]
      },
      IiPTRxLGJZa342zHFCFT15:{
        tableName:"DriversLicense",
        tableId:"BvtXEB1JxZg0lJlBAtbtSV",
        statements:[3]
      }
    }
  },
  revisions:[
    {
      hash:{{FR1IWcWew0yw1TnRklo2YMF/qtwb7ohsu5FD8A4DSVg=}}
    },
    {
      blockAddress:{
        strandId:"4o5UuzWSW5PIoOGm5jPA6J",
        sequenceNo:25
      },
      hash:{{6TTHbcfIVdWoFC/j90BOZi0JdHzhjSXo1tW+uHd6Dj4=}},
      data:{
        VIN:"1N4AL11D75C109151",
        LicensePlateNumber:"LEWISR261LL",
        State:"WA",
        City:"Seattle",
        PendingPenaltyTicketAmount:90.25,
        ValidFromDate:2017-08-21,
        ValidToDate:2020-05-11,
        Owners:{
          PrimaryOwner:{
            PersonId:"3Ax20JIix5J2ulu2rCMvo2"
          },
          SecondaryOwners:[]
        }
      },
      metadata:{
        id:"HwVFkn8IMRa0xjze5xcgga",
        version:0,
        txTime:2022-06-08T18:46:46.492Z,
        txId:"3gtB8Q8dfIMA8lQ5pzHAMo"
      }
    },
    {
      blockAddress:{
        strandId:"4o5UuzWSW5PIoOGm5jPA6J",
        sequenceNo:25
      },
      hash:{{ZVF/f1uSqd5DIMqzI04CCHaCGFK/J0Jf5AFzSEk0l90=}},
      metadata:{
        id:"IiPTRxLGJZa342zHFCFT15",
        version:1,
        txTime:2022-06-08T18:46:46.492Z,
        txId:"3gtB8Q8dfIMA8lQ5pzHAMo"
      }
    }
  ]
}
```

Im `revisions`-Feld enthalten einige Revisionsobjekte möglicherweise nur einen `hash`-Wert und keine anderen Attribute. Dabei handelt es sich um interne Systemrevisionen, die keine Benutzerdaten enthalten. Die Hashes dieser Revisionen sind Teil der vollständigen Hashkette des Journals, die für die kryptografische Überprüfung erforderlich ist.

## Blockinhalte
<a name="journal.block-contents"></a>

Ein Journalblock verfügt über die folgenden Felder:

**`blockAddress`**  
Die Position des Blocks im Journal. Ein Adresse ist eine [Amazon Ion-Struktur](ion.md), die über zwei Felder verfügt: `strandId` und `sequenceNo`.  
Zum Beispiel: `{strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}`

**`transactionId`**  
Die eindeutige ID der Transaktion, die die den Block festgeschrieben hat.

**`blockTimestamp`**  
Der Zeitstempel, als der Block im Journal festgeschrieben wurde.

**`blockHash`**  
Der 256-Bit-Hash-Wert, der den Block eindeutig darstellt. Dies ist der Hash der Verkettung von `entriesHash` und `previousBlockHash`.

**`entriesHash`**  
Der Hash, der alle Einträge innerhalb des Blocks darstellt, einschließlich rein interner Systemeinträge. Dies ist der Wurzelhash des [Merkle-Baums](verification.md#verification.how-it-works.merkle-tree), in dem die Blattknoten aus allen Hashes in `entriesHashList` bestehen.

**`previousBlockHash`**  
Der Hash des vorherigen verketteten Blocks im Journal.

**`entriesHashList`**  
Die Liste der Hashes, die jeden Eintrag innerhalb des Blocks darstellen. Diese Liste kann die folgenden Eintrags-Hashes enthalten:  
+ Der Ionen-Hash, der für steht`transactionInfo`. Dieser Wert wird berechnet, indem der Ionen-Hash der gesamten `transactionInfo` Struktur verwendet wird.
+ Der Wurzelhash des Merkle-Baums, in dem die Blattknoten aus allen Hashes in `revisions` bestehen.
+ Der Ionen-Hash, der repräsentiert`redactionInfo`. Dieser Hash ist nur in Blöcken vorhanden, die durch eine Redaktionstransaktion festgeschrieben wurden. Sein Wert wird berechnet, indem der Ionen-Hash der gesamten `redactionInfo` Struktur verwendet wird.
+ Hashes, die nur interne Systemmetadaten darstellen. Diese Hashes sind möglicherweise nicht in allen Blöcken vorhanden.

**`transactionInfo`**  
Eine Amazon Ion-Struktur, die Informationen zu den Anweisungen in der Transaktion enthält, die den Block festgeschrieben hat. Diese Struktur enthält die folgenden Felder:  
+ `statements`— Die Liste der PartiQL-Anweisungen und der `startTime` Zeitpunkt, zu dem sie ausgeführt wurden. Jede Anweisung hat einen `statementDigest`-Hash, der benötigt wird, um den Hash der `transactionInfo`-Struktur zu berechnen.
+ `documents`— Das Dokument IDs , das durch die Anweisungen aktualisiert wurde. Jedes Dokument enthält `tableId` das `tableName` und, zu dem es gehört, sowie den Index jeder Aussage, durch die es aktualisiert wurde.

**`revisions`**  
Die Liste der Dokumentversionen, die im Block festgeschrieben wurden. Jede Revisionsstruktur enthält alle Felder aus der [bestätigten Ansicht](working.metadata.md) der Revision.  
Hierzu können auch Hashes gehören, die rein interne Systemrevisionen darstellen, die Teil der vollständigen Hashkette eines Journals sind.

## Redigierte Überarbeitungen
<a name="journal.redacted-revisions"></a>

In Amazon QLDB löscht eine `DELETE` Anweisung ein Dokument nur logisch, indem eine neue Version erstellt wird, die es als gelöscht markiert. QLDB unterstützt auch einen *Datenschwärzungsvorgang*, mit dem Sie inaktive Dokumentrevisionen in der Historie einer Tabelle dauerhaft löschen können.

Bei der Schwärzung werden nur die Benutzerdaten in der angegebenen Revision gelöscht, und die Journalsequenz und die Metadaten des Dokuments bleiben unverändert. Dadurch wird die allgemeine Datenintegrität Ihres Hauptbuches gewahrt. Weitere Informationen und ein Beispiel für einen Schwärzungsvorgang finden Sie unter. [Revisionen von Dokumenten redigieren](working.redaction.md)

### Beispiel für eine redigierte Version
<a name="journal.redacted-revisions.example"></a>

Betrachten Sie das vorherige [Blockbeispiel](#journal.block-example). Nehmen wir an, dass Sie in diesem Block die Version redigieren, die die Dokument-ID `HwVFkn8IMRa0xjze5xcgga` und die Versionsnummer hat. `0`

Nach Abschluss der Schwärzung werden die Benutzerdaten in der Revision (dargestellt durch die `data` Struktur) durch ein neues `dataHash` Feld ersetzt. Der Wert dieses Feldes ist der Ionen-Hash der entfernten `data` Struktur. Dadurch behält das Ledger seine allgemeine Datenintegrität bei und bleibt über die bestehenden Verifizierungs-API-Operationen kryptografisch überprüfbar.

Das folgende Revisionsbeispiel zeigt die Ergebnisse dieser Bearbeitung, wobei das neue Feld unter hervorgehoben ist. `dataHash` *red italics*

**Anmerkung**  
Dieses Revisionsbeispiel dient nur zu Informationszwecken. Die angezeigten Hashes sind keine echten berechneten Hashwerte.

```
...
{
  blockAddress:{
    strandId:"4o5UuzWSW5PIoOGm5jPA6J",
    sequenceNo:25
  },
  hash:{{6TTHbcfIVdWoFC/j90BOZi0JdHzhjSXo1tW+uHd6Dj4=}},
  dataHash:{{s83jd7sfhsdfhksj7hskjdfjfpIPP/DP2hvionas2d4=}},
  metadata:{
    id:"HwVFkn8IMRa0xjze5xcgga",
    version:0,
    txTime:2022-06-08T18:46:46.492Z,
    txId:"3gtB8Q8dfIMA8lQ5pzHAMo"
  }
}
...
```

QLDB fügt dem Journal auch einen neuen Block für die abgeschlossene Redaktionsanfrage hinzu. Dieser Block enthält einen zusätzlichen `redactionInfo` Eintrag, der eine Liste der Revisionen enthält, die in der Transaktion geschwärzt wurden, wie im folgenden Beispiel gezeigt.

```
...
redactionInfo:{
  revisions:[
    {
      blockAddress:{
        strandId:"4o5UuzWSW5PIoOGm5jPA6J",
        sequenceNo:25
      },
      tableId:"HQZ6cgIMUi204Lq1tT4oaJ",
      documentId:"HwVFkn8IMRa0xjze5xcgga",
      version:0
    }
  ]
}
...
```

## Beispielanwendung
<a name="journal.sample"></a>

[Ein Java-Codebeispiel, das die Hash-Kette eines Journals anhand exportierter Daten validiert, finden Sie im GitHub Repository aws-samples/ -java. amazon-qldb-dmv-sample](https://github.com/aws-samples/amazon-qldb-dmv-sample-java) Diese Beispielanwendung umfasst die folgenden Klassendateien:
+ [ValidateQldbHashChain.java](https://github.com/aws-samples/amazon-qldb-dmv-sample-java/blob/master/src/main/java/software/amazon/qldb/tutorial/ValidateQldbHashChain.java) — Enthält Tutorial-Code, der Journalblöcke aus einem Ledger exportiert und die exportierten Daten verwendet, um die Hash-Kette zwischen Blöcken zu validieren.
+ [JournalBlock.java](https://github.com/aws-samples/amazon-qldb-dmv-sample-java/blob/master/src/main/java/software/amazon/qldb/tutorial/qldb/JournalBlock.java) — Enthält eine Methode mit dem Namen`verifyBlockHash()`, die demonstriert, wie jede einzelne Hash-Komponente innerhalb eines Blocks berechnet wird. Diese Methode wird durch den Tutorial-Code in `ValidateQldbHashChain.java` aufgerufen.

Anweisungen zum Herunterladen und Installieren dieser vollständigen Beispielanwendung finden Sie unter [Installation der Amazon QLDB-Java-Beispielanwendung](sample-app.java.md). Bevor Sie den Code für das Tutorial ausführen, stellen Sie sicher, dass Sie die Schritte 1—3 in befolgen[Java-Lernprogramm](getting-started.java.tutorial.md), um ein Beispielbuch einzurichten und es mit Beispieldaten zu laden.

## Weitere Informationen finden Sie auch unter
<a name="journal.see-also"></a>

Weitere Informationen zu Zeitschriften in QLDB finden Sie unter den folgenden Themen:
+ [Journaldaten aus Amazon QLDB exportieren](export-journal.md)— Um zu erfahren, wie Journaldaten nach Amazon Simple Storage Service (Amazon S3) exportiert werden.
+ [Journaldaten von Amazon QLDB streamen](streams.md)— Um zu erfahren, wie Journaldaten zu Amazon Kinesis Data Streams gestreamt werden.
+ [Datenüberprüfung in Amazon QLDB](verification.md)— Um mehr über die kryptografische Überprüfung von Journaldaten zu erfahren.

# Amazon QLDB-Glossar
<a name="qldb-glossary"></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.

Im Folgenden finden Sie Definitionen für wichtige Begriffe, auf die Sie bei der Arbeit mit Amazon QLDB stoßen könnten.

 [Block](#block) \$1 [Digest](#digest) \$1 [document](#document) \$1 [Dokument-ID](#document_id) \$1 [Dokumentrevision](#document_revision) \$1 [Eintrag](#entry) \$1 [field](#field) \$1 [index](#index) \$1 [Indizierter Speicher](#indexed_storage) \$1 [Journal](#journal) \$1 [Journalblock](#journal_block) \$1 [journal storage](#journal_storage) \$1 [Journal-Strähne](#journal_strand) \$1 [Journaltipp](#journal_tip) \$1 [Ledger](#ledger) \$1 [Nachweis](#proof) \$1 [Änderung](#revision) \$1 [Sitzung](#session) \$1 [Strang](#strand) \$1 [Tabelle](#table) \$1 [tabellarische Ansicht](#table_view) \$1 [Ansicht](#view) 

**Block**  <a name="block"></a>
Ein Objekt, das in einem Journal in einer Transaktion festgeschrieben wird. Eine einzelne Transaktion schreibt einen Block in das Journal, sodass ein Block nur einer Transaktion zugeordnet werden kann. Ein Block enthält Einträge, die die Dokumentrevisionen darstellen, die in der Transaktion festgeschrieben wurden, zusammen mit den [PartiQL-Anweisungen](ql-reference.md), mit denen sie festgeschrieben wurden.  
Jeder Block enthält außerdem einen Hash-Wert für die Verifizierung. Ein Block-Hash wird aus den Eintragshashes innerhalb dieses Blocks zusammen mit dem Hash des vorherigen verketteten Blocks berechnet.

**Digest**  <a name="digest"></a>
Ein 256-Bit-Hashwert, der den gesamten Verlauf der Dokumentenrevisionen in Ihrem Hauptbuch zu einem bestimmten Zeitpunkt eindeutig darstellt. Ein Digest-Hash wird aus der vollständigen Hash-Kette Ihres Journals ab dem letzten festgeschriebenen Block im Journal zu diesem Zeitpunkt berechnet.  
Mit QLDB können Sie einen Digest als sichere Ausgabedatei generieren. Anschließend können Sie diese Ausgabedatei verwenden, um die Integrität Ihrer Dokumentrevisionen in Bezug auf diesen Hash zu verifizieren.

**document**  <a name="document"></a>
Ein Datensatz im [Amazon Ion](ion.md)-Format `struct` kann eingefügt, aktualisiert und in einer Tabelle gelöscht werden. Ein QLDB-Dokument kann strukturierte, halbstrukturierte, verschachtelte und schemalose Daten enthalten.

**Dokument-ID**  <a name="document_id"></a>
Der Universally Unique Identifier (UUID), den QLDB jedem Dokument zuweist, das Sie in eine Tabelle einfügen. Diese ID ist eine 128-Bit-Zahl, die in einer Base62-codierten alphanumerischen Zeichenfolge mit einer festen Länge von 22 Zeichen dargestellt wird.

**Dokumentrevision**  <a name="document_revision"></a>
Eine Ionen-Struktur, die eine einzelne Version einer Sequenz von Dokumenten darstellt, die durch eine eindeutige Dokument-ID identifiziert werden. Eine Revision umfasst sowohl Ihre Benutzerdaten (d. h. die Daten, die Sie in die Tabelle geschrieben haben) als auch vom System generierte Metadaten. Jede Revision ist einer Tabelle zugeordnet und wird durch eine Kombination aus der Dokument-ID und einer auf Null basierenden Versionsnummer eindeutig identifiziert.

**Eintrag**  <a name="entry"></a>
Ein Objekt, das in einem Block enthalten ist. Einträge repräsentieren Dokumentrevisionen, die in einer Transaktion eingefügt, aktualisiert und gelöscht werden, zusammen mit den PartiQL-Anweisungen, die diese festschreiben.  
Jeder Eintrag enthält außerdem einen Hash-Wert für die Verifizierung. Ein Eintragshash wird aus den Revisionshashes oder den Anweisungshashes innerhalb dieses Eintrags berechnet.

**field**  <a name="field"></a>
Ein Name-Wert-Paar, aus dem jedes Attribut eines QLDB-Dokuments besteht. Der Name ist ein Symbol-Token, und der Wert ist uneingeschränkt.

**index**  <a name="index"></a>
Eine Datenstruktur, die Sie in einer Tabelle erstellen können, um die Leistung von Datenabrufvorgängen zu optimieren. Informationen zu Indizes in QLDB finden Sie [CREATE INDEX](ql-reference.create-index.md) in der *Amazon QLDB PartiQL-Referenz*.

**Indizierter Speicher**  <a name="indexed_storage"></a>
Der Speicherplatz, der von den Tabellen, Indizes und vom indizierten Verlauf eines Ledgers verwendet wird. Der indizierte Speicher besteht aus für Hochleistungs-Abfragen optimierten Ledgerdaten.

**Journal**  <a name="journal"></a>
Die Hash-verkettete Gruppe aller Blöcke, die in Ihrem Ledger übergeben werden. Das Journal kann nur angehängt werden (Append-only) und stellt einen vollständigen und unveränderlichen Verlauf aller Änderungen an Ihren Ledger-Daten dar.

**Journalblock**  <a name="journal_block"></a>
Siehe [Block](#block).

**journal storage**  <a name="journal_storage"></a>
Der Speicherplatz, der vom Journal eines Ledgers verwendet wird.

**Journal-Strähne**  <a name="journal_strand"></a>
Siehe [Strang](#strand).

**Journaltipp**  <a name="journal_tip"></a>
Der letzte festgeschriebene Block in einem Journal zu einem bestimmten Zeitpunkt.

**Ledger**  <a name="ledger"></a>
Eine Instanz einer Amazon QLDB-Ledger-Datenbankressource. Dies ist der primäre AWS Ressourcentyp in QLDB. Ein Ledger besteht sowohl aus dem *Journal-Speicher* als auch aus dem *indizierten Speicher*. Nachdem die Ledger-Daten in das Journal übernommen wurden, können sie in Tabellen mit Amazon Ion-Dokumentrevisionen abgefragt werden.

**Nachweis**  <a name="proof"></a>
Die geordnete Liste von 256-Bit-Hashwerten, die QLDB für einen bestimmten Digest und eine bestimmte Dokumentrevision zurückgibt. Sie besteht aus den Hashes, die von einem Hash-Baummodell benötigt werden, um den gegebenen Revisions-Hash mit dem Digest-Hash zu verketten. Sie verwenden einen Nachweis, um die Integrität Ihrer Überarbeitungen im Vergleich zum Digest zu überprüfen. Weitere Informationen finden Sie unter [Datenüberprüfung in Amazon QLDB](verification.md).

**Änderung**  <a name="revision"></a>
Siehe [Dokumentrevision](#document_revision).

**Sitzung**  <a name="session"></a>
Ein Objekt, das Informationen über Ihre Anfragen und Antworten zu Datentransaktionen in und aus einem Ledger verwaltet. Eine *aktive Sitzung* (eine, die aktiv eine Transaktion ausführt) stellt eine einzelne Verbindung zu einem Ledger dar. QLDB unterstützt eine aktiv laufende Transaktion pro Sitzung.

**Strang**  <a name="strand"></a>
Eine Partition eines Journals. QLDB unterstützt derzeit nur Zeitschriften mit einem einzigen Strang.

**Tabelle**  <a name="table"></a>
Eine materialisierte Ansicht einer ungeordneten Sammlung von Dokumentüberarbeitungen, die im Journal des Hauptbuchs festgeschrieben wurden.

**tabellarische Ansicht**  <a name="table_view"></a>
Eine abfragbare Teilmenge der Daten in einer Tabelle, die auf Transaktionen basiert, die an das Journal übergeben wurden. In einer PartiQL-Anweisung wird eine Ansicht durch einen Präfixqualifizierer (beginnend mit`_ql_`) für einen Tabellennamen gekennzeichnet.  
Sie können die folgenden systemdefinierten Ansichten mithilfe von Anweisungen abfragen: `SELECT`  
+ *Benutzer* — Die letzte aktive Version nur der Daten, die Sie in die Tabelle geschrieben haben (d. h. der aktuelle Status Ihrer Benutzerdaten). Dies ist die Standardansicht in QLDB.
+ *Festgeschrieben* — Die letzte aktive Version sowohl Ihrer Benutzerdaten als auch der vom System generierten Metadaten. Dies ist die vollständige systemdefinierte Tabelle, die direkt Ihrer Benutzertabelle entspricht. Beispiel: `_ql_committed_TableName`.

**Ansicht**  <a name="view"></a>
Siehe [tabellarische Ansicht](#table_view).