テーブルの管理 - Amazon Quantum Ledger Database (Amazon QLDB)

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

テーブルの管理

このセクションでは、Amazon QLDB の DROP TABLE および UNDROP TABLE ステートメントを使用してテーブルを管理する方法について説明します。また、テーブルの作成中にテーブルにタグを付ける方法についても説明します。作成できるアクティブなテーブル数と合計テーブル数のクォータは、Amazon QLDB でのクォータと制限 で定義します。

作成時のテーブルのタグ付け

注記

作成時のテーブルのタグ付けは、現在 STANDARD 許可モードの台帳のみでサポートされています。

テーブルリソースにタグ付けすることができます。既存のテーブルのタグを管理するには、AWS Management Console または API オペレーション TagResourceUntagResource、および ListTagsForResource を使用します。詳細については、「Amazon QLDB リソースのタグ付け」を参照してください。

テーブルの作成中に、QLDB コンソールを使用するか、CREATE TABLE PartiQL ステートメントで指定して、テーブルタグを定義することもできます。次の例では、Vehicle という名前のテーブルをタグ environment=production を付けて作成します。

CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)

作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプトを実行する必要がなくなります。テーブルにタグを付けると、それらのタグに基づいてテーブルへのアクセスを制御できます。例えば、特定のタグを持つテーブルにのみフルアクセスを付与できます。JSON ポリシーの例については、「テーブルタグに基づくすべてのアクションへのフルアクセス」を参照してください。

テーブルの削除

テーブルを削除するには、基本 DROP TABLE ステートメントを使用します。QLDB でのテーブルの削除は、テーブルを無効にしているだけです。

例えば、次のステートメントは、VehicleRegistration テーブルを非アクティブにします。

DROP TABLE VehicleRegistration

DROP TABLE ステートメントは、テーブルのシステムで割り当てられた ID を返します。VehicleRegistration のステータスは、システムカタログテーブル information_schema.user_tablesINACTIVE になっています。

SELECT status FROM information_schema.user_tables WHERE name = 'VehicleRegistration'

非アクティブなテーブルの履歴に対するクエリの実行

最初の入力引数として、テーブル名ではなくテーブル ID を渡しても、QLDB 履歴関数 のクエリを実行できます。非アクティブなテーブルの履歴をクエリするには、テーブル ID を使用する必要があります。テーブルが非アクティブ化された後は、テーブル名ではその履歴に対してクエリを実行できなくなります。

まず、システムカタログテーブルをクエリして、テーブル ID を見つけます。たとえば、次のクエリは VehicleRegistration テーブルの tableId を返します。

SELECT tableId FROM information_schema.user_tables WHERE name = 'VehicleRegistration'

次に、この ID を使用して、リビジョン履歴のクエリの実行 から同じ履歴クエリを実行できます。以下の例では、テーブル ID 5PLf9SXwndd63lPaSIa0O6、ドキュメント ID ADR2Ll1fGsU4Jr4EqTdnQF の履歴に対してクエリを実行しています。テーブル ID は文字列リテラルであり、単一引用符で囲む必要があります。

--replace both the table and document IDs with your values SELECT * FROM history('5PLf9SXwndd63lPaSIa0O6', `2000T`, `2019-06-05T23:59:59Z`) AS h WHERE h.metadata.id = 'ADR2Ll1fGsU4Jr4EqTdnQF'

テーブルを再アクティブ化

QLDB でテーブルを非アクティブ化したら、テーブルの削除の取り消し ステートメントを使用してテーブルを再度アクティブにすることができます。

まず、information_schema.user_tables からテーブル ID を見つけます。たとえば、次のクエリは VehicleRegistration テーブルの tableId を返します。ステータスは INACTIVE である必要があります。

SELECT tableId FROM information_schema.user_tables WHERE name = 'VehicleRegistration'

次に、この ID を使用してテーブルを再度有効にします。以下に、テーブル ID 5PLf9SXwndd63lPaSIa0O6 の削除を取り消す例を示します。この場合、テーブル ID は、二重引用符で囲まれた一意の識別子です。

UNDROP TABLE "5PLf9SXwndd63lPaSIa0O6"

これで、VehicleRegistration のステータスが ACTIVE になります。

インデックスを作成、説明、および削除する方法については、インデックスの管理 に進んでください。