【数据建模】设计一个DynamoDB数据模型,用于管理图形化的层次关系 -- 介绍
视频号
微信公众号
知识星球
Chinese, Simplified
Amazon DynamoDB是Amazon Web Services(AWS)提供的一种快速、灵活、无服务器的数据库。它是一个NoSQL事务数据库系统,即使在PB大小的数据存储中,也可以提供一致的单位数毫秒性能。
本指南介绍了一种设计用于处理多级组件管理系统的DynamoDB数据模型的方法。在系统中,组件、其子组件及其子组件之间的层次关系得到维护,深度可以达到任何级别。
概述
通常,对于构建分层关系模型,像Amazon Neptune这样的图形数据库是更好的选择。然而,在某些情况下,DynamoDB是分层数据建模的更好选择,因为它具有灵活性、安全性、性能和规模。
例如,您可以构建一个系统,其中80%–90%的查询是事务性的,DynamicDB非常适合。在本例中,其他10-20%的查询是关系型的,类似海王星的图形数据库更适合。在这种情况下,在体系结构中添加一个额外的数据库以仅完成10%到20%的查询可能会增加维护多个系统和同步数据的成本和操作负担。相反,您可以在DynamicDB中模拟10%到20%的关系查询。
作为一个示例用例,汽车公司希望构建一个事务性组件管理系统,以存储和搜索所有可用的汽车零件,并在不同的组件和零件之间建立关系。例如,一辆汽车包含多个电池,每个电池包含多个高级模块,每个模块包含多个单元,每个单元包含多个低级组件。
由于以下原因,难以在DynamoDB中建立层次关系模型:
- 它使用非规范化的键值存储。
- 与关系数据库管理系统(RDBMS)不同,它不支持外键和联接操作。
- 与图形数据库不同,它不是为本地处理分层图形数据而设计的。
因此,为了在DynamoDB中高效地存储和搜索汽车组件相关性或任何层次关系数据,您必须格外小心地设计数据模型。否则,查询响应时间会更长,成本也会增加。
本指南首先定义一些访问模式。然后,它引入了一个数据模型来实现这些访问模式。最后,本指南详细讨论了几个查询,以验证设计的数据模型是否满足所有定义的访问模式。
本文地址
https://architect.pub/design-dynamodb-data-model-managing-graphlike-hierarchical-relationship-introduction
- 12 次浏览
SEO Title
Design a DynamoDB data model for managing a graphlike hierarchical relationship -- Introduction