【问题标题】:How to transfer mysql data to cassandra database?如何将mysql数据传输到cassandra数据库?
【发布时间】:2015-11-03 04:08:27
【问题描述】:

我在生产端运行 mysql 服务器,目前有 200 GB 数据。现在管理 mysql 服务器非常困难,因为它呈指数增长。我听说过很多关于 cassandra 的事情,我对此进行了 POC。 Cassandra 提供高可用性和最终一致的数据。 Cassandra 非常适合我们的要求。现在的问题是如何将所有mysql数据传输到cassandra数据库。

因为 MYSQL 是关系型数据库,而 cassandra 是 NOSQL。如何将MYSQL表及其关系表映射到cassandra表。

【问题讨论】:

标签: cassandra cassandra-2.0 database nosql


【解决方案1】:

您可以使用 spark 将数据从 mysql 迁移到 cassandra。 spark 与 mysql 以及 cassandra 有连接。首先,您根据您的要求在 cassandra 中创建模型,然后从 mysql 中提取所有数据,并在完成一些转换后,您可以直接在 cassandra 中推送数据。

【讨论】:

    【解决方案2】:

    无法将关系数据直接传输到 Cassandra。您必须对其进行非规范化。但是,请注意,一些非规范化查询和方法是反模式。首先完成这些免费课程:

    如果您在 Cassandra 的关系数据数据模型设计中失败,您将无法获得 Cassandra 提供的出色功能。例如,您不会获得水平可扩展性(您的分类器中可能有热点)或高可用性(对于某些查询,可能需要所有节点来构建响应)

    【讨论】:

      【解决方案3】:

      我相信你问错了问题。从关系模型过渡到 Cassandra 没有规则。

      第一个问题如下:您对性能、可用​​性、数据量和增长以及最重要的查询能力有什么要求?你需要酸吗?您能否更改访问数据库的应用程序代码以适应更非规范化的 Cassandra 模型?

      这些问题的答案将告诉您 Cassandra 是否与您的用例兼容。

      根据经验:

      • 如果您使用带有大量索引的mysql,并且通常在查询Cassandra 数据模型时执行join,那么使用数据库的应用程序代码将需要大量工作,甚至可能Cassandra 都不是正确的选择。同样,如果您真的需要 ACID,您可能会遇到 Cassandra 一致性模型的问题。
      • 如果您的 SQL 数据模型是完全非规范化的并且您执行的查询没有连接,那么您只需将数据库表模式复制为 Cassandra 列族即可,即使这可能不是最佳的。

      您的用例可能介于两者之间,您确实需要了解如何在 cassandra 中对数据进行建模,您必须自己了解并执行此分析,因为您了解您的领域而我们不了解。但是,请不要犹豫,提供有关您的模型以及您需要如何查询数据的线索,以便为您提供建议。

      200GB 对于 Cassandra 来说太低了,您可能会发现,您的数据在 Cassandra 中占用的空间比在 MYSQL 中要少,即使由于 Cassandra 非常高效而进行了广泛的非规范化也是如此。

      【讨论】:

      • 我说的是高容量和可用性。 ACID 属性不是必需的
      猜你喜欢
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2019-04-15
      • 2019-08-10
      • 2019-07-07
      • 2018-09-16
      • 1970-01-01
      • 2012-01-03
      相关资源
      最近更新 更多