管理表 - Amazon Quantum Ledger Database (Amazon QLDB)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理表

本节介绍如何在 Amazon QLDB 中使用 DROP TABLEUNDROP TABLE 语句管理表。它还描述了如何在创建表时对其标记。您可以创建的活动表数量和表总数的限额在Amazon QLDB 资源中的限额和限制中定义。

创建时对表格进行标记

注意

只有 STANDARD 权限模式分类账支持在创建时对表格进行标记。

您可以标记您的资源。要管理现有表标签,请使用AWS Management Console或 API 操作TagResourceUntagResource、和ListTagsForResource。有关更多信息,请参阅为 Amazon QLDB 资源贴标签

您还可以在创建表时使用 QLDB 控制台或在 CREATE TABLEPartiQL 语句中指定表标签来定义表标签。下面的示例创建了一个名为 Vehicle 的表,带有标记 environment=production

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

通过在创建资源时对其进行标记,无需在创建资源后运行自定义标记脚本。标记表后,您可根据这些标签来控制对表的访问。例如:您只能向具有特定标签的表授予完全访问权限。有关 JSON 策略示例,请参阅基于表格标签对所有操作的完全访问权限

删除表格

要删除表,请使用基本 DROP TABLE 语句。当你在 QLDB 中删除表格时,只是将其停用。

例如,以下语句使VehicleRegistration表处于停用状态。

DROP TABLE VehicleRegistration

DROP TABLE语句返回系统分配的表的 ID。状态VehicleRegistration应该INACTIVE在系统目录表 information_schema.user _tables 中。

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 从查询修订历史记录中运行相同的历史记录查询。以下是从表 ID5PLf9SXwndd63lPaSIa0O6 中查询文档 IDADR2Ll1fGsU4Jr4EqTdnQF 历史记录的示例。表 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 重新激活表。以下是取消表 ID5PLf9SXwndd63lPaSIa0O6 的示例。此时,表 ID 是用双引号括起的唯一标识符。

UNDROP TABLE "5PLf9SXwndd63lPaSIa0O6"

现在的VehicleRegistration状态应该是ACTIVE

若要了解如何创建、描述和删除索引,请继续 管理索引