SQL 到 Cosmos DB 迁移,我们是否需要在 SQL 中将多个容器作为不同的表?



我们计划将SQL DB迁移到Cosmos DB,因为我是Cosmos的新手,我对容器感到困惑。 我们是否需要为每个表使用一个容器,或者一个容器足以容纳所有表数据?假设我们正在采用多个容器,我们可以通过存储程序传达不同的容器吗?

若要在此处取得成功,需要了解如何在 Cosmos DB 中对数据进行建模并选择分区键。这些概念非常新,与关系数据库中的概念不同。我鼓励您阅读这些差异,因为这会对此类数据库的性能和成本产生巨大影响。此内容将为您提供有关如何设计可扩展的高效数据库的深入理解:

(注意:已更新此答案以包含更多/更好的内容,因为此答案正在获得牵引力(

文章:

  • 了解NoSQL和关系数据库之间的差异
  • Azure Cosmos DB 中的数据建模
  • 如何使用实际示例对 Azure Cosmos DB 上的数据进行建模和分区

视频:

  • 建模和分区 - 2 分钟简介
  • 如何在 Cosmos DB 中对数据进行建模和分区 - 这需要冒险工作并为 NoSQL 重新建模
  • Azure Cosmos DB 中的数据建模 - 讨论如何对书店方案进行建模

Microsoft 学习实验室:(基本上是上面第二个视频的 HOL(

  • 在 Azure Cosmos DB 中对数据进行建模和分区
  • Azure Cosmos DB 的高级建模模式

GitHub 存储库:

  • 宇宙作品 - 这是上面讨论的冒险作品的代码和数据集

在 Cosmos DB 中进行建模需要了解数据访问模式、如何写入数据、读取数据以及每种访问模式的频率。

获得初始设计后,需要对其进行测试并测量 RU/s 消耗,以确保优化得相当好。它不需要完美,但你应该知道通过使用 ChangeFeed 并将数据写入具有单独分区键的另一个容器来更好地提供任何跨分区查询的答案。

有很多概念需要理解。我知道这是一个常见的副歌,但我绝对鼓励你在深入之前阅读 Cosmos 上的文档。

最新更新