我在生产端运行mysql服务器,目前有200 GB的数据。现在管理mysql服务器非常困难,因为它正在逐渐增长。我听说过很多关于cassandra的事情,我就此做了POC。 Cassandra提供高可用性和最终一致的数据。 Cassandra非常适合我们的要求。现在的问题是如何将所有mysql数据传输到cassandra数据库。
由于MYSQL是关系数据库而cassandra是NOSQL。如何将MYSQL表及其关系表映射到cassandra表。
答案 0 :(得分:0)
您可以使用spark将数据从mysql迁移到cassandra。 spark与mysql以及cassandra有连接。首先,根据您的要求在cassandra中创建模型,然后从mysql中提取所有数据,完成一些转换后,您可以直接在cassandra中推送数据。
答案 1 :(得分:0)
直接将关系数据传输到Cassandra是不可能的。你必须对其进行非规范化。但是,请注意,一些反规范化的查询和方法是反模式。首先通过这些免费课程:
如果您在Cassandra的关系数据数据模型设计中失败,您将无法获得Cassandra提供的不错功能。例如,您不会获得水平可伸缩性(您可能在您的claster中有热点)或高可靠性(对于某些查询,可能会发生构建响应所需的所有节点)
答案 2 :(得分:0)
我相信你问的是错误的问题。从关系模型转换到Cassandra没有规则。
第一个问题如下:您在性能,可用性,数据量和性能方面有哪些要求?增长,以及所有查询能力中最重要的?你需要ACID吗?您是否可以更改访问数据库的应用代码以适应Cassandra更加非规范化的模型?
这些问题的答案将告诉您Cassandra是否与您的用例兼容。
根据经验:
您的用例可能介于两者之间,您真的需要了解如何在cassandra中建模数据,您必须自己理解并执行此分析,因为您了解自己的域名并且我们不知道。但是,请不要犹豫,提供有关您的模型以及如何查询数据的线索,以便建议您。
对于Cassandra来说200GB是低的,你可能会发现你的数据在Cassandra中的空间比在MYSQL中少得多,即使在广泛非规范化的情况下也是如此,因为Cassandra非常有效。