您对“ 您应该在DynamoDB应用程序中维护尽可能少的表。大多数设计良好的应用程序只需要一个表。 ”的说法感到满意吗? / p>
我已经列出了用于NoSQL设计的用例,但是将自己局限于单个表的设计会使设计变得复杂,并且要求每个使用NoSQL表的开发人员都必须理解遵守分区和性能提升原则的逻辑复杂性。只是写一些我的应用程序要做的事情:
我找到了批处理作业,该作业会定期扫描整个表,迫使我创建第二个表,以便可以产生尽可能多的线程来处理行。
如何使所有这些都适合一张桌子?
答案 0 :(得分:0)
这全是里克·胡里汉(Rick Houlihan)的错。他是AWS的首席工程师,专注于DynamoDB。
因此,开篇声明大多数设计良好的应用程序只需要一张桌子,但是缺少有关如何构造表格以使其有效的设计指南。
对于示例中的单表设计,您需要每个设备一个分区和每个用户一个分区,您还要为每个设备或每个用户写入相关信息。您可以在单个表中混合并匹配所有这些内容。您将使用全局二级索引来检索相关数据,但是该索引设计将取决于您的访问模式。
本质上,为单个表设计建模数据的方式与RDBMS完全不同,因此您需要将所有已知的知识抛诸脑后再重新学习。
我建议阅读这些博客文章
https://www.trek10.com/blog/dynamodb-single-table-relational-modeling/
https://www.jeremydaly.com/takeaways-from-dynamodb-deep-dive-advanced-design-patterns-dat403/
并多次观看Rick的reInvent会话...通常大约是灯泡开始熄灭的第10次...
Rick的DynamoDB高级设计模式讲座-https://www.youtube.com/watch?v=6yqfmXiZTlM
有很多深度。祝你好运!