2

我正在考虑在 DynamoDB 和 AWS Keyspaces 之间进行选择。

我的主要问题仍然是 Dynamo 中的多对多关系。你真的没有太好的选择。要么你为不可变数据做邻接列表......但在大多数情况下,数据会改变。另一种方法是进行 2 个数据库调用,这真的不是很好。第三种选择是一直更新数据,这似乎也是 a** 的一大痛点。对于批量写入,我认为它最多为 25 行。

然而,Cassandra 提供了物化视图,至少我不必自己管理复制。我也可以做 1 个数据库调用来获得我需要的一切。

我对 NoSQL 数据库还比较陌生,所以我可能会遗漏很多东西。

Dynamo 是否有计划添加物化视图,或者有更好的方法吗?

在我看来,这似乎是一个非常好的功能。它甚至不必创建新表,而是在项目列之间进行引用以使其自动更新。

4

1 回答 1

3

DynamoDB has a feature called Global Secondary Index which is very close to the materialized view feature of Cassandra. Despite its confusing name, DynamoDB's GSI is not just an index like what Cassandra calls a "secondary index"! It doesn't just like the keys matching a particular column value: Beyond the keys it can also keep any other items attributes which you choose to project. Exactly like a materialized view.

DynamoDB also has a more efficient Local Secondary Index which you can consider if the view's partition key is the same as the base table's - and you just want to sort items differently or project only part of the attributes.

于 2020-10-13T13:33:46.320 回答