如何避免 cosmosdb 对 Scalar DL 资产记录的最大存储限制?

How to avoid maximum storage limit of cosmosdb for Scalar DL's asset records?

我计划将资产记录存储在 Azure CosmosDB 上的标量 DL 中。

CosmosDB 将每个(逻辑)分区的所有项目的最大存储大小限制为 20GB。 标量 DL 的资产是 Azure CosmosDB 上的分区键。因此,相同的资产存储在相同的分区中。我认为 Azure CosmosDB 上的资产大小存在限制。

我们可以避免这个限制吗? Scalar DL 是否具有链接到其他资产的功能?

另请参阅:https://docs.microsoft.com/en-us/azure/cosmos-db/concepts-limits

简短的回答是否定的

首先,任何数据库系统通常都有这样的局限性。 例如,DynamoDB 分区也有 10 GB 的限制。 Cassandra 分区最多可以有 20 亿个单元格,但从性能角度建议小于 100 MB。 (参见 https://www.instaclustr.com/cassandra-data-partitioning/

因此,正确地为您的资产建模不要增长太多始终是一个好习惯。

如果您知道自己在做什么,并且除了有一个大资产(分区)之外没有其他解决方案,请将您的资产拆分为多个资产。 (例如,如果存在 ID 名为 Asset-A 的资产,则创建 Asset-A-1、Asset-A-2、...、Asset-A-M) 在这种情况下,应用程序还必须管理它们的拆分方式。