我们可以更改 AWS QLDB table 吗?

Can we alter AWS QLDB table?

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

CREATE TABLE Vehicle

并向其中插入一些文档 table。

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

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

我该怎么做?

谢谢, 大孙.

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

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

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

所有这一切都表明让您的应用程序对架构更改具有弹性是一个好主意。 :-)