

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon QLDB とは


**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

Amazon Quantum Ledger Database (Amazon QLDB) はフルマネージド型の台帳データベースで、信頼された中央機関が所有する、透過的でイミュータブルであり、暗号的に検証可能なトランザクションログを提供します。Amazon QLDB を使用して、すべてのアプリケーションデータの変更を追跡し、完全で検証可能な変更履歴を長期にわたって保持できます。Amazon Web Services で利用できるさまざまなデータベースオプションの詳細については、「[AWSで組織に適したデータベースを選択する](https://aws.amazon.com/getting-started/decision-guides/databases-on-aws-how-to-choose/)」を参照してください。

台帳は、通常、企業の経済活動や財務活動の履歴を記録するために使用されます。多くの組織では、アプリケーションのデータの正確な履歴を維持することを目的に、台帳に似た機能を提供するアプリケーションを構築しています。たとえば、銀行業務トランザクションにおける貸方と借方の履歴を追跡したり、保険金請求書のデータ系列を確認したり、サプライチェーンネットワーク内の商品の動きを追跡したりするなどの目的のためです。多くの場合、台帳アプリケーションは、リレーショナルデータベースに作成されたカスタムの監査テーブルや監査証跡を使用して実装されます。

Amazon QLDB は新しい種類のデータベースで、台帳のようなアプリケーションを自分で構築するという複雑な開発作業を行う必要がありません。QLDB では、データの変更履歴は変更不可能であり、上書きや変更はできません。また、暗号化を使用して、アプリケーションのデータに意図しない変更が行われていないことを確認できます。QLDB では、イミュータブルトランザクションログ (ジャーナル**) を使用します。ジャーナルは追加専用であり、コミットされたデータを含む、一連のシーケンスおよびハッシュチェーンされた*ブロック*で構成されます。

## Amazon QLDB ビデオ


次のビデオでは、Amazon QLDB の概要と、その利点について説明します。

[![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 の料金


Amazon QLDB では使用した分に対してのみ支払いが発生し、最低料金やサービス使用義務はありません。料金は台帳データベースで使用したリソースに対してのみ発生し、事前にプロビジョニングする必要はありません。

詳細については、「[Amazon QLDB 料金](https://aws.amazon.com/qldb/pricing/)」を参照してください。

## QLDB の開始方法


最初に次のトピックを読むことをお勧めします。
+ **[Amazon QLDB の概要](what-is.overview.md)** - QLDB の概要について説明します。
+ **[Amazon QLDB の重要な概念と用語](ledger-structure.md)** - QLDB の基本的な概念と用語について説明します。
+ **[Amazon QLDB へのアクセス](accessing.md)** –、API AWS マネジメントコンソール、または AWS Command Line Interface () を使用して QLDB にアクセスする方法について説明しますAWS CLI。
+ **[Amazon QLDB で IAM が機能する仕組み](security_iam_service-with-iam.md)** – AWS Identity and Access Management (IAM) を使用して QLDB へのアクセスを制御する方法について説明します。

QLDB コンソールをすぐに使用開始するには、「[Amazon QLDB コンソールの使用開始方法](getting-started.md)」を参照してください。

 AWS が提供するドライバーを使用して QLDB で開発する方法については、「」を参照してください[Amazon QLDB ドライバーの開始方法](getting-started-driver.md)。

# Amazon QLDB の概要
概要

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

以下のセクションでは、Amazon QLDB サービスコンポーネントと、コンポーネント間のやり取りの概要について説明します。

**Topics**
+ [

## ジャーナルファースト
](#what-is.overview.journal)
+ [

## Immutable
](#what-is.overview.immutable)
+ [

## 暗号的に検証可能
](#what-is.overview.verifiable)
+ [

## SQL のようにドキュメントを柔軟に操作可能
](#what-is.overview.sql-like)
+ [

## オープンソースの開発者ツール
](#what-is.overview.open-source)
+ [

## サーバーレスでかつ高可用性
](#what-is.overview.scalable)
+ [

## エンタープライズグレード
](#what-is.overview.enterprise)

## ジャーナルファースト


従来のデータベースアーキテクチャでは、通常、トランザクションの一部としてテーブルにデータを書き込みます。トランザクションログ (通常は内部実装) は、トランザクションと、それによるデータベースの変更をすべて記録します。トランザクションログは、データベースの重要なコンポーネントです。システム障害、災害復旧、またはデータレプリケーションが発生した場合に、トランザクションを再生するには、ログが必要です。ただし、データベーストランザクションログは変更不可能ではなく、ユーザーが直接簡単にアクセスできるようには設計されていません。

Amazon QLDB では、ジャーナルはデータベースの中核です。トランザクションログと似た構造のジャーナルは、アプリケーションデータと関連するメタデータを保存するイミュータブルな追加専用のデータ構造です。更新や削除を含むすべての書き込みトランザクションは、最初にジャーナルにコミットされます。

QLDB は、ジャーナルを使用して台帳データの現在の状態を確認する際に、データをクエリ可能なユーザー定義テーブルに具体化します。これらのテーブルには、ドキュメントのリビジョンやメタデータなど、すべてのトランザクションデータのアクセス可能な履歴も表示されます。ジャーナルはさらに、同時実行性、順序付け、暗号化検証、および台帳データの可用性を処理します。

QLDB ジャーナルのアーキテクチャを以下に図で示します。

![\[QLDB というタイトルの図: ジャーナルはデータベースであり、ジャーナルのアーキテクチャには台帳に接続しジャーナルにトランザクションをコミットするアプリケーションがあり、ジャーナルはテーブルにマテリアライズされることが示されています。\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/images/journal-first.png)

+ この例では、アプリケーションが台帳に接続し、`cars` という名前のテーブルに対しドキュメントを挿入、更新、削除するトランザクションを実行します。
+ データは、まず順番にジャーナルに書き込まれます。
+ その後、データは組み込みビューを使用してテーブルにマテリアライズされます。これらのビューでは、各リビジョンにバージョン番号が割り当てられた状態で、自動車の現在の状態と完全な履歴の両方にクエリを実行できます。
+ ジャーナルから直接データをエクスポートまたはストリーミングすることもできます。

## Immutable


QLDB ジャーナルは追加専用であるため、データに対するすべての変更の完全な記録が保持され、変更や上書きはできません。コミットされたデータを直接変更する API やその他の方法はありません。このジャーナルの構造により、台帳の全履歴にアクセスしてクエリを実行できます。

**注記**  
QLDB がサポートする不変性の唯一の例外は、データの秘匿化です。この機能により、欧州連合の一般データ保護規則 (GDPR) やカリフォルニア州消費者プライバシー法 (CCPA) などの規制法令に準拠することができます。  
QLDB にはテーブルの履歴にある使用頻度の低いドキュメントリビジョンを完全に削除することができる秘匿化オペレーションがあります。このオペレーションでは、指定したリビジョンのユーザーデータのみが削除され、ジャーナルシーケンスとドキュメントのメタデータは変更されません。これにより、台帳の全体的なデータの整合性が維持されます。詳細については、「[ドキュメントのリビジョンを秘匿化する](working.redaction.md)」を参照してください。

QLDB は、トランザクション内のジャーナルに 1 つのブロックを書き込みます。各ブロックには、挿入、更新、削除するドキュメントを表すエントリオブジェクトと、それらをコミットするために実行したステートメントが含まれます。これらのブロックは、データの整合性を保証するために順序付けおよびハッシュチェーンされています。

以下の図は、このジャーナルの構造を示したものです。

![\[レコード変更不可というタイトルの図。QLDB のイミュータブルで追加専用のジャーナル構造を示します。各ハッシュチェーンされたジャーナルブロックにシーケンス番号があります。\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/images/immutable.png)


この図は、トランザクションが、検証のためにハッシュチェーンされたブロックとしてジャーナルにコミットされていることを示しています。各ブロックには、そのアドレスを指定するシーケンス番号があります。

## 暗号的に検証可能


ジャーナルブロックは、ブロックチェーンと同様に、暗号ハッシュ技術とともに順序付けされ、チェーンされます。QLDB はジャーナルのハッシュチェーンを使用し、暗号化検証方法を使用して、トランザクションデータの整合性を提供します。*ダイジェスト* (ある時点でのジャーナルの完全なハッシュチェーンを表すハッシュ値) と *Merkle 監査証明* (バイナリハッシュツリー内のノードの妥当性を証明するメカニズム) を使用すると、データに対する意図しない変更がないことをいつでも確認できます。

次の図は、ある時点でのジャーナルの完全なハッシュチェーンをカバーするダイジェストを示しています。

![\[SHA-256 を使用したハッシュチェーンというタイトルの図。ジャーナルのハッシュチェーン全体を対象とするダイジェストと、Ion ドキュメント、PartiQL ステートメント、およびメタデータを表すエントリを含むジャーナルブロックの構造を示します。\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/images/verifiable.png)


この図では、ジャーナルブロックは SHA-256 暗号化ハッシュ関数を使用してハッシュ化され、後続のブロックに順次チェーンされています。各ブロックには、データドキュメント、メタデータ、およびトランザクションで実行された PartiQL ステートメントを含むエントリがあります。

詳細については、「[Amazon QLDB でのデータ検証](verification.md)」を参照してください。

## SQL のようにドキュメントを柔軟に操作可能


QLDB は PartiQL をクエリ言語として使用し、Amazon Ion をドキュメント指向のデータモデルとして使用します。PartiQL は、Ion で動作するように拡張されたオープンソースの SQL 互換のクエリ言語です。PartiQL を使用すると、使い慣れた SQL 演算子を使用してデータを挿入、クエリ、および管理できます。フラットドキュメントにクエリを実行する場合、構文は SQL を使用してリレーショナルテーブルをクエリするのと同じです。PartiQL の QLDB での実装については、「[Amazon QLDB の PartiQL リファレンス](ql-reference.md)」を参照してください。

Amazon Ion は JSON のスーパーセットです。Ion はオープンソースのドキュメントベースのデータ形式であり、構造化データ、半構造化データ、およびネストされたデータを柔軟に保存および処理できます。QLDB の詳細については、「[Amazon QLDB の Amazon Ion データ形式リファレンス](ion.md)」を参照してください。

従来のリレーショナルデータベースと QLDB についての、コアコンポーネントと機能の概要の比較については、「[リレーショナルから台帳へ](what-is.relational-ledger.md)」を参照してください。

## オープンソースの開発者ツール


アプリケーション開発を簡素化するために、QLDB では、さまざまなプログラミング言語でオープンソースドライバーを提供しています。これらのドライバーを使用して、台帳で PartiQL ステートメントを実行し、それらのステートメントの結果を処理することで、トランザクションデータ API を操作できます。現在サポートされているドライバー言語に関する情報とチュートリアルについては、「[Amazon QLDB ドライバーの開始方法](getting-started-driver.md)」を参照してください。

Amazon Ion には、Ion データを処理するクライアントライブラリも用意されています。Ion データの処理に関するデベロッパーガイドおよびコード例については、GitHub の [Amazon Ion ドキュメント](http://amzn.github.io/ion-docs/)を参照してください。

## サーバーレスでかつ高可用性


QLDB は、フルマネージド、サーバーレスであり、高可用性も備えています。このサービスは、アプリケーションの需要に応じて自動的にスケールされるため、インスタンスや容量をプロビジョニングする必要はありません。データの複数のコピーが 1 つの AWS リージョンの 1 つのアベイラビリティーゾーン内および複数のアベイラビリティーゾーン間でレプリケートされます。

## エンタープライズグレード


QLDB トランザクションはアトミック性、整合性、分離、耐久性 (ACID) の各特性に完全に準拠しています。QLDB はオプティミスティック同時実行制御 (OCC、Optimistic Concurrency Control) を使用し、トランザクションは完全な直列化可能性 (最高レベルの分離性) で動作します。つまり、ファントムリード、ダーティリード、書き込みスキューなどの並行性の問題が発生するリスクはありません。詳細については、「[Amazon QLDB 同時実行モデル](concurrency.md)」を参照してください。

# リレーショナルから台帳へ


**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

アプリケーションデベロッパーなら、リレーショナルデータベース管理システム (RDBMS) および構造化クエリ言語 (SQL) を使用した経験があるかもしれません。Amazon QLDB の使用を開始すると、多くの類似点があることがわかります。より高度なトピックに進むにつれて、RDBMS 基盤上に構築された QLDB の強力な新機能についても説明します。このセクションでは、一般的なデータベースのコンポーネントとオペレーションについて、QLDB での同等部分と比較、対比しながら説明します。

次の図は、従来の RDBMS と Amazon QLDB との間のコアコンポーネントのマッピング構造を示しています。

![\[従来の RDBMS のコアコンポーネント (データベース、テーブル、インデックス、行、列など) の、対応する QLDB コンポーネント (台帳、テーブル、インデックス、Ion ドキュメント、doc 属性など) へのマッピングの図。\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/images/rdbms-mapping.png)


次の表に、従来の RDBMS と QLDB 間の組み込みオペレーション機能の主要な類似点と相違点の概要を示します。


****  

| Operation | RDBMS | QLDB | 
| --- | --- | --- | 
| テーブルの作成 | すべての列名とデータ型を定義する CREATE TABLE ステートメント | スキーマレスおよびオープンコンテンツを許可するためにテーブル属性またはデータ型を定義しない CREATE TABLE ステートメント | 
| インデックスの作成 | CREATE INDEX ステートメント | CREATE INDEX ステートメント (テーブル上の任意の最上位フィールドが対象) | 
| データの挿入 | テーブルで定義されているスキーマに準拠する新しい行またはタプル内の値を指定する INSERT ステートメント | テーブル内の既存のドキュメントに関係なく、有効な Amazon Ion 形式で新しいドキュメント内の値を指定する INSERT ステートメント | 
| データのクエリ | SELECT-FROM-WHERE ステートメント | フラットドキュメントにクエリを実行する場合は SQL と同じ構文で SELECT-FROM-WHERE ステートメント | 
| データの更新 | UPDATE-SET-WHERE ステートメント | フラットドキュメントを更新する場合は SQL と同じ構文で UPDATE-SET-WHERE ステートメント | 
| データの削除 | DELETE-FROM-WHERE ステートメント | フラットドキュメントを削除する場合は SQL と同じ構文で DELETE-FROM-WHERE ステートメント | 
| ネストされたデータおよび半構造化されたデータ | フラット行またはタプルのみ | Amazon Ion データ形式と PartiQL クエリ言語でサポートされている構造化、半構造化、またはネストされたデータを持つことができるドキュメント | 
| メタデータのクエリ | 組み込みメタデータなし | テーブルのコミットされた組み込みビューからクエリを実行する SELECT ステートメント | 
| リビジョン履歴のクエリの実行 | 組み込みデータ履歴なし | 組み込みの履歴関数からクエリを実行する SELECT ステートメント | 
| 暗号検証 | 組み込みの暗号化または不変性なし | ジャーナルのダイジェスト、およびそのダイジェストに関連するドキュメントリビジョンの整合性を検証する証明を返す API | 

QLDB の主要な概念と用語の概要については、「[重要な概念](ledger-structure.md)」を参照してください。

台帳でのデータの作成、クエリ、管理のプロセスの詳細については、「[データと履歴の使用](working-with-data.md)」を参照してください。

# Amazon QLDB の重要な概念と用語
重要な概念

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

このセクションでは、台帳の構造や台帳によるデータの管理方法など、Amazon QLDB の重要な概念と用語の概要について説明します。台帳データベースの QLDB は、主要なコンセプトに関して、他のドキュメント指向のデータベースとは異なります。

**Topics**
+ [

## QLDB データオブジェクトモデル
](#ledger-structure.concepts)
+ [

## ジャーナルファーストトランザクション
](#ledger-structure.transactions)
+ [

## データのクエリの実行
](#ledger-structure.querying)
+ [

## データストレージ
](#ledger-structure.storage)
+ [

## QLDB API モデル
](#ledger-structure.api)
+ [

## 次のステップ
](#ledger-structure.next-steps)

## QLDB データオブジェクトモデル


Amazon QLDB の基本データオブジェクトモデルは次のとおりです。

1. **台帳**

   最初のステップは、QLDB のプライマリ AWS リソースタイプである*台帳*を作成することです。台帳の作成方法については、「コンソールの開始方法」の「[ステップ 1: 新しい台帳を作成する](getting-started-step-1.md)」、または「[Amazon QLDB 台帳の基本的なオペレーション](ledger-management.basics.md)」を参照してください。**

   台帳の `ALLOW_ALL`および アクセス`STANDARD`許可モードの両方で、この台帳リソースで API オペレーションを実行するアクセス許可を付与する AWS Identity and Access Management (IAM) ポリシーを作成します。

   台帳 ARN 形式:

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

1. **ジャーナルとテーブル**

   QLDB 台帳でデータの書き込みを開始するには、まず**テーブルを 基本 [CREATE TABLE](ql-reference.create-table.md) ステートメントで作成します。台帳データは、台帳の**ジャーナルにコミットされたドキュメントのリビジョンで構成されます。ユーザー定義テーブルのコンテキストで、ドキュメントリビジョンを台帳にコミットします。QLDB のテーブルは、ジャーナルからのドキュメントリビジョンのコレクションのマテリアライズドビューです。

   `STANDARD` アクセス許可モードの台帳では、このテーブルリソースで PartiQL ステートメントを実行するために、アクセス許可を付与する IAM ポリシーを作成する必要があります。テーブルリソースに対するアクセス許可を使用すると、テーブルの現在の状態にアクセスするステートメントを実行できます。組み込みの `history()` 関数を使用してテーブルのリビジョン履歴のクエリを実行することもできます。

   テーブル ARN 形式:

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

   台帳およびその関連リソースに対するアクセス許可の付与の詳細については、「[Amazon QLDB で IAM が機能する仕組み](security_iam_service-with-iam.md)」を参照してください。

1. **ドキュメント**

   テーブルは [QLDB ドキュメント](ql-reference.docs.md) のリビジョンで構成されます。これらは、[Amazon Ion](ion.md) `struct` 形式のデータセットです。**ドキュメントリビジョンは、一意のドキュメント ID によって識別される一連のドキュメントの 1 つのバージョンを表します。

   QLDB は、コミットしたドキュメントの完全な変更履歴を保存します。テーブルではドキュメントの現在の状態のクエリを実行できますが、`history()` 関数を使用するとテーブルのドキュメントのリビジョン履歴全体についてクエリを実行できます。リビジョンのクエリと書き込みの詳細については、「[データと履歴の使用](working-with-data.md)」を参照してください。

1. **システムカタログ**

   各台帳では、システム定義の**カタログリソースも提供され、このリソースでクエリを実行して台帳内のすべてのテーブルとインデックスを一覧表示できます。`STANDARD` アクセス許可モードの台帳では、次の操作を実行するために、このカタログリソースに対する `qldb:PartiQLSelect` アクセス許可が必要です。
   + `SELECT` ステートメントをシステムカタログテーブル [schema.user\$1tables](working.catalog.md) で実行します。
   + テーブルおよびインデックス情報を [QLDB コンソール](console_QLDB.md)の台帳詳細ページに表示します。
   + テーブルおよびインデックスのリストを QLDB コンソールの PartiQL エディタに表示します。

   カタログ ARN 形式:

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

## ジャーナルファーストトランザクション


アプリケーションが QLDB 台帳のデータを読み書きするときは、データベーストランザクション内で行われます。すべてのトランザクションは、[Amazon QLDB でのクォータと制限](limits.md#limits.fixed) で定義されている制限の対象となります。トランザクション内で、QLDB は次のステップを実行します。

1. 台帳からデータの現在の状態を読み取ります。

1. トランザクションで提供されるステートメントを実行して、完全な直列化可能分離を実現するために、[オプティミスティック同時実行制御 (OCC)](concurrency.md) を使用して競合がないかチェックします。

1. OCC 競合が見つからない場合は、次のようにトランザクション結果を返します。
   + 読み込みの場合は、結果セットを返し、追加専用の方法でジャーナルに `SELECT` ステートメントをコミットします。
   + 書き込みの場合は、更新、削除、または新しく挿入されたデータを追加専用の方法でジャーナルにコミットします。

**ジャーナルは、データに行ったすべてのイミュータブルな変更履歴全体を意味します。QLDB は、トランザクション内のジャーナルに 1 つの連鎖ブロックを書き込みます。各ブロックには、挿入、アップデート、削除するドキュメントリビジョンを表す*エントリ*オブジェクトと、それらをコミットした [PartiQL](ql-reference.md) ステートメントが含まれます。

以下の図は、このジャーナルの構造を示したものです。

![\[1 つのストランドを構成する一連の連鎖ブロックと、各ブロックのシーケンス番号およびブロックハッシュを示した Amazon QLDB ジャーナル構造図。\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/images/verification/journal-structure.png)


この図は、トランザクションがドキュメントのリビジョンのエントリを含むブロックとしてジャーナルにコミットされていることを示しています。各ブロックはハッシュされ、[検証](verification.md)のために後続のブロックに連鎖されます。各ブロックには、ストランド内のアドレスを指定するシーケンス番号があります。

**注記**  
Amazon QLDB で、ストランドは台帳のジャーナルの仕切りです。QLDB は現在、単一ストランドのジャーナルのみをサポートしています。

ブロック内のデータコンテンツについては、「[Amazon QLDB のジャーナルコンテンツ](journal-contents.md)」を参照してください。

## データのクエリの実行


QLDB は、高性能なオンライントランザクション処理 (OLTP) ワークロードのニーズに対応することを目的としています。台帳は、ジャーナルにコミットされたトランザクション情報に基づいて、データのクエリ可能なテーブルビューを提供します。QLDB のテーブル**ビューは、テーブル内のデータのサブセットです。ビューにはリアルタイムのものが反映されますので、常にクエリを実行するアプリケーションで使用できます。

PartiQL `SELECT` ステートメントを使用して、以下のシステム定義ビューにクエリを実行できます。
+ **ユーザー - テーブルに書き込んだデータのみの最新のアクティブなリビジョン (つまり、ユーザーデータの現在の状態)。これが QLDB のデフォルトビューです。
+ **コミット済み - ユーザーデータと、システムによって生成されたメタデータの両方の最新のアクティブなリビジョン。これは完全システム定義テーブルで、ユーザーテーブルに直接対応しています。

これらのクエリ可能なビューに加えて、組み込みの [履歴関数](working.history.md#working.history.function) を使用してデータのリビジョン履歴を照会できます。履歴関数は、**コミット済みビューと同じスキーマにあるユーザーデータおよびその関連メタデータの両方を返します。

## データストレージ


QLDB には、次の 2 種類のデータストレージがあります。
+ **ジャーナルストレージ - 台帳のジャーナルで使用されるディスク容量。ジャーナルには、データへのすべての変更に関する完全、不変、検証可能な履歴が含まれています。
+ **インデックス付きストレージ - 台帳のテーブル、インデックス、およびインデックス付き履歴で使用されるディスク容量。インデックス付きストレージは、高パフォーマンスなクエリ用に最適化された台帳データで構成されています。

データがジャーナルにコミットされると、定義したテーブルにマテリアライズされます。これらのテーブルは、より高速で効率的なクエリを可能にするため最適化されています。アプリケーションがトランザクションデータ API を使用してデータを読み取ると、インデックス付きストレージに格納されているテーブルとインデックスにアクセスします。

## QLDB API モデル


QLDB は、アプリケーションコードで操作できる 2 種類の API を提供します。
+ Amazon QLDB – QLDB リソース管理 API (コントロールプレーンとも呼ばれます)。この API は、台帳リソースの管理および非トランザクションデータオペレーションにのみ使用されます。これらのオペレーションを使用して、台帳を作成、削除、説明表示、一覧表示、更新できます。また、データを暗号的に検証し、ジャーナルブロックをエクスポートまたはストリーミングすることもできます。
+ Amazon QLDB セッション - QLDB トランザクションデータプレーン。この API を [PartiQL](ql-reference.md) ステートメントで使用して、台帳のデータトランザクションを実行できます。
**重要**  
**QLDB セッション API と直接やり取りする代わりに、QLDB ドライバーまたは QLDB シェルを使用して、台帳のデータトランザクションを実行することをお勧めします。  
 AWS SDK を使用している場合は、QLDB ドライバーを使用します。このドライバーは、QLDB セッションデータ API 上に高レベルの抽象化レイヤーを提供し、`SendCommand` オペレーションを管理します。サポートされているプログラミング言語の情報とリストについては、「[ドライバーの開始方法](getting-started-driver.md)」を参照してください。
を使用している場合は AWS CLI、QLDB シェルを使用します。シェルは、QLDB ドライバーを使用して台帳と対話するコマンドラインインターフェイスです。詳細については、[Amazon QLDB シェルの使用 (データ API のみ)](data-shell.md) を参照してください。

使用できる API オペレーションの詳細については、「[Amazon QLDB API リファレンス](api-reference.md)」を参照してください。

## 次のステップ


自分のデータで台帳を使用する方法については、「[Amazon QLDB でのデータと履歴の使用](working-with-data.md)」を参照し、テーブルの作成、データの挿入、および基本的なクエリの実行の手順を説明する例に従ってください。このガイドでは、コンテキストのサンプルデータとクエリの例を使用して、これらの概念がどのように機能するかについて詳細を説明します。

QLDB コンソールを使用してサンプルアプリケーションチュートリアルをすばやく使用するには、「[Amazon QLDB コンソールの使用開始方法](getting-started.md)」を参照してください。

このセクションで説明する主要な用語と定義のリストについては、「[Amazon QLDB 用語集](qldb-glossary.md)」を参照してください。

# Amazon QLDB のジャーナルコンテンツ
ジャーナルコンテンツ

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

Amazon QLDB の場合、**ジャーナルは、データに対するすべての変更の完全かつ検証可能な履歴を保存するイミュータブルトランザクションログです。ジャーナルは追加専用であり、コミットされたデータやその他のシステムメタデータを含む、一連のシーケンスおよびハッシュチェーンされた**ブロックで構成されます。QLDB は、トランザクション内のジャーナルに 1 つの連鎖ブロックを書き込みます。

このセクションでは、サンプルデータを含むジャーナルブロックの例を示し、ブロックの内容について説明します。

**Topics**
+ [

## ブロックの例
](#journal.block-example)
+ [

## ブロックの内容
](#journal.block-contents)
+ [

## 秘匿化済みのリビジョン
](#journal.redacted-revisions)
+ [

## サンプルアプリケーション
](#journal.sample)
+ [

## 関連情報
](#journal.see-also)

## ブロックの例


ジャーナルブロックには、トランザクションのメタデータ、トランザクションでコミットされたドキュメントリビジョンを表すエントリ、およびそれらをコミットした [PartiQL](ql-reference.md) ステートメントが含まれます。

以下に、サンプルデータを含むブロックの例を示します。

**注記**  
このブロック例は、情報提供のみを目的として記載されています。示されているハッシュは、実際に計算されたハッシュ値ではありません。

```
{
  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"
      }
    }
  ]
}
```

`revisions` フィールドには、`hash` 値のみを含み、その他の属性を含まないリビジョンオブジェクトもあります。これらは、ユーザーデータを含まない内部のみのシステムリビジョンです。これらのリビジョンのハッシュは、ジャーナルの完全なハッシュチェーンの一部であり、暗号検証に必要です。

## ブロックの内容


ジャーナルブロックには、次のフィールドがあります。

**`blockAddress`**  
ジャーナル内のブロックの位置。アドレスは、`strandId` と `sequenceNo` という 2 つのフィールドを含む [Amazon Ion](ion.md) 構造です。  
例: `{strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}`

**`transactionId`**  
ブロックをコミットしたトランザクションの一意の ID。

**`blockTimestamp`**  
ブロックがジャーナルにコミットされた時刻を示すタイムスタンプ。

**`blockHash`**  
ブロックを一意に表す 256 ビットのハッシュ値。これは、`entriesHash` と `previousBlockHash` の連結のハッシュです。

**`entriesHash`**  
ブロック内のすべてのエントリ (内部専用のシステムエントリを含む) を表すハッシュ。これは、[Merkle ツリー](verification.md#verification.how-it-works.merkle-tree)のルートハッシュです。このツリーのリーフノードは、`entriesHashList` のすべてのハッシュで構成されます。

**`previousBlockHash`**  
ジャーナル内の 1 つ前のチェーンされたブロックのハッシュ。

**`entriesHashList`**  
ブロック内の各エントリを表すハッシュのリスト。このリストには、次のエントリハッシュが含まれる場合があります。  
+ `transactionInfo` を表す Ion ハッシュ。この値は、`transactionInfo` 構造全体の Ion ハッシュを取得することによって計算されます。
+ リーフノードが `revisions` のすべてのハッシュで構成される Merkle ツリーのルートハッシュ。
+ `redactionInfo` を表す Ion ハッシュ。このハッシュは、秘匿化のトランザクションによってコミットされたブロックにのみ存在します。この値は、`redactionInfo` 構造全体の Ion ハッシュを取得することによって計算されます。
+ 内部専用のシステムメタデータを表すハッシュ。これらのハッシュは、すべてのブロックに存在するとは限りません。

**`transactionInfo`**  
ブロックをコミットしたトランザクション内のステートメントに関する情報を含む Amazon Ion 構造。この構造には次のフィールドがあります。  
+ `statements` - PartiQL ステートメントのリストと、ステートメントの実行が開始したときの `startTime`。各ステートメントには、`transactionInfo` 構造のハッシュを計算するために必要な `statementDigest` ハッシュがあります。
+ `documents` - ステートメントによって更新されたドキュメント ID。各ドキュメントには、そのドキュメントが所属する先の `tableName` と `tableId`、およびそのドキュメントを更新した各ステートメントのインデックスが含まれます。

**`revisions`**  
ブロック内でコミットされたドキュメントリビジョンのリスト。各リビジョン構造には、リビジョンの[コミットされたビュー](working.metadata.md)のすべてのフィールドが含まれます。  
これには、ジャーナルのハッシュチェーン全体の一部を構成する内部専用のシステムリビジョンを表すハッシュも含まれます。

## 秘匿化済みのリビジョン


Amazon QLDB では、`DELETE` ステートメントは、削除済みとしてマークする新しいリビジョンを作成することによってのみドキュメントを論理的に削除します。QLDB テーブルの履歴にある使用頻度の低いドキュメントリビジョンを完全に削除できるデータの秘匿化オペレーションもサポートしています。

秘匿化オペレーションでは、指定されたリビジョンのユーザーデータのみが削除され、ジャーナルシーケンスとドキュメントのメタデータは変更されません。これにより、台帳の全体的なデータの整合性が維持されます。詳細と秘匿化オペレーションの例については、「[ドキュメントのリビジョンを秘匿化する](working.redaction.md)」を参照してください。

### 秘匿化済みのリビジョンの例


先ほどの[ブロックの例](#journal.block-example)を考えてみましょう。このブロックでは、秘匿化中のリビジョンのドキュメント ID が `HwVFkn8IMRa0xjze5xcgga` で、バージョン番号が `0` とします。

秘匿化が完了すると、リビジョン内の (`data` 構造で表される) `dataHash` ユーザーデータは新しいフィールドに置き換えられます。このフィールドの値は、削除された `data` 構造の Ion ハッシュです。その結果、台帳は全体的なデータ整合性を維持し、既存の検証 API オペレーションを通じて暗号的に検証できる状態を維持します。

次の改訂例は、この秘匿化の結果を示しています。新しい `dataHash` フィールドは*赤色の斜体*で強調表示されています。

**注記**  
このリビジョンの例は、情報提供のみを目的として記載されています。示されているハッシュは、実際に計算されたハッシュ値ではありません。

```
...
{
  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 は、完了した秘匿化のリクエストに対応する新しいブロックをジャーナルに追加します。このブロックには、次の例に示すように、トランザクション内で秘匿化済みのリビジョンのリストを含む追加 `redactionInfo` エントリが含まれます。

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

## サンプルアプリケーション


エクスポートされたデータを使用してジャーナルのハッシュチェーンを検証する Java コード例については、GitHub リポジトリ [aws-samples/amazon-qldb-dmv-sample-java](https://github.com/aws-samples/amazon-qldb-dmv-sample-java) を参照してください。このサンプルアプリケーションには、次のクラスファイルが含まれています。
+ [ValidateQldbHashChain.java](https://github.com/aws-samples/amazon-qldb-dmv-sample-java/blob/master/src/main/java/software/amazon/qldb/tutorial/ValidateQldbHashChain.java) - 台帳からジャーナルブロックをエクスポートし、エクスポートされたデータを使用してブロック間のハッシュチェーンを検証するチュートリアルコードが含まれています。
+ [JournalBlock.java](https://github.com/aws-samples/amazon-qldb-dmv-sample-java/blob/master/src/main/java/software/amazon/qldb/tutorial/qldb/JournalBlock.java) - ブロック内の個々のハッシュコンポーネントを計算する方法を示す `verifyBlockHash()` という名前のメソッドが含まれています。このメソッドは、`ValidateQldbHashChain.java` のチュートリアルコードによって呼び出されます。

この完全なサンプルアプリケーションをダウンロードしてインストールする方法については、「[Amazon QLDB Java サンプルアプリケーションのインストール](sample-app.java.md)」を参照してください。チュートリアルコードを実行する前に、「[Java チュートリアル](getting-started.java.tutorial.md)」のステップ 1～3 を実行し、サンプル台帳をセットアップして、サンプルデータを使用してロードしてください。

## 関連情報


QLDB におけるジャーナルの詳細については、以下のトピックを参照してください。
+ 「[Amazon QLDB からのジャーナルデータのエクスポート](export-journal.md)」- ジャーナルデータを Amazon Simple Storage Service (Amazon S3) にエクスポートする方法について説明します。
+ 「[Amazon QLDB からのジャーナルデータのストリーミング](streams.md)」- ジャーナルデータを Amazon Kinesis Data Streams にストリーミングする方法について説明します。
+ 「[Amazon QLDB でのデータ検証](verification.md)」- ジャーナルデータの暗号検証について説明します。

# Amazon QLDB 用語集
QLDB 用語集

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

以下は、Amazon QLDB を使用する際の重要な用語の定義です。

 [ブロック](#block) \$1 [ダイジェスト](#digest) \$1 [ドキュメント](#document) \$1 [ドキュメント ID](#document_id) \$1 [ドキュメントリビジョン](#document_revision) \$1 [エントリ](#entry) \$1 [field](#field) \$1 [index](#index) \$1 [インデックス付きストレージ](#indexed_storage) \$1 [ジャーナル](#journal) \$1 [ジャーナルブロック](#journal_block) \$1 [ジャーナルストレージ](#journal_storage) \$1 [ジャーナルストランド](#journal_strand) \$1 [ジャーナルチップ](#journal_tip) \$1 [台帳](#ledger) \$1 [証明](#proof) \$1 [revision](#revision) \$1 [セッション](#session) \$1 [ストランド](#strand) \$1 [テーブル](#table) \$1 [テーブルビュー](#table_view) \$1 [表示](#view) 

**ブロック**  <a name="block"></a>
トランザクション中にジャーナルにコミットされたオブジェクト。1 件のトランザクションは 1 つのブロックに書き込むことができます。そのため、1 つのブロックに関連付けられるトランザクションは 1 件のみです。ブロックには、トランザクションでコミットされたドキュメントリビジョンを表すエントリ、それらをコミットした [PartiQL](ql-reference.md) ステートメントが含まれます。  
各ブロックに検証用のハッシュ値も含まれています。ブロックハッシュは、そのブロック内のエントリハッシュと、1 つ前のチェーン化されたブロックのハッシュを組み合わせて計算されます。

**ダイジェスト**  <a name="digest"></a>
ある時点における台帳のドキュメントリビジョンの履歴全体を一意に表す 256 ビットのハッシュ値。ダイジェストハッシュは、ジャーナル内の最新ブロックがコミットされた時点における、ジャーナルのハッシュチェーン全体から計算されます。  
QLDB を使用すると、セキュアな出力ファイルとしてダイジェストを生成できます。次に、その出力ファイルを使用して、そのハッシュに関連するドキュメントリビジョンの整合性を検証できます。

**ドキュメント**  <a name="document"></a>
テーブルで挿入、更新、削除できる [Amazon Ion](ion.md) `struct` 形式のデータセット。QLDB ドキュメントには、構造化データ、半構造化データ、ネストされたデータ、スキーマレスデータを含めることができます。

**ドキュメント ID**  <a name="document_id"></a>
テーブルに挿入したドキュメントごとに QLDB から割り当てられる共通の一意の識別子 (UUID、Universally Unique Identifier)。この ID は 128 ビットの数値であり、Base62 エンコードの英数字文字列 (22 文字の固定長) で表されます。

**ドキュメントリビジョン**  <a name="document_revision"></a>
一意のドキュメント ID によって識別される一連のドキュメントの 1 つのバージョンを表す Ion 構造体。リビジョンには、ユーザーデータ (ユーザーがテーブルに書き込んだデータ) とシステム生成されたメタデータの両方が含まれます。各リビジョンはテーブルに関連付けられ、ドキュメント ID と 0 から始まるバージョン番号を組み合わせて一意に識別されます。

**エントリ**  <a name="entry"></a>
ブロックに含まれるオブジェクト。エントリとは、トランザクションで挿入、更新、削除されたドキュメントリビジョンや、それらをコミットした PartiQL ステートメントを表します。  
各エントリに検証用のハッシュ値も含まれます。エントリハッシュは、そのエントリ内のリビジョンハッシュまたはステートメントハッシュから計算されます。

**field**  <a name="field"></a>
QLDB ドキュメントの各属性を構成する名前と値のペア。名前はシンボルトークンであり、値は制限されません。

**index**  <a name="index"></a>
データ取得オペレーションのパフォーマンスを最適化するためにテーブルに作成できるデータ構造。QLDB のインデックスについては、「Amazon QLDB の PartiQL リファレンス**」の「[CREATE INDEX](ql-reference.create-index.md)」を参照してください。

**インデックス付きストレージ**  <a name="indexed_storage"></a>
台帳のテーブル、インデックス、およびインデックス付き履歴で使用されるディスク容量。インデックス付きストレージは、高パフォーマンスなクエリ用に最適化された台帳データで構成されています。

**ジャーナル**  <a name="journal"></a>
台帳でコミットされたすべてのブロックのハッシュチェーンのセット。ジャーナルは、追加専用で、台帳データに行ったすべての変更の完全で不変な履歴全体を表します。

**ジャーナルブロック**  <a name="journal_block"></a>
「[ブロック](#block)」を参照してください。

**ジャーナルストレージ**  <a name="journal_storage"></a>
台帳のジャーナルで使用されるディスク容量。

**ジャーナルストランド**  <a name="journal_strand"></a>
「[ストランド](#strand)」を参照してください。

**ジャーナルチップ**  <a name="journal_tip"></a>
特定時点におけるジャーナル内のコミットされた最新ブロック。

**台帳**  <a name="ledger"></a>
Amazon QLDB 台帳データベースリソースのインスタンス。これが、QLDB のプライマリ AWS リソースタイプです。台帳は、*ジャーナルストレージ*と*インデックス付きストレージ*の両方で構成されます。台帳データがジャーナルにコミットされると、Amazon Ion ドキュメントリビジョンのテーブルでクエリできるようになります。

**証明**  <a name="proof"></a>
指定のダイジェストおよびドキュメントリビジョンに対して QLDB から返される 256 ビットのハッシュ値の順序付きリスト。これは、指定されたリビジョンハッシュをダイジェストハッシュに連鎖させるためにマークルツリーモデルによって必要とされるハッシュで構成されています。証明を使用することで、ダイジェストに関連するリビジョンの整合性を検証できます。詳細については、「[Amazon QLDB でのデータ検証](verification.md)」を参照してください。

**revision**  <a name="revision"></a>
「[ドキュメントリビジョン](#document_revision)」を参照してください。

**セッション**  <a name="session"></a>
台帳とのデータトランザクションのリクエストとレスポンスに関する情報を管理するオブジェクト。アクティブセッション** (アクティブにトランザクションを実行するセッション) は、台帳への単一の接続を表します。QLDB ではセッションごとに 1 つのトランザクションがアクティブに実行されます。

**ストランド**  <a name="strand"></a>
ジャーナルの仕切り。QLDB は現在、単一ストランドのジャーナルのみをサポートしています。

**テーブル**  <a name="table"></a>
台帳のジャーナルにコミットされたドキュメントリビジョンの順序付けられていないコレクションのマテリアライズドビュー。

**テーブルビュー**  <a name="table_view"></a>
ジャーナルにコミットされたトランザクションに基づく、テーブルのデータのクエリ可能なサブセット。PartiQL ステートメント内のビューは、テーブル名のプレフィックス修飾子 (`_ql_` で始まるもの) で表されます。  
`SELECT` ステートメントを使用して、以下のシステム定義ビューにクエリを実行できます。  
+ **ユーザー - テーブルに書き込んだデータのみの最新のアクティブなリビジョン (つまり、ユーザーデータの現在の状態)。これが QLDB のデフォルトビューです。
+ **コミット済み - ユーザーデータと、システムによって生成されたメタデータの両方の最新のアクティブなリビジョン。これは完全システム定義テーブルで、ユーザーテーブルに直接対応しています。例: `_ql_committed_TableName`。

**表示**  <a name="view"></a>
「[テーブルビュー](#table_view)」を参照してください。