Amazon QLDB の主要な概念と用語 - Amazon Quantum Ledger Database (Amazon QLDB)

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

Amazon QLDB の主要な概念と用語

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

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

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

  1. 台帳

    最初のステップは、台帳これがプライマリであるAWSリソースタイプを QLDB で設定します。台帳を作成する方法については、」ステップ 1: 新しい台帳の作成コンソールの開始方法, またはAmazon QLDB 台帳の基本操作

    (両方に対して)ALLOW_ALLおよびSTANDARD元帳の権限モードを使用するには、AWS Identity and Access Management(IAM) ポリシーで、この元帳リソースで API オペレーションを実行するアクセス権限を付与します。

    台帳 ARN 形式:

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

    QLDB 元帳でのデータの書き込みを開始するには、最初にテーブル基本的なCREATE TABLE表示されます。元帳データは、元帳のジャーナル。ユーザー定義表のコンテキストで、元帳に文書改訂をコミットします。QLDB では、テーブルは、ジャーナルからの文書改訂のコレクションのマテリアライズドビューを表します。

    STANDARD権限モードを使用する場合は、このテーブルリソースで PartiQL ステートメントを実行する権限を付与する IAM ポリシーを作成する必要があります。テーブルリソースに対するパーミッションを使用すると、テーブルの現在の状態にアクセスする文を実行できます。テーブルのリビジョン履歴を照会するには、組み込みのhistory()function.

    テーブル ARN 形式:

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

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

  3. ドキュメント

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

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

  4. システムカタログ

    各元帳には、システム定義のカタログリソースで、クエリを実行して元帳内のすべてのテーブルとインデックスをリストできます。左STANDARDアクセス許可モードを台帳のアクセス許可モードにするには、qldb:PartiQLSelectアクセス許可をこのカタログリソースに対して実行して、次の操作を実行します。

    • RunSELECTステートメント (システムカタログテーブル)schema.user_tables

    • テーブルおよびインデックス情報は、[元帳の詳細ページ] のQLDB コンソール

    • テーブルおよびインデックスのリストをクエリエディタを QLDB コンソールで実行します。

    • を呼び出すQLDB シェルセッション。

    CATALOG 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つ以上のチェーンを書き込みますblocksトランザクションのジャーナルに。各ブロックには、挿入、アップデート、削除するドキュメントリビジョンを表すエントリオブジェクトと、それらをコミットした PartiQL ステートメントが含まれます。

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


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

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

注記

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

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

データのクエリ

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

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

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

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

これらのクエリ可能なビューに加えて、組み込みのを使用してデータのリビジョン履歴を照会できます。履歴関数。履歴関数は、ユーザーデータおよびその関連メタデータの両方を、実行済みビュー

データストレージ

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

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

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

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

QLDB API モデル

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

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

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

    重要

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

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

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

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

次のステップ

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

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

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