【问题标题】:Existing app migrate from Cassandra DB to Cosmos DB现有应用程序从 Cassandra DB 迁移到 Cosmos DB
【发布时间】:2019-06-23 22:43:43
【问题描述】:

可能需要进行哪些类型的代码更改?在这方面,文档似乎有冲突,并且没有提供我能找到的细节。文档指出:

  1. 无需更改代码
  2. 可能需要进行细微的代码更改
  3. 许多情况不需要更改代码

如果我有更新并从 Cassandra 读取的应用程序已经运行,那么一旦实施 Cosmos,什么情况会导致需要更改代码?我的应用中的查询会按原样工作吗?

我已经看到,如果需要,您可以添加代码来自动调整吞吐量,但我在文档中没有看到任何描述从 Cassandra 迁移到 Cosmos 后对现有应用程序的查询或代码更改的细节。

【问题讨论】:

    标签: java c# cassandra azure-cosmosdb azure-cosmosdb-cassandra-api


    【解决方案1】:

    Azure Cosmos DB 中的 Apache Cassandra API – 为您提供由 Azure Cosmos DB 提供支持的 Cassandra 即服务。现在,您无需更改任何应用代码,即可体验 Azure Cosmos DB 平台作为托管服务的强大功能,并熟悉您最喜欢的 Cassandra SDK 和工具。

    通过 3 个简单的步骤将您的 Cassandra 应用程序引入 Azure Cosmos DB

    1. 在 Azure 门户中创建一个新的 Azure Cosmos DB 帐户,并在创建 Azure Cosmos DB 帐户时选择新的 Cassandra API。
    2. 将您的 Cassandra 应用程序连接到 Azure Cosmos DB,复制在创建新帐户时提供给您的简单连接代码 sn-p。
    3. 使用您最喜欢的 Cassandra 工具和驱动程序来管理和查询 Azure Cosmos DB 中的 Cassandra 数据

    Azure Cosmos DB 提供与 Cassandra API 的有线协议级别兼容性。 这可确保您无需更改代码即可继续使用现有应用程序和 OSS 工具,并让您可以灵活地运行完全托管的 Cassandra 应用程序,而无需锁定供应商。虽然 Azure Cosmos DB 公开了流行的开源数据库的 API,但它并不依赖这些数据库的实现来实现相应 API 的语义。

    参考:https://azure.microsoft.com/en-us/blog/dear-cassandra-developers-welcome-to-azure-cosmosdb/

    官方documentation也提到: Azure Cosmos DB Cassandra API 可用作为 Apache Cassandra 编写的应用程序的数据存储。这意味着,通过使用与 CQLv4 兼容的现有 Apache 驱动程序,现有的 Cassandra 应用程序现在可以与 Azure Cosmos DB Cassandra API 进行通信。在许多情况下,只需更改连接字符串,即可从使用 Apache Cassandra 切换到使用 Azure Cosmos DB 的 Cassandra API。

    Azure Cosmos DB 提供与现有 Cassandra SDK 和工具的有线协议级别兼容性。这种兼容性确保您可以将现有代码库与 Azure Cosmos DB Cassandra API 一起使用,只需进行一些细微的更改。

    这不是绝对“没有代码更改”。将应用程序从 Cassandra 迁移到 Cosmos 后,您需要测试应用程序是否运行良好或查询语句是否成功执行。您需要考虑代码兼容性。 看:Apache Cassandra features supported by Azure Cosmos DB Cassandra API

    如果有错误或异常发生,你肯定需要修改代码。

    希望对你有帮助。

    【讨论】:

    • 我看过这个,但我看过其他文档说“没有代码更改或几乎没有”,我听说有人说你需要代码来重试处理
    • @Zeratul 请看我的更新,这是我从文档中了解到的。
    • 是的,他们说没有代码更改,然后他们说微不足道的代码更改,他们还说“在许多情况下”没有代码更改。它是哪一个?如果我的查询在我的 cassandra 设置中运行得非常好,那么我是否应该能够得到一个明确的答案,即这是否意味着我需要在继续尝试之前添加任何代码?
    • 我无法知道甚至需要进行哪些代码更改,因为它们没有在文档中的任何位置显示哪些代码更改
    • 是否需要修改代码视实际情况而定,Azure没有给我们样例。这很难说,你必须尝试一下。那么也许你就能得到答案。你能接受我的回答吗?谢谢,祝你有美好的一天。
    猜你喜欢
    • 1970-01-01
    • 2019-12-22
    • 2021-07-27
    • 1970-01-01
    • 2018-09-02
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    相关资源
    最近更新 更多