Amazon の主要な概念と用語 QLDB - Amazon Quantum 台帳データベース (Amazon QLDB)

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

Amazon の主要な概念と用語 QLDB

重要

サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL」を参照してください。

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

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

Amazon の基本的なデータオブジェクトモデルは、次のように説明QLDBされています。

  1. 台帳

    最初のステップは、台帳 を作成することです。台帳 は、 のプライマリ AWS リソースタイプですQLDB。台帳の作成方法については、「コンソールの開始方法」の「ステップ 1: 新しい台帳を作成する」、または「Amazon QLDB台帳の基本オペレーション」を参照してください。

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

    台帳ARN形式:

    arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}
  2. ジャーナルとテーブル

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

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

    テーブルARN形式:

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

    台帳およびその関連リソースに対するアクセス許可の付与の詳細については、「Amazon と のQLDB連携方法 IAM」を参照してください。

  3. ドキュメント

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

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

  4. システムカタログ

    各台帳では、システム定義のカタログリソースも提供され、このリソースでクエリを実行して台帳内のすべてのテーブルとインデックスを一覧表示できます。STANDARD アクセス許可モードの台帳では、次の操作を実行するために、このカタログリソースに対する qldb:PartiQLSelect アクセス許可が必要です。

    • SELECT ステートメントをシステムカタログテーブル schema.user_tables で実行します。

    • QLDB コンソールの台帳の詳細ページでテーブルとインデックスの情報を表示します。

    • QLDB コンソールの PartiQL エディタでテーブルとインデックスのリストを表示します。

    カタログARN形式:

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

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

アプリケーションは、QLDB台帳でデータの読み取りまたは書き込みを行うときに、データベーストランザクションでこれを行います。すべてのトランザクションは、Amazon のクォータと制限 QLDB で定義されている制限の対象となります。トランザクション内で、 QLDB は次のステップを実行します。

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

  2. トランザクションで指定されたステートメントを実行し、オプティミスティック同時実行制御 (OCC) を使用して競合がないかどうかをチェックして、完全に直列化可能な分離を確認します。

  3. OCC 競合が見つからない場合は、トランザクション結果を次のように返します。

    • 読み込みの場合は、結果セットを返し、追加専用の方法でジャーナルに SELECT ステートメントをコミットします。

    • 書き込みの場合は、更新、削除、または新しく挿入されたデータを追加専用の方法でジャーナルにコミットします。

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

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

ストランドを構成する連鎖ブロックのセットと、各ブロックのシーケンス番号とブロックハッシュを示す Amazon QLDBジャーナル構造図。

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

注記

Amazon ではQLDB、ストランドは台帳のジャーナルのパーティションです。QLDB は現在、単一ストランドのジャーナルのみをサポートしています。

ブロック内のデータコンテンツについては、「Amazon のジャーナルコンテンツ QLDB」を参照してください。

データのクエリの実行

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

PartiQL SELECT ステートメントを使用して、以下のシステム定義ビューにクエリを実行できます。

  • ユーザー - テーブルに書き込んだデータのみの最新のアクティブなリビジョン (つまり、ユーザーデータの現在の状態)。これは のデフォルトビューですQLDB。

  • コミット済み - ユーザーデータと、システムによって生成されたメタデータの両方の最新のアクティブなリビジョン。これは完全システム定義テーブルで、ユーザーテーブルに直接対応しています。

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

データストレージ

には 2 種類のデータストレージがありますQLDB。

  • ジャーナルストレージ - 台帳のジャーナルで使用されるディスク容量。ジャーナルには、データへのすべての変更に関する完全、不変、検証可能な履歴が含まれています。

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

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

QLDB API モデル

QLDB には、アプリケーションコードAPIsが操作できる 2 種類の が用意されています。

  • Amazon QLDB – QLDBリソース管理 API (コントロールプレーン とも呼ばれます)。これはAPI、台帳リソースの管理と非トランザクションデータオペレーションにのみ使用されます。これらのオペレーションを使用して、台帳を作成、削除、説明表示、一覧表示、更新できます。また、データを暗号的に検証し、ジャーナルブロックをエクスポートまたはストリーミングすることもできます。

  • Amazon QLDB セッション — QLDBトランザクションデータ API。これを使用してAPI、PartiQLステートメントを使用して台帳でデータトランザクションを実行できます。

    重要

    QLDB セッション と直接やり取りする代わりにAPI、QLDBドライバーまたはQLDBシェルを使用して台帳でデータトランザクションを実行することをお勧めします。

    • を使用している場合は AWS SDK、 QLDBドライバーを使用します。ドライバーは、QLDBセッションデータの上に高レベルの抽象化レイヤーAPIを提供し、 SendCommandオペレーションを管理します。サポートされているプログラミング言語の情報とリストについては、「ドライバーの開始方法」を参照してください。

    • を使用している場合は AWS CLI、QLDBシェルを使用します。シェルは、QLDBドライバーを使用して台帳を操作するコマンドラインインターフェイスです。詳細については、「Amazon QLDB シェルの使用 (データAPIのみ)」を参照してください。

これらのAPIオペレーションの詳細については、「」を参照してくださいAmazon QLDBAPIリファレンス

次のステップ

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

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

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