我正在寻求为具有特殊边缘情况的多态数据集设计一个 dynamodb 架构。
我的数据集是用户不同类型的事件
{
userID: uuid,
eventType: enum/string,
createdAt: timestamp,
data: { ... }
}
我的访问模式将是
我正在努力处理的特殊情况是,我们有一个特定的事件类型“ORDER”,对于订单,我还希望能够对
data
中的 10-20 个键进行排序。这些键特定于“ORDER”事件,与任何其他事件无关。
订单访问模式:
dynamo 是一个好的解决方案吗?我可以在 1 个表中执行此操作还是应该考虑将其分成 2 个表?寻求架构设计/GSI、LSI 等方面的帮助
正如您想象的那样,对于一个开放式问题,您会得到一个模糊的答案,这取决于情况。
如果您需要它的功能和用途,DynamoDB 是一个很好的选择,它是一个可扩展的无服务器数据库。
如果您的大部分用例可以通过表或索引来实现,那么过滤嵌套属性可能就可以了,或者您可以通过 DynamoDB ZeroETL 功能集成 OpenSearch,以允许您对嵌套值进行高效查询。
简而言之,这取决于您的具体应用需求。