我将一些数据从MySQL转移到DynamoDB。现在,我在模式设计上遇到了一个问题,以满足我的所有需求。我在MySQL中的表有如下模式:
userid - int
datetimemillis - int
typeid - int
string1 - string
string2 - string
string3 - string
string4 - string主键使用userid和datetimemillis构建。
我需要这样的查询:
我可以使用userId作为hashkey,typeId作为本地辅助索引(删除具有特定用户I的所有记录需要范围键)进行1和2。是否有任何选项,我可以进行第三次查询而不用扫描?我的可能性是什么?用CloudSearch?或者其他亚马逊服务?如果我需要更改我的架构,请告诉我。价格并不重要,它只需要工作,即使我必须使用50个额外的服务和dynamodb表。
发布于 2013-10-19 22:16:56
如果要使用String1-4执行精确的字符串匹配,则可以使用更多的本地辅助索引。DynamoDB最多支持5个本地辅助索引。
但是(我认为这正是您想要的)如果您试图在其中一个字符串中搜索特定的内容,我将使用solr这样的方法在solr中索引所有这些字符串及其相应的userId,并从solr搜索的结果集交叉引用userId和dynamodb用户表中的HashKey。
https://stackoverflow.com/questions/19131549
复制相似问题