シェルQLDBを使用した Amazon QLDB へのアクセス (データAPIのみ) - Amazon Quantum 台帳データベース (Amazon QLDB)

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

シェルQLDBを使用した Amazon QLDB へのアクセス (データAPIのみ)

重要

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

Amazon QLDBは、トランザクションデータ とやり取りするためのコマンドラインシェルを提供しますAPI。QLDB シェルを使用すると、台帳データに対して PartiQL ステートメントを実行できます。

このシェルの最新バージョンは Rust で記述され、デフォルトmainブランチの GitHubリポジトリ awslabs/amazon-qldb-shell にオープンソースです。Python バージョン (v1) も、master ブランチの同じリポジトリに用意されています。

注記

Amazon QLDBシェルはqldb-sessionトランザクションデータ のみをサポートしますAPI。これはAPI、QLDB台帳で PartiQL ステートメントを実行する場合にのみ使用されます。

コマンドラインインターフェイスを使用してqldb管理APIオペレーションを操作するには、「」を参照してくださいQLDB を使用した Amazon へのアクセス AWS CLI (管理APIのみ)

このツールは、アプリケーションに組み込んだり、本番環境で採用したりすることを意図したものではありません。このツールの目的は、 QLDBと PartiQL を迅速に試すことです。

以下のセクションでは、QLDBシェルの使用を開始する方法について説明します。

前提条件

QLDB シェルの使用を開始する前に、次の操作を行う必要があります。

  1. AWS 「」のセットアップ手順に従ってくださいAmazon へのアクセス QLDB。これには以下が含まれます。

    1. にサインアップします AWS。

    2. 適切なQLDBアクセス許可を持つユーザーを作成します。

    3. 開発に必要なプログラムへのアクセスを提供します。

  2. AWS 認証情報とデフォルトの を設定します AWS リージョン。指示については、「AWS Command Line Interface ユーザーガイド」の「設定の基本」を参照してください。

    利用可能なリージョンの完全なリストについては、「」の「Amazon QLDBエンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス

  3. アクセスSTANDARD許可モードの台帳については、適切なテーブルで PartiQL ステートメントを実行するアクセス許可を付与するIAMポリシーを作成します。これらのポリシーを作成する方法については、「Amazon での標準アクセス許可モードの開始方法 QLDB」を参照してください。

シェルのインストール

シェルの最新バージョンをインストールするには、QLDB「」のREADME「.md ファイル」を参照してください GitHub。QLDB は、 GitHub リポジトリの Releases セクションで Linux、macOS、Windows 用の構築済みのバイナリファイルを提供します。

macOS の場合、aws/tap Homebrew タップを使用して、シェルを統合します。Homebrew を使用してシェルを macOS にインストールするには、次のコマンドを実行します。

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

構成

インストール後、シェルは $XDG_CONFIG_HOME/qldbshell/config.ion にあるデフォルト設定ファイルを、初期化中にロードします。Linux と macOS の場合、このファイルは通常 ~/.config/qldbshell/config.ion にあります。そのようなファイルが存在しない場合、シェルはデフォルト設定で実行されます。

インストール後、config.ion ファイルを手動で作成できます。この設定ファイルでは、Amazon Ion データ形式が使用されます。次は、最小の config.ion ファイルの例です。

{ default_ledger: "my-example-ledger" }

設定ファイルに default_ledger が設定されていない場合、シェルを呼び出す際に --ledger パラメータが必要です。設定オプションの完全なリストについては、「」のREADME「.md ファイル」を参照してください GitHub。

シェルの呼び出し

特定の台帳のコマンドラインターミナルでQLDBシェルを呼び出すには、次のコマンドを実行します。置換 my-example-ledger 台帳名を入力します。

$ qldb --ledger my-example-ledger

このコマンドは、デフォルトの に接続します AWS リージョン。リージョンを明示的に指定するには、次のセクションで説明するように、--region または --qldb-session-endpoint パラメータを指定してコマンドを実行できます。

qldb シェルセッションを呼び出した後、次のインプットタイプで入力できます。

シェルパラメータ

シェルの呼び出しに使用できるフラグとオプションの詳細なリストを確認するには、次のように、--help フラグを使用して qldb コマンドを実行します。

$ qldb --help

qldb コマンドのキーフラグとオプションのいくつかを次に示します。これらのオプションパラメータを追加して、、認証情報プロファイル AWS リージョン、エンドポイント、結果形式、およびその他の設定オプションを上書きできます。

使用方法

$ qldb [FLAGS] [OPTIONS]
FLAGS
-h, --help

ヘルプ情報を表示します。

-v, --verbose

ログ記録の詳細を設定します。デフォルトの場合、シェルはエラーのみをログに記録します。詳細レベルを上げるには、この引数を繰り返します (例: -vv)。最高レベルは -vvv であり、これは trace 詳細レベルに相当します。

-V, --version

バージョン情報を表示します。

OPTIONS
-l, --ledger LEDGER_NAME

接続先の台帳の名前です。config.ion ファイルに default_ledger が設定されていない場合、このシェルパラメータが必要です。このファイルでは、リージョンなどの追加オプションを設定できます。

-c, --config CONFIG_FILE

シェル設定オプションを定義できるファイルです。フォーマットの詳細と設定オプションの完全なリストについては、「」のREADME「.md ファイル」を参照してください GitHub。

-f, --format ion|table

クエリ結果の出力形式です。デフォルトは ion です。

-p, --profile PROFILE

認証に使用する AWS 認証情報プロファイルの場所。

指定しない場合、シェルは にあるデフォルトの AWS プロファイルを使用します~/.aws/credentials

-r, --region REGION_CODE

接続先のQLDB台帳の AWS リージョン コード。例: us-east-1

指定しない場合、シェルは AWS プロファイルで指定された AWS リージョン デフォルトに接続します。

-s, --qldb-session-endpoint QLDB_SESSION_ENDPOINT

接続先のqldb-sessionAPIエンドポイント。

利用可能なQLDBリージョンとエンドポイントの完全なリストについては、「」の「Amazon QLDBエンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス

コマンドリファレンス

qldb セッションを呼び出すと、シェルでは、次のキーとデータベースコマンドがサポートされます。

シェルキー
キー 機能の説明
Enter ステートメントを実行します。

Escape+Enter (macOS、Linux)

Shift+Enter (Windows)

複数の行にまたがるステートメントを入力するために、新しい行を作成します。複数行の入力テキストをコピーして、シェルに貼り付けることもできます。

macOS で、Escape ではなく Option をメタキーとしてセットアップする手順については、OS X Daily サイトを参照してください。

Ctrl+C 現在のコマンドをキャンセルします。
Ctrl+D ファイル (EOF) の終了を通知し、シェルの現在のレベルを終了します。アクティブなトランザクションでない場合は、シェルを終了します。アクティブなトランザクションの場合、トランザクションを中断します。
シェルデータベースコマンド
Command 機能の説明
help ヘルプ情報を表示します。
begin トランザクションを開始します。
start transaction
commit トランザクションを台帳のジャーナルにコミットします。
abort トランザクションを停止し、行った変更を拒否します。
exit シェルを終了します。
quit
注記

すべてのQLDBシェルコマンドでは、大文字と小文字は区別されません。

個別のステートメントの実行

README.md にリストされているデータベースコマンドとシェルメタコマンドを除き、シェルは入力した各コマンドを個別の PartiQL ステートメントとして解釈します。デフォルトの場合、シェルでは、auto-commit モードが有効になります。このモードは設定可能です。

auto-commit モードの場合、シェルは、独自のトランザクションで各ステートメントを暗黙的に実行し、エラーがない場合はトランザクションを自動的にコミットします。つまり、ステートメントの実行のたびに、start transaction (または begin) を実行して、手動で commit する必要はありません。

トランザクションの管理

または、QLDBシェルを使用してトランザクションを手動で制御することもできます。トランザクション内の複数のステートメントは、インタラクティブに実行することも、コマンドとステートメントを順番にバッチ処理して非インタラクティブに実行することもできます。

インタラクティブトランザクション

インタラクティブトランザクションを実行するには、次の手順に従います。

  1. トランザクションを開始するには、begin コマンドを入力します。

    qldb> begin

    トランザクションを開始すると、次のコマンドプロンプトがシェルに表示されます。

    qldb *>
  2. その後、入力した各ステートメントが、同じトランザクションで実行されます。

    • 例えば、単一のステートメントを次のように実行できます。

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

      Enter を押すと、ステートメントの結果がシェルに表示されます。

    • 複数のステートメントまたはコマンドを、次のようにセミコロン (;) の記号で区切って入力することもできます。

      qldb *> SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'; commit
  3. トランザクションを終了するには、次のコマンドのいずれかを入力します。

    • commit コマンドを入力すると、トランザクションが台帳のジャーナルにコミットされます。

      qldb *> commit
    • abort コマンドを入力すると、トランザクションが停止され、行った変更が拒否されます。

      qldb *> abort transaction was aborted

トランザクションタイムアウト制限

インタラクティブトランザクションは、 QLDBのトランザクションタイムアウト制限 に従います。開始から 30 秒以内にトランザクションをコミットしない場合、 はトランザクションQLDBを自動的に期限切れにし、トランザクション中に行われた変更を拒否します。

その場合、ステートメントの結果ではなく、有効期限切れのエラーメッセージが表示され、シェルは通常のコマンドプロンプトに戻ります。再試行するには、begin コマンドを再度実行して、新しいトランザクションを開始します。

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

非インタラクティブトランザクション

次のようにコマンドとステートメントを順番にバッチ処理することで、複数のステートメントを使用する完全なトランザクションを実行できます。

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

各コマンドとステートメントは、セミコロン (;) の記号で区切る必要があります。トランザクション内のいずれかのステートメントが有効でない場合、シェルはトランザクションを自動的に拒否します。入力した後続のステートメントを続行しません。

複数のトランザクションも設定できます。

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

前の例と同様に、トランザクションが失敗すると、シェルは、入力した後続のトランザクションまたはステートメントを処理しません。

トランザクションを終了しない場合、シェルがインタラクティブモードに切り替わり、次のコマンドまたはステートメントの入力が求められます。

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

シェルの終了

現在の qldb シェルセッションを終了するには、そのシェルでトランザクションを実行していないときに、exit または quit コマンドを入力するか、キーボードショートカットの Ctrl+D を使用します。

qldb> exit $
qldb> quit $

での PartiQL ステートメントの記述についてはQLDB、「」を参照してくださいAmazon QLDB PartiQL リファレンス

以下の例では、基本的なコマンドの一般的なシーケンスを示しています。

注記

QLDB シェルは、この例の各 PartiQL ステートメントを独自のトランザクションで実行します。

この例では、台帳 test-ledger がすでに存在し、アクティブであると想定しています。

$ 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