【问题标题】:What are storage differences between Cosmosdb sql api and Cosmosdb cassandra apiCosmosdb sql api和Cosmosdb cassandra api之间的存储区别是什么
【发布时间】:2020-06-12 23:21:31
【问题描述】:

在大多数文章中都提到,如果我们使用 Cosmos Db 并新创建我们的应用程序,我们应该使用 Cosmos db sql api。当您已经将您的应用程序与实际的 mongo 和 cassandra 集成并且我们希望快速迁移到 cosmosdb 并且不改变生态系统时,可以使用 Mongo api 和 cassandra api。

但是当我们在 azure 中创建一个新的 cosmosdb 集群时,它会询问 api 类型。这意味着除了 api(query) 接口之外,内部肯定存在一些存储差异和内部引擎处理差异。

我想了解我们应该根据哪些差异来决定选择不同的 api。

【问题讨论】:

    标签: azure-cosmosdb azure-cosmosdb-sqlapi azure-cosmosdb-mongoapi azure-cosmosdb-cassandra-api


    【解决方案1】:

    是的,Azure 存储数据的方式有所不同。除了存储之外,不同的 API 还支持用于通信的原生有线协议。

    来自 azure guides:

    Azure Cosmos DB 是 Microsoft 的全球分布式多模型 数据库服务。多模型意味着 Azure Cosmos DB 支持 多种API和多种数据模型,不同的API使用不同的 用于存储和有线协议的数据格式。例如,SQL 使用 JSON,MongoDB 使用 BSON,Table 使用 EDM,Cassandra 使用 CQL,Gremlin 使用 JSON 格式。

    Azure Cosmos DB SQL API 帐户支持使用 sql 作为 JSON 查询语言来查询项目。

    Azure Cosmos DB MongoDB API 与 MongoDB 有线协议 3.6 版兼容。

    Azure Cosmos DB Cassandra API 与 CQL 版本 v4 兼容。但是,CQL 命令有一些限制。

    详情请咨询https://docs.microsoft.com/en-us/azure/cosmos-db/cassandra-support

    【讨论】:

    • @pvjhs 我提到了 azure guides 在存储方面的差异。请阅读它们!
    【解决方案2】:

    存储基础架构后端是相同的。适应不同的 API 存在一些差异,但这是一个实现细节,旨在确保与每个受支持的 API 的兼容性和保真度。

    如果您有现有的 MongoDB 或 Cassandra 数据库并希望迁移到完全托管的体验,请选择其中之一。或者,如果您对 MongoDB 或 Cassandra 有深入了解,并且不想学习 Cosmos DB 的 API,那么请选择其中之一。

    所有其他 API 均基于 Cosmos DB 的核心 (SQL) API 构建,该 API 的 SDK 由该团队制作。 Cosmos DB 上的任何新功能(例如 Change Streams)都是基于核心服务中已有的功能构建的,因此当然,新功能首先出现在核心 API 中,然后再出现在其他 API 中。

    希望对您有所帮助。

    【讨论】:

    • 所以它不像某些更适合 cassandra 的用例(编写具有已知查询路径的重型应用程序)也适合 cosmos cassandra api 而不是 sql 或 mongo api。
    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多