我将一些数据从 MySQL 移动到 DynamoDB。现在我在模式设计上遇到了一个问题,以满足我的所有需求。我在 MySQL 中的表有这样的模式:
userid - int
datetimemillis - int
typeid - int
string1 - string
string2 - string
string3 - string
string4 - string
主键是用 userid 和 datetimemillis 构建的
我需要做这样的查询:
- 检索特定用户 ID 的每一行
- 检索特定用户标识和类型标识的每一行
- 检索 string1-4 包含特定字符串的特定用户 ID 和类型 ID 的每一行
我能够使用 userId 作为 hashkey,typeId 作为本地二级索引进行 1. 和 2. 查询(删除具有特定 userid 的所有记录需要范围键)。有没有什么选项可以在不使用扫描的情况下进行第三次查询?我的可能性是什么?使用云搜索?还是其他亚马逊服务?如果我需要更改我的架构,请告诉我。价格无关紧要,它必须有效,即使我必须使用 50 个额外的服务和 dynamodb 表。