3

我一直在尝试将 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}

现在,如果这是对带注释的表进行编码的方式,则很容易通过用户 ID 检索并确定一个对话的所有帖子和评论的日期。但是如果我们需要找到一个特定的评论并更新它,是否有可能或者我们必须“扫描”一个表?我已阅读有关扫描导致结果打破大数据中的吞吐量限制并且不想使用它的信息。查询似乎仅限于比较和检索的运算符。那么,我以这种方式创建表格是否正确?我可能必须在每个“对话”中将其他数据嵌入到表格中,例如音频、视频文档和图片。任何输入表示赞赏。

4

1 回答 1

4

在 DynamoDB 中,您的整个实体不能大于 64kB,因此您不想直接在帖子中嵌入您的评论,除非您知道它们会非常小。

在帖子中包含评论 ID 列表以及您需要知道要检索哪些元数据的任何元数据可能会更好。DynamoDB 的低延迟意味着您可以为每个页面加载执行多个请求->检索->请求的循环,只要数量是固定的。

大型嵌入式内容(甚至更大的文本,如博客文章)不适合 DynamoDB,您可能需要 S3 或 CloudFront 之类的东西。

于 2012-02-28T16:19:32.570 回答