我们可以更改 AWS QLDB 表吗?

时间:2021-06-10 04:31:42

标签: amazon-web-services amazon-qldb

假设我创建了一个这样的表。

CREATE TABLE Vehicle

并在此表中插入一些文档。

INSERT INTO Vehicle
<< {
    'VIN' : '1N4AL11D75C109151',
    'Type' : 'Sedan',
} >>

所以我的要求是将表名从 Vehicle 更改为 VehicleCar 并希望将 'VIN' 更改为 'VID'

我该怎么做?

谢谢, 大孙。

1 个答案:

答案 0 :(得分:1)

QLDB 目前不提供 ALTER TABLE 功能。您必须删除表并重新创建它。这对您的 table limits 不利,所以不要经常这样做。

QLDB 是无模式的,因此您可以随时更改字段名称和/或文档结构,只需以新格式对文档进行新修订即可。但是,该期刊仍将包含旧的修订版。如果您的应用程序具有使用 history() 函数访问旧版本的任何功能,那么它需要能够优雅地处理文档格式的变化。

需要注意的是,QLDB 并未针对扫描大量数据进行优化。它针对使用相等运算符针对索引的目标查询进行了优化。像“SELECT * FROM table”这样的查询将扫描整个表。这是 QLDB 的一种反模式,随着您的分类帐增长,它的表现不会很好。因此,如果您更改文档格式,运行 SELECT * 并将每个文档更新为新格式可能比您意识到的要多。首先,SELECT * scan 查询可能会超时,或者可能会因乐观并发控制异常而中止,因为另一个进程在表中插入了一个文档。其次,由于交易中的文档数量限制,您必须一次分批进行 40 个文档。

所有这一切都是为了让您的应用程序能够适应架构更改是一个好主意。 :-)

相关问题