如何将应用程序移动到 Cassandra?

How to move an application to Cassandra?

这可能是个愚蠢的问题,但我刚开始在一家公司实习,我应该弄清楚如何将基于 C 的大型算法应用程序从 MySQL 迁移到 Cassandra(我对这一切都是全新的)。我一直在寻找我将如何处理这一天,但我仍然有点不清楚。我看到要在 Cassandra 中运行,数据应该被非规范化。此外,还有多种工具可将数据从 MySQL 迁移到 Cassandra,例如 Sqoop 或 Bulk Loader。

所以我的问题是:要将此应用程序移动到 Cassandra,我是否应该将每个 SQL 语句和 table 更改为 Cassandra,也许使用 Datastax 的 C 驱动程序?或者我只是向应用程序添加一些东西,在应用程序运行时将 MySQL 数据写入 Cassandra 中的键空间,就像它说的 here 一样?

我发现的绝大多数资源只是展示了如何将数据移动到 Cassandra,而不是整个应用程序的逻辑。此外,我发现的大多数资源似乎都已过时 - 似乎因为较新版本的 Cassandra 具有大致相等的读取和写入速率,我的印象是完全非规范化数据的需求并不大。

仅供参考:当前数据存储在从无线接入点聚合的大约三十 table 秒的统计数据中。

您需要更改应用程序。 cassandra和mysql的数据读/写代码有很大不同。您将能够在 mysql 中进行很多在 cassandra 中无法进行的查询 - cassandra 需要以支持高效查询的方式对数据进行建模(与 sql 相比) 有限的查询语言,CQL。

你的数据是关系型的吗?是否使用连接?或者它主要是键值数据,可能是时间序列?如果它是统计数据,并且没有连接,则可能比其他方式容易得多。

您需要根据您的应用程序(以及可能的其他应用程序)使用的查询对您的 cassandra 数据模型进行建模。然后您可以创建 cassandra 模式,并导出/导入 mysql 数据。为此,您可以使用 Pentaho 等工具,甚至编写迁移应用程序。数据库中当前有多少数据?如果不是太多,您可以使用 csv 导出和导入。

您的申请需要更改。更改应用程序以读取和写入 cassandra。你能忍受停机时间吗?如果没有,请考虑您发布的 link 中概述的方法。

这不是一件小事。根据 mysql 当前的数据模型,这可能是一项艰巨的任务。

祝你好运!