Azure SQL API与Azure Mongo API

Pan*_*wat 6 azure mongodb azure-cosmosdb

我是“ NoSQL”领域的新手,最近我开始将Cosmos DB用于JSON文档,并且能够使用CosmosDB“ SQL”和“ Mongo” API来存储和获取数据。

哪种API最适合我?(要求:性能,低延迟,大量收集,低成本)

Raf*_*osh 6

这两个 API 都为您提供高吞吐量、低延迟、弹性扩展、异地复制等。

它归结为你对什么感到舒服。许多人更喜欢 Mongo,因为他们已经熟悉 Mongo,它的语法、工具,并且他们已经有一个基于 Mongo 构建的应用程序,他们迁移到了 CosmosDB。

如果您是新手,并且没有对 Mongo 的现有投资,我建议您从 SQL 开始。SQL 是 CosmosDB 最古老的 API,并且经过了更多的考验。

  • 在与 Cosmos 团队的某个人直接交谈后,如果从头开始,他们会推荐 SQL API,因为他们控制所有内部开发端到端。在什么时候你可以向别人推荐一些东西?如果您对 OP 一无所知,您仍然可以单独推荐 SQLAPI。由 OP 来改变该建议。如果 OP 想要构建“全栈”mongo 解决方案,建议根本不要使用 Cosmos。如果他们提供更多信息,则建议将发生变化。“新”用户的信息很少?推荐使用 SQL API。 (3认同)

Pan*_*wat 6

现在,我在Cosmos DB项目上花费了6个月以上。我可以就这个问题发表意见。

Azure Cosmos DB在SQL API和Mongo API中提供了相同的功能,因此无法按功能进行比较。

在Cosmos DB中使用Mongo API的原因

  1. 如果您已经有Mongo DB数据库,并且想在Azure上迁移。
  2. 如果您或您的团队成员具有Mongo DB经验。
  3. 如果要开发与云无关的应用程序,则可以将应用程序本地部署或其他任何云供应商。

在Cosmos DB中使用SQL API的原因

  1. 如果您有SQL查询经验,则很容易启动。
  2. 如果您不是在寻找与云无关的应用程序。(不能将Cosmos DB应用程序移至内部部署或其他云供应商)。

  3. Cosmos DB Change Feed仅适用于SQL API。

  • 附加参数 - 迄今为止,Mongo DB API 缺乏对重试的支持(例如,在超过既定吞吐量限制时发出 HTTP 429 的情况下)支持。SQL API 本身就支持这一点。 (3认同)

Mel*_*hia 5

作为使用 MongoDB API 的软件工程师。我可以确认我和我的团队在处理 CosmosDB 的 426 代码错误时遇到了麻烦。因此,我们最终与 Polly 一起开发了自己的定制解决方案来处理这些限制。然而,如果我们使用 SQL API,我们就可以访问CosmosDB sdk,它几乎可以处理这些情况。这只是我的反馈。