我一直在尝试将dynamoDB中的google +等帖子/回复方案实现为私有项目。这是我第一次尝试实现一个nosql表,并试图围绕这个概念。据我所知,相关的表列可以嵌入到原始表中,如下所示......
Post { userid:1,
postdata: "hello",Comment[
{userid: 2, postdata: "howdy", date: some-date},
{userid: 3, postdata: "higuys", date: some-other-date}
],
date: today}
现在,如果这是对带注释的表进行编码的方式,则可以通过userid检索并查看一个对话的所有帖子和评论。但是,如果我们需要找到一个特定的评论并对其进行更新,是否可能或者我们必须“扫描”一个表格?我已阅读有关扫描的结果,导致结果破坏大数据中的吞吐量限制,并且不想使用它。查询似乎在运算符中受限于比较和检索。那么,我是否正确地以这种方式创建表格?我可能必须将其他数据嵌入到表格中,例如音频,视频文档和每次“对话”的图片。任何意见都表示赞赏。
答案 0 :(得分:4)
在DynamoDB中,您的整个实体不能超过64kB,因此您不希望将评论直接嵌入帖子中,除非您知道它们会非常小。
在帖子中有一个评论ID列表,以及需要知道要检索哪些元数据的元数据可能会更好。 DynamoDB的低延迟意味着只要数量固定,您就可以为每个页面加载提供几个循环的请求 - >检索 - >请求。
大型嵌入式内容(甚至更大的文本,如博客文章)不适合DynamoDB,您可能需要类似S3或CloudFront的内容。