

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

# Amazon QLDB の REDACT\$1REVISION ストアドプロシージャ
<a name="ql-stored-procedures.redact_revision"></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/)」を参照してください。

**注記**  
2021 年 7 月 22 日より前に作成された台帳は、現時点では秘匿化の対象にはなりません。台帳の作成時間は Amazon QLDB コンソールで確認できます。

Amazon QLDB では、インデックス付きストレージとジャーナルストレージの両方にある個々の非アクティブなドキュメントリビジョンを完全に削除するには、`REDACT_REVISION` ストアドプロシージャを使用します。このストアドプロシージャは、指定されたリビジョンのユーザーデータをすべて削除します。ただし、ジャーナルシーケンスと、ドキュメント ID やハッシュなどのドキュメントメタデータは変更されません。この操作を元に戻すことはできません。

指定されたドキュメントリビジョンは、履歴上使用頻度の低いリビジョンでなければなりません。ドキュメントの最新の有効なリビジョンは、秘匿化の対象にはなりません。

このストアドプロシージャを実行して秘匿化リクエストを送信すると、QLDB はデータの編集を非同期的に処理します。秘匿化が完了すると、指定されたリビジョン内 (`data` 構造で表される) のユーザーデータが新しい `dataHash` フィールドに置き換えられます。このフィールドの値は、削除された `data` 構造の [Amazon Ion](ion.md) ハッシュです。その結果、台帳は全体的なデータ整合性を維持し、既存の検証 API オペレーションを通じて暗号的に検証できる状態を維持します。

サンプルデータを使った秘匿化オペレーションの例については、「[ドキュメントのリビジョンを秘匿化する](working.redaction.md)」の「[秘匿化の例](working.redaction.md#working.redaction.example)」を参照してください。

**注記**  
特定のテーブルでこの PartiQL コマンドを実行するためのアクセスを制御する方法については、「[Amazon QLDB の標準アクセス許可モードの開始方法](getting-started-standard-mode.md)」を参照してください。

**Topics**
+ [秘匿化に関する考慮事項と制約事項](#ql-stored-procedures.redact_revision.considerations)
+ [構文](#ql-stored-procedures.redact_revision.syntax)
+ [引数](#ql-stored-procedures.redact_revision.arguments)
+ [戻り値](#ql-stored-procedures.redact_revision.return)
+ [例](#ql-stored-procedures.redact_revision.examples)

## 秘匿化に関する考慮事項と制約事項
<a name="ql-stored-procedures.redact_revision.considerations"></a>

Amazon QLDB でデータの秘匿化を開始する前に、以下の注意事項と制限事項を確認してください。
+ `REDACT_REVISION` ストアドプロシージャは、使用頻度の低い個別のドキュメントリビジョン内のユーザーデータを対象とします。複数のリビジョンを秘匿化するには、リビジョンごとに 1 回ストアドプロシージャを実行する必要があります。トランザクションごとに 1 つのリビジョンを秘匿化できます。
+ ドキュメントリビジョン内の特定のフィールドを秘匿化するには、まず別のデータ操作言語 (DML) ステートメントを使用してリビジョンを変更する必要があります。詳細については、「[リビジョン内の特定のフィールドを秘匿化する](working.redaction.md#working.redaction.field)」を参照してください。
+ QLDB が秘匿化リクエストを受け取った後は、そのリクエストをキャンセルしたり、変更したりすることはできません。秘匿化が完了したかどうかを確認するには、リビジョンの `data` 構造が `dataHash` フィールドに置き換えられているかどうかを確認できます。詳細については、「[秘匿化が完了したかどうかの確認](working.redaction.md#working.redaction.check-completion)」を参照してください。
+ 秘匿化は、QLDB サービスの外部に複製される QLDB データには影響しません。これには、Amazon S3 へのエクスポートと、Amazon Kinesis Data Streams へのストリーミングが含まれます。QLDB の外部に保存されているデータを管理するには、他のデータ保持方法を使用する必要があります。
+ 秘匿化は、ジャーナルに記録されている PartiQL ステートメントのリテラル値には影響しません。ベストプラクティスとして、パラメータ化されたステートメントは、リテラル値の代わりに変数プレースホルダーを使用してプログラムで実行するようにしてください。プレースホルダーは、秘匿化が必要な機密情報ではなく、疑問符 (`?`) としてジャーナルに書き込まれます。

  QLDB ドライバーを使用して PartiQL ステートメントをプログラムで実行する方法については、サポートされている各プログラミング言語のチュートリアルを「[ドライバーの開始方法](getting-started-driver.md)」で参照してください。

## 構文
<a name="ql-stored-procedures.redact_revision.syntax"></a>

```
EXEC REDACT_REVISION `block-address`, 'table-id', 'document-id'
```

## 引数
<a name="ql-stored-procedures.redact_revision.arguments"></a>

`*block-address*`  
秘匿化されたドキュメントリビジョンのジャーナルブロックの場所。アドレスは、`strandId` と `sequenceNo` という 2 つのフィールドを含む Amazon Ion 構造です。  
これはバックスティックで示される Ion リテラル値です。以下に例を示します。  

```
`{strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:17}`
```
ブロックアドレスの検索方法については、「[ドキュメントのメタデータのクエリの実行](working.metadata.md)」を参照してください。

'*table-id*'  
一重引用符で囲まれた、秘匿化するドキュメントのリビジョンがあったテーブルの一意の ID。  
テーブル ID の検索方法については、「[システムカタログのクエリの実行](working.catalog.md)」を参照してください。

'*document-id*'  
一重引用符で囲まれた、秘匿化対象のリビジョンの一意のドキュメント ID。  
ドキュメント ID の検索方法については、「[ドキュメントのメタデータのクエリの実行](working.metadata.md)」を参照してください。

## 戻り値
<a name="ql-stored-procedures.redact_revision.return"></a>

秘匿化対象のドキュメントのリビジョンを表す Amazon Ion 構造を以下の形式で表します。

```
{
  blockAddress: {
    strandId: String,
    sequenceNo: Int
  },
  tableId: String,
  documentId: String,
  version: Int
}
```

**戻り値構造フィールド**
+ `blockAddress` – 秘匿化するリビジョンのジャーナルブロックの場所。アドレスには以下の 2 つのフィールドがあります。
  + `strandId` - ブロックを含むジャーナルストランドの一意の ID。
  + `sequenceNo`: ストランド内でブロックの場所を指定するインデックス番号。
+ `tableId` – 秘匿化しているリビジョンのテーブルの一意の ID。
+ `documentId` – 秘匿化対象のリビジョンの一意のドキュメント ID。
+ `version` – 秘匿化対象のドキュメントリビジョンのバージョン番号。

以下に、サンプルデータを含む戻り値構造の例を示します。

```
{
  blockAddress: {
    strandId: "CsRnx0RDoNK6ANEEePa1ov",
    sequenceNo: 134
  },
  tableId: "6GZumdHggklLdMGyQq9DNX",
  documentId: "IXlQPSbfyKMIIsygePeKrZ",
  version: 0
}
```

## 例
<a name="ql-stored-procedures.redact_revision.examples"></a>

```
EXEC REDACT_REVISION `{strandId:"7z2P0AyQKWD8oFYmGNhi8D", sequenceNo:7}`, '8F0TPCmdNQ6JTRpiLj2TmW', '05K8zpGYWynDlEOK5afDRc'
```