介绍
Azure Cosmos DB 是 Microsoft 在 Azure 上完全托管的 NoSQL 数据库。 作为 NoSQL 数据库,Azure Cosmos DB 既是非关系性的,也是可以横向缩放或横向扩展的。通过向容器添加更多节点或分区来实现这种横向扩展的能力。
这种横向扩展的能力使容器能够增长到理论上的无限大小。 因此,随着容器大小的增长,容器还可以处理越来越多的请求,无论容器的大小如何,都可提供相同的性能。
然而,若要实现这种级别的可伸缩性,用户需要了解 Azure Cosmos DB 特有的对数据进行建模和分区的概念和技术。 用户还需要了解 NoSQL 数据库的一般概念。
方案
假设你就职于一家需要设计数据库来管理在线订单的零售初创企业。 你正在制定使用 Azure Cosmos DB for NoSQL 的高效数据库设计的提案。 你得到了一个实体关系模型作为入手点。 你希望尽可能提供最大的可伸缩性、性能和效率,要实现这一任务,需要对数据进行正确建模。
以下实体关系图(ER 模型)提供了你预计会处理的九个实体的详细信息。 关系模型在各自的表中都有 9 个实体。
我们如何完成这个任务?
在本模块中,我们采用现有的关系数据模型,并将其重新设计为电子商务应用程序的 NoSQL 数据库。 在此过程中,你将了解以下概念:
- 关系数据库与 NoSQL 数据库之间的差异:你将了解 NoSQL 数据库和关系数据库之间的一些差异,以及它们为何不同。
- 使用应用程序数据访问模式对数据进行建模:你将了解应用程序读取和写入数据的方式如何影响为 NoSQL 数据库建模的方式。
- 嵌入与引用:你将了解何时应将数据嵌入同一文档,而何时又应将数据存储为单独的文档。
- 选择分区键:你将了解选择最佳分区键以实现横向扩展以及优化读取或写入密集型(或两者)工作负载所需的关键概念。
- 对查找或参考数据进行建模:最后,你将了解如何对用作其他数据的查找或参考的数据建模。
主要目标是什么?
完成本模块(和配套模块“使用 Azure Cosmos DB 的高级建模模式优化数据库”)后,你将学到部署在 Azure Cosmos DB 上的 NoSQL 数据库的数据正确建模和分区所需的知识和技能。
完成此模块后,你将能够:
- 确定数据的访问模式。
- 应用数据模型和分区策略,以支持高效且可缩放的 NoSQL 数据库。