翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
シェル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-shellmaster
ブランチの同じリポジトリに用意されています。
注記
Amazon QLDBシェルはqldb-session
トランザクションデータ のみをサポートしますAPI。これはAPI、QLDB台帳で PartiQL ステートメントを実行する場合にのみ使用されます。
コマンドラインインターフェイスを使用してqldb
管理APIオペレーションを操作するには、「」を参照してくださいQLDB を使用した Amazon へのアクセス AWS CLI (管理APIのみ)。
このツールは、アプリケーションに組み込んだり、本番環境で採用したりすることを意図したものではありません。このツールの目的は、 QLDBと PartiQL を迅速に試すことです。
以下のセクションでは、QLDBシェルの使用を開始する方法について説明します。
前提条件
QLDB シェルの使用を開始する前に、次の操作を行う必要があります。
-
AWS 「」のセットアップ手順に従ってくださいAmazon へのアクセス QLDB。これには以下が含まれます。
-
にサインアップします AWS。
-
適切なQLDBアクセス許可を持つユーザーを作成します。
-
開発に必要なプログラムへのアクセスを提供します。
-
-
AWS 認証情報とデフォルトの を設定します AWS リージョン。指示については、「AWS Command Line Interface ユーザーガイド」の「設定の基本」を参照してください。
利用可能なリージョンの完全なリストについては、「」の「Amazon QLDBエンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス。
-
アクセス
STANDARD
許可モードの台帳については、適切なテーブルで PartiQL ステートメントを実行するアクセス許可を付与するIAMポリシーを作成します。これらのポリシーを作成する方法については、「Amazon での標準アクセス許可モードの開始方法 QLDB」を参照してください。
シェルのインストール
シェルの最新バージョンをインストールするには、QLDB「」のREADME「.md
macOS の場合、aws/tap
Homebrew
$
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
シェルの呼び出し
特定の台帳のコマンドラインターミナルで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-session
APIエンドポイント。利用可能な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.mdauto-commit
モードが有効になります。このモードは設定可能です。
auto-commit
モードの場合、シェルは、独自のトランザクションで各ステートメントを暗黙的に実行し、エラーがない場合はトランザクションを自動的にコミットします。つまり、ステートメントの実行のたびに、start transaction
(または begin
) を実行して、手動で commit
する必要はありません。
トランザクションの管理
または、QLDBシェルを使用してトランザクションを手動で制御することもできます。トランザクション内の複数のステートメントは、インタラクティブに実行することも、コマンドとステートメントを順番にバッチ処理して非インタラクティブに実行することもできます。
インタラクティブトランザクション
インタラクティブトランザクションを実行するには、次の手順に従います。
-
トランザクションを開始するには、
begin
コマンドを入力します。qldb>
begin
トランザクションを開始すると、次のコマンドプロンプトがシェルに表示されます。
qldb *>
-
その後、入力した各ステートメントが、同じトランザクションで実行されます。
-
例えば、単一のステートメントを次のように実行できます。
qldb *>
SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'
Enter を押すと、ステートメントの結果がシェルに表示されます。
-
複数のステートメントまたはコマンドを、次のようにセミコロン (
;
) の記号で区切って入力することもできます。qldb *>
SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'; commit
-
-
トランザクションを終了するには、次のコマンドのいずれかを入力します。
-
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