

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

# Amazon QLDB へのアクセス
<a name="accessing"></a>

**重要**  
サポート終了通知: 既存のお客様は、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 には、、 AWS Command Line Interface （AWS CLI） AWS マネジメントコンソール、または QLDB API を使用してアクセスできます。次のセクションでは、これらのオプションの使用方法と使用の前提条件について説明します。

## 前提条件
<a name="accessing.prereqs"></a>

QLDB にアクセスする前に、まだ設定 AWS アカウント していない場合は、 を設定する必要があります。

**Topics**
+ [

### にサインアップする AWS アカウント
](#sign-up-for-aws)
+ [

### 管理アクセスを持つユーザーを作成する
](#create-an-admin)
+ [

### IAM での QLDB 権限の管理
](#accessing.prereqs.permissions)
+ [

### プログラムによるアクセスを付与する (オプション)
](#grant-programmatic-access)

### にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、通話呼び出しまたはテキストメッセージを受け取り、電話キーパッドで検証コードを入力するように求められます。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

### 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、*AWS サインイン ユーザーガイド*の[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「[権限設定を作成する](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html)」*を参照してください*。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「[グループの結合](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html)」を参照してください。

### IAM での QLDB 権限の管理
<a name="accessing.prereqs.permissions"></a>

 AWS Identity and Access Management (IAM) を使用してユーザーの QLDB アクセス許可を管理する方法については、「」を参照してください[Amazon QLDB で IAM が機能する仕組み](security_iam_service-with-iam.md)。

### プログラムによるアクセスを付与する (オプション)
<a name="grant-programmatic-access"></a>

ユーザーが の AWS 外部で を操作する場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。

ユーザーにプログラマチックアクセス権を付与するには、以下のいずれかのオプションを選択します。


****  

| プログラマチックアクセス権を必要とするユーザー | 目的 | 方法 | 
| --- | --- | --- | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/accessing.html)  | 
| IAM | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 | 「IAM [ユーザーガイド」の「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」の手順に従います。 | 
| IAM | (非推奨)長期認証情報を使用して、 AWS CLI、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/accessing.html)  | 

## Amazon QLDB にアクセスする方法
<a name="accessing.how-to"></a>

をセットアップするための前提条件を完了したら AWS アカウント、QLDB へのアクセス方法の詳細については、以下のトピックを参照してください。
+ [コンソールを使用する](console_QLDB.md)
+ [（ AWS CLI 管理 API のみ) の使用](Tools.CLI.md)
+ [Amazon QLDB シェルの使用 (データ API のみ)](data-shell.md)
+ [API を使用する](Using.API.md)

# コンソールを使用した Amazon QLDB へのアクセス
<a name="console_QLDB"></a>

**重要**  
サポート終了通知: 既存のお客様は、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 AWS マネジメントコンソール の には、[https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb) からアクセスできます。

コンソールを使用して、QLDB で以下のことを行うことができます。
+ 台帳を作成、削除および列挙したり、台帳に説明を追加したりする。
+ PartiQL エディタを使用して [PartiQL](ql-reference.md) ステートメントを実行します。
+ QLDB リソースのタグを管理する。
+ ジャーナルデータを暗号的に検証する。
+ ジャーナルブロックをエクスポートまたはストリーミングします。

Amazon QLDB 台帳を作成し、サンプルアプリケーションデータで設定する方法については、「[Amazon QLDB コンソールの使用開始方法](getting-started.md)」を参照してください。

## PartiQL エディタのクイックリファレンス
<a name="partiql-editor-reference"></a>

**重要**  
サポート終了通知: 既存のお客様は、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 では、クエリ言語として [PartiQL](https://partiql.org/) のサブセットがサポートされ、ドキュメント指向のデータ形式として [Amazon Ion](http://amzn.github.io/ion-docs/) がサポートされています。PartiQL の QLDB での実装に関するガイドおよび詳細な情報については、「[Amazon QLDB の PartiQL リファレンス](ql-reference.md)」を参照してください。

以下のトピックでは、QLDB での PartiQL の使用方法のクイックリファレンスを示します。

**Topics**
+ [

### QLDB における PartiQL のクイックヒント
](#partiql-editor-ref-tips)
+ [

### コマンド
](#partiql-editor-ref-commands)
+ [

### システム定義ビュー
](#partiql-editor-ref-views)
+ [

### 基本的な構文ルール
](#partiql-editor-ref-syntax)
+ [

### PartiQL エディタのキーボードショートカット
](#console_QLDB.partiql-editor-shortcuts)

### QLDB における PartiQL のクイックヒント
<a name="partiql-editor-ref-tips"></a>

以下は、QLDB で PartiQL を使用するためのヒントとベストプラクティスの簡単な要約です。
+ **同時実行性とトランザクション制限を理解する** - `SELECT` クエリを含むすべてのステートメントは[オプティミスティック同時実行制御 (OCC、Optimistic Concurrency Control)](concurrency.md) 競合および[トランザクション制限](limits.md#limits.fixed) (30 秒のトランザクションタイムアウトなど) の対象になります。
+ **インデックスの使用** - 高基数インデックスを使用し、ターゲットとなるクエリを実行して、ステートメントを最適化し、すべてのテーブルスキャンを回避します。詳細については[クエリパフォーマンスの最適化](working.optimize.md)を参照してください。
+ **等価述語の使用** - インデックス付きルックアップには*等価*演算子 (`=` または `IN`) が必要です。不等価演算子 (`<`、`>`、`LIKE`、`BETWEEN`) はインデックス付きルックアップの対象にならず、すべてのテーブルスキャンが実行されます。
+ **内部結合のみを使用する** - QLDB は現在、内部結合のみをサポートしています。ベストプラクティスとして、結合するテーブルごとにインデックス付けされたフィールドで結合します。結合基準と等価述語の両方に高基数インデックスを選択します。

### コマンド
<a name="partiql-editor-ref-commands"></a>

QLDB は、以下の PartiQL コマンドをサポートしています。


**データ定義言語 (DDL)**  

| コマンド | 説明 | 
| --- | --- | 
| [CREATE INDEX](ql-reference.create-index.md) | テーブルの最上位のドキュメントフィールドのインデックスを作成します。 | 
| [CREATE TABLE](ql-reference.create-table.md) | テーブルを作成します。 | 
| [DROP INDEX](ql-reference.drop-index.md) | テーブルからインデックスを削除します。 | 
| [DROP TABLE](ql-reference.drop-table.md) | 既存のテーブルを無効にします。 | 
| [テーブルの削除の取り消し](ql-reference.undrop-table.md) | 非アクティブなテーブルを再度有効にします。 | 


**データ操作言語 (DML)**  

| コマンド | 説明 | 
| --- | --- | 
| [DELETE](ql-reference.delete.md) | ドキュメントの新しい最終リビジョンを作成して、アクティブなドキュメントを削除済みとしてマークします。 | 
| [FROM (INSERT、REMOVE、または SET)](ql-reference.from.md) | セマンティック的には UPDATE と同じです。 | 
| [INSERT](ql-reference.insert.md) | テーブルに 1 つまたは複数の[ドキュメント](ql-reference.docs.md)を追加します。 | 
| [SELECT](ql-reference.select.md) | 1 つまたは複数のテーブルからデータを取得します。 | 
| [UPDATE](ql-reference.update.md) | ドキュメント内の特定の要素を更新、挿入、または削除します。 | 

#### DML ステートメントの例
<a name="partiql-editor-ref-commands-examples"></a>

**INSERT**

```
INSERT INTO VehicleRegistration VALUE
{
    'VIN' : 'KM8SRDHF6EU074761', --string
    'RegNum' : 1722, --integer
    'PendingPenaltyTicketAmount' : 130.75, --decimal
    'Owners' : { --nested struct
        'PrimaryOwner' : { 'PersonId': '294jJ3YUoH1IEEm8GSabOs' },
        'SecondaryOwners' : [ --list of structs
            { 'PersonId' : '1nmeDdLo3AhGswBtyM1eYh' },
            { 'PersonId': 'IN7MvYtUjkp1GMZu0F6CG9' }
        ]
    },
    'ValidToDate' : `2020-06-25T` --Ion timestamp literal with day precision
}
```

**UPDATE-INSERT**

```
UPDATE Vehicle AS v
INSERT INTO v VALUE 26500 AT 'Mileage'
WHERE v.VIN = '1N4AL11D75C109151'
```

**UPDATE-REMOVE**

```
UPDATE Person AS p
REMOVE p.Address
WHERE p.GovId = '111-22-3333'
```

**SELECT — 相関サブクエリ**

```
SELECT r.VIN, o.SecondaryOwners
FROM VehicleRegistration AS r, @r.Owners AS o
WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
```

**SELECT — 内部結合**

```
SELECT v.Make, v.Model, r.Owners
FROM VehicleRegistration AS r INNER JOIN Vehicle AS v
ON r.VIN = v.VIN
WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
```

**SELECT — BY 句を使用してドキュメント ID を取得する**

```
SELECT r_id FROM VehicleRegistration AS r BY r_id
WHERE r.VIN = '1HVBBAANXWH544237'
```

### システム定義ビュー
<a name="partiql-editor-ref-views"></a>

QLDB は、テーブルの以下のシステム定義ビューをサポートしています。


| ビュー | 説明 | 
| --- | --- | 
| table\$1name | ユーザーデータの現在の状態のみが含まれる、テーブルのデフォルトの[ユーザービュー](working.userdata.md)。 | 
| \$1ql\$1committed\$1table\$1name | ユーザーデータとシステム生成メタデータ (ドキュメント ID など) の両方の現在の状態が含まれる、テーブルの完全システム定義の[コミット済みビュー](working.metadata.md)。 | 
| history(table\$1name) | テーブルのリビジョン履歴全体を返す、組み込みの[履歴関数](working.history.md)。 | 

### 基本的な構文ルール
<a name="partiql-editor-ref-syntax"></a>

QLDB は、PartiQL の以下の基本的な構文ルールをサポートしています。


| 文字 | 説明 | 
| --- | --- | 
| ' | 一重引用符は、Amazon Ion 構造内の文字列値、またはフィールド名を表します。 | 
| " | 二重引用符は、引用符で囲まれた識別子 (テーブル名として使用される[予約語](ql-reference.reserved.md)など) を表します。 | 
| ` | バックティックは Ion リテラル値を表します。 | 
| . | ドット表記で、親構造のフィールド名にアクセスします。 | 
| [ ] | 角括弧は Ion の list を定義します。または、既存のリストのゼロから始まる序数を表します。 | 
| \$1 \$1 | 中括弧は Ion の struct を定義します。 | 
| << >> | 二重山括弧は、順序付けられていないコレクションである PartiQL バッグを定義します。バッグを使うと、複数のドキュメントをテーブルに挿入できます。 | 
| 大文字と小文字の区別 | フィールド名やテーブル名など、QLDB システムオブジェクト名はすべて、大文字と小文字が区別されます。 | 

### PartiQL エディタのキーボードショートカット
<a name="console_QLDB.partiql-editor-shortcuts"></a>

QLDB コンソールの PartiQL エディタは、以下のキーボードショートカットをサポートしています。


| アクション | macOS | Windows | 
| --- | --- | --- | 
| 実行 | Cmd\$1Return | Ctrl\$1Enter | 
| コメント | Cmd\$1/ | Ctrl\$1/ | 
| クリア | Cmd\$1Shift\$1Delete | Ctrl\$1Shift\$1Delete | 

# を使用した Amazon QLDB へのアクセス AWS CLI （管理 API のみ）
<a name="Tools.CLI"></a>

**重要**  
サポート終了通知: 既存のお客様は、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/)」を参照してください。

 AWS Command Line Interface （AWS CLI) を使用してコマンドライン AWS のサービス から複数の を制御し、スクリプトを使用して自動化できます。必要に応じて、 を 1 回限り AWS CLI のオペレーションに使用できます。また、ユーティリティスクリプト内に Amazon QLDB オペレーションを埋め込むときにも使用できます。

CLI アクセスには、アクセスキー ID とシークレットアクセスキーが必要です。長期のアクセスキーの代わりに一時的な認証情報をできるだけ使用します。一時的な認証情報には、アクセスキー ID、シークレットアクセスキー、および認証情報の失効を示すセキュリティトークンが含まれています。詳細については、*IAM ユーザーガイド*の「 [AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」を参照してください。

 AWS CLIの QLDB で使用できるすべてのコマンドの一覧と使用例については、「[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/qldb/index.html)」を参照してください。

**注記**  
は、 にリストされている`qldb`管理 API オペレーション AWS CLI のみをサポートします[Amazon QLDB API リファレンス](api-reference.md)。この API は、台帳リソースの管理および非トランザクションデータオペレーションにのみ使用されます。  
コマンドラインインターフェイスで `qldb-session` API を使用してデータトランザクションを実行するには、「[QLDB シェルを使用した Amazon QLDB へのアクセス (データ API のみ)](data-shell.md)」を参照してください。

**Topics**
+ [

## AWS CLIのインストールおよび設定
](#Tools.CLI.InstallingAndConfiguring)
+ [

## QLDB AWS CLI での の使用
](#Tools.CLI.UsingWithQLDB)

## AWS CLIのインストールおよび設定
<a name="Tools.CLI.InstallingAndConfiguring"></a>

は Linux、macOS、または Windows で AWS CLI 実行されます。「AWS Command Line Interface ユーザーガイド」の手順に従ってインストールして設定します。

1. [の最新バージョンのインストールまたは更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)

1. [Quick Setup](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)

## QLDB AWS CLI での の使用
<a name="Tools.CLI.UsingWithQLDB"></a>

コマンドラインの形式は、Amazon QLDB オペレーション名の後に、そのオペレーション用のパラメータが続く形式です。は、JSON に加えてパラメータ値の短縮構文 AWS CLI をサポートしています。

 `help` を使用すると、QLDB で使用可能なすべてのコマンドを列挙できます。

```
aws qldb help
```

 また `help` を使用して、特定コマンドを記述したり、その用法の詳細を確認したりすることもできます。

```
aws qldb create-ledger help
```

 たとえば、台帳を作成するには以下のようにします。

```
aws qldb create-ledger --name my-example-ledger --permissions-mode STANDARD
```

# QLDB シェルを使用した Amazon QLDB へのアクセス (データ API のみ)
<a name="data-shell"></a>

**重要**  
サポート終了通知: 既存のお客様は、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 には、トランザクションデータ API とやり取りするためのコマンドラインシェルが用意されています。QLDB シェルを使用すると、台帳データに対して [PartiQL](ql-reference.md) ステートメントを実行できます。

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

**注記**  
Amazon QLDB シェルは、`qldb-session` トランザクションデータ API のみをサポートしています。この API は、QLDB 台帳に対して PartiQL ステートメントを実行するためにのみ使用します。  
コマンドラインインターフェイスを使用して `qldb` 管理 API オペレーションとやり取りするには、「[を使用した Amazon QLDB へのアクセス AWS CLI （管理 API のみ）](Tools.CLI.md)」を参照してください。

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

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

**Topics**
+ [

## 前提条件
](#data-shell-prerequisites)
+ [

## シェルのインストール
](#data-shell-install)
+ [

## シェルの呼び出し
](#data-shell-invoking)
+ [

## シェルパラメータ
](#data-shell-params)
+ [

## コマンドリファレンス
](#data-shell-reference)
+ [

## 個別のステートメントの実行
](#data-shell-indiv-statements)
+ [

## トランザクションの管理
](#data-shell-transactions)
+ [

## シェルの終了
](#data-shell-exiting)
+ [

## 例
](#data-shell-examples)

## 前提条件
<a name="data-shell-prerequisites"></a>

QLDB シェルを開始する前に、以下の操作を実行する必要があります。

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

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

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

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

1.  AWS 認証情報とデフォルトを設定します AWS リージョン。指示については、「*AWS Command Line Interface ユーザーガイド*」の「[設定の基本](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)」を参照してください。

   利用可能なリージョンの完全なリストについては、「AWS 全般のリファレンス」の「[Amazon QLDB エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/qldb.html)」を参照してください。

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

## シェルのインストール
<a name="data-shell-install"></a>

QLDB シェルの最新バージョンをインストールするには、GitHub の [README.md](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#installation) ファイルを参照してください。QLDB では、GitHub リポジトリの「[Releases](https://github.com/awslabs/amazon-qldb-shell/releases)」セクションにある、Linux、macOS、Windows 向け事前構築済みファイルを利用できます。

macOS の場合、`aws/tap` [Homebrew](https://docs.brew.sh/) タップを使用して、シェルを統合します。Homebrew を使用してシェルを macOS にインストールするには、次のコマンドを実行します。

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

### 設定
<a name="data-shell-install.config"></a>

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

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

```
{
  default_ledger: "my-example-ledger"
}
```

設定ファイルに `default_ledger` が設定されていない場合、シェルを呼び出す際に `--ledger` パラメータが必要です。設定オプションの詳細なリストについては、GitHub の [README.md](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#configuration) ファイルを参照してください。

## シェルの呼び出し
<a name="data-shell-invoking"></a>

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

```
$ qldb --ledger my-example-ledger
```

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

`qldb` シェルセッションを呼び出した後、次のインプットタイプで入力できます。
+ [シェルコマンド](#data-shell-reference)
+ [個別のトランザクション内の単一 PartiQL ステートメント](#data-shell-indiv-statements)
+ [トランザクション内の複数の PartiQL ステートメント](#data-shell-transactions)

## シェルパラメータ
<a name="data-shell-params"></a>

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

```
$ qldb --help
```

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

**使用方法**

```
$ qldb [FLAGS] [OPTIONS]
```FLAGS

**`-h`, `--help`**  
ヘルプ情報を表示します。

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

**`-V`, `--version`**  
バージョン情報を表示します。OPTIONS

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

**`-c`, `--config` *CONFIG\$1FILE***  
シェル設定オプションを定義できるファイルです。形式の詳細と、設定オプションの詳細なリストについては、GitHub の [README.md](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#configuration) ファイルを参照してください。

**`-f`, `--format` `ion|table`**  
クエリ結果の出力形式です。デフォルト: `ion`。

**`-p`, `--profile` *PROFILE***  
認証に使用する AWS 認証情報プロファイルの場所。  
指定しない場合、シェルは にあるデフォルトの AWS プロファイルを使用します`~/.aws/credentials`。

**`-r`, `--region` *REGION\$1CODE***  
接続先の QLDB 台帳の AWS リージョン コード。例: `us-east-1`。  
指定しない場合、シェルは AWS プロファイルで指定された AWS リージョン デフォルトに接続します。

**`-s`, `--qldb-session-endpoint` *QLDB\$1SESSION\$1ENDPOINT***  
接続先の `qldb-session` API エンドポイントです。  
QLDB リージョンとエンドポイントの完全なリストについては、「AWS 全般のリファレンス」の「[Amazon QLDB エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/qldb.html)」を参照してください。

## コマンドリファレンス
<a name="data-shell-reference"></a>

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


**シェルキー**  

| キー | 機能の説明 | 
| --- | --- | 
| Enter | ステートメントを実行します。 | 
|  Escape\$1Enter (macOS、Linux) Shift\$1Enter (Windows)  |  複数の行にまたがるステートメントを入力するために、新しい行を作成します。複数行の入力テキストをコピーして、シェルに貼り付けることもできます。 macOS で、Escape ではなく Option をメタキーとしてセットアップする手順については、[OS X Daily](https://osxdaily.com/2013/02/01/use-option-as-meta-key-in-mac-os-x-terminal/) サイトを参照してください。  | 
| Ctrl\$1C | 現在のコマンドをキャンセルします。 | 
| Ctrl\$1D | ファイルの終了 (EOF) を通知し、シェルの現在のレベルを終了します。アクティブなトランザクションでない場合は、シェルを終了します。アクティブなトランザクションの場合、トランザクションを中断します。 | 


**シェルデータベースコマンド**  
<a name="data-shell-reference-commands"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/qldb/latest/developerguide/data-shell.html)

**注記**  
すべての QLDB シェルコマンドで、大文字と小文字の区別がありません。

## 個別のステートメントの実行
<a name="data-shell-indiv-statements"></a>

[README.md](https://github.com/awslabs/amazon-qldb-shell/blob/main/README.md#command-interface) にリストされているデータベースコマンドとシェルメタコマンドを除き、シェルは、入力された各コマンドを個別の PartiQL ステートメントとして解釈します。デフォルトの場合、シェルでは、`auto-commit` モードが有効になります。このモードは設定可能です。

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

## トランザクションの管理
<a name="data-shell-transactions"></a>

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

### インタラクティブトランザクション
<a name="data-shell-transactions.interactive"></a>

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

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

   ```
   qldb> begin
   ```

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

   ```
   qldb *>  
   ```

1. その後、入力した各ステートメントが、同じトランザクションで実行されます。
   + 例えば、単一のステートメントを次のように実行できます。

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

     Enter を押すと、ステートメントの結果がシェルに表示されます。
   + 複数のステートメントまたはコマンドを、次のようにセミコロン (`;`) の記号で区切って入力することもできます。

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

1. トランザクションを終了するには、次のコマンドのいずれかを入力します。
   + `commit` コマンドを入力すると、トランザクションが台帳のジャーナルにコミットされます。

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

     ```
     qldb *> abort
     transaction was aborted
     ```

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

QLDB の[トランザクションタイムアウト制限](limits.md#limits.fixed)に準拠するには、トランザクションをインタラクティブに行います。開始後 **30 秒**以内にトランザクションをコミットしない場合、QLDB ではトランザクションの有効期限が自動的に切れ、トランザクション中に行った変更がすべて拒否されます。

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

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

### 非インタラクティブトランザクション
<a name="data-shell-transactions.noninteractive"></a>

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

```
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 *>
```

## シェルの終了
<a name="data-shell-exiting"></a>

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

```
qldb> exit
$
```

```
qldb> quit
$
```

## 例
<a name="data-shell-examples"></a>

QLDB での PartiQL ステートメントの記述については、「[Amazon QLDB の PartiQL リファレンス](ql-reference.md)」を参照してください。

**Example**  
以下の例では、基本的なコマンドの一般的なシーケンスを示しています。  
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
```

# API を使用した Amazon QLDB へのアクセス
<a name="Using.API"></a>

**重要**  
サポート終了通知: 既存のお客様は、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/)」を参照してください。

 AWS マネジメントコンソール および AWS Command Line Interface （AWS CLI) を使用して、Amazon QLDB とインタラクティブに連携できます。ただし、QLDB を最大限に活用するには、QLDB ドライバーまたは AWS SDK を使用してアプリケーションコードを記述し、 APIs を使用して台帳とやり取りできます。

このドライバーを使用すると、アプリケーションはトランザクションデータ API を使用して QLDB とやり取りできるようになります。 AWS SDK は、QLDB *リソース管理* API とのやり取りをサポートしています。これらの API の詳細については、「[Amazon QLDB API リファレンス](api-reference.md)」を参照してください。

ドライバーは、QLDB のサポートを [Java](https://aws.amazon.com/sdk-for-java)、[.NET](https://aws.amazon.com/sdk-for-net)、[Go](https://aws.amazon.com/sdk-for-go)、[Node.js](https://aws.amazon.com/sdk-for-node-js)、[Python](https://aws.amazon.com/sdk-for-python) で提供しています。このような言語を使用してすばやく開始する方法については、「[Amazon QLDB ドライバーの開始方法](getting-started-driver.md)」を参照してください。

アプリケーションで QLDB ドライバーまたは AWS SDK を使用する前に、プログラムによるアクセスを許可する必要があります。詳細については、「[プログラマチックアクセス権を付与する](accessing.md#grant-programmatic-access)」を参照してください。