我将一些数据从MySQL移动到DynamoDB。现在我在架构设计上遇到了一个问题,以满足我的所有需求。 MySQL中的My Table有这样的模式:
userid - int
datetimemillis - int
typeid - int
string1 - string
string2 - string
string3 - string
string4 - string
主键是使用userid和datetimemillis构建的
我需要做这样的查询:
我能够执行1.和2.使用userId作为hashkey进行查询,将typeId作为本地二级索引进行查询(需要使用范围键来删除具有特定用户标识的所有记录)。有没有选项可以在不使用扫描的情况下进行第三次查询?我的可能性是什么?使用CloudSearch?还是其他亚马逊服务?如果我需要更改我的架构,请告诉我。价格无所谓,它只能工作,即使我必须使用五十个额外的服务和dynamodb表。
答案 0 :(得分:0)
如果您尝试与String1-4进行精确的字符串匹配,则可以使用更多本地二级索引。 DynamoDB最多支持5个本地二级索引。
但是(我想这就是你想要的)如果你试图在其中一个字符串中搜索一个特定的包含,我会使用solr来索引所有这些字符串及其在solr和交叉引用中的相应userId您在dynamodb用户表中使用HashKey进行solr搜索的结果集中的userId。