【问题标题】:Future potential of switching from MySQL to Cassandra (NoSQL) [closed]从 MySQL 切换到 Cassandra (NoSQL) 的未来潜力 [关闭]
【发布时间】:2012-08-05 21:07:17
【问题描述】:

我计划最终将我网站的数据库系统从 MySQL 切换到 NoSQL(在本例中为 Cassandra)。

就我目前对 Cassandra 的了解而言,没有联接之类的东西,而只是更有效地工作的更大记录。我不是 NoSQL atm 方面的专家,实际上我对它了解得很少,而且对它的大部分工作原理感到非常困惑......

我的 Web 项目的一个目标是切换到 Python 和 Cassandra,以获得更高级和更快的解决方案,因为我的网站开始增长并且我希望能够通过额外的服务器轻松扩展它。

现在我正在为我的网站设计一项新功能,即获取文件并从中创建文件夹的能力。到目前为止,这是我最初使用的:How to join/subquery a second table(我刚刚问的一个问题)

然后人们建议对数据进行规范化并使其成为一个 3 表系统,其中一个用于文件夹,一个用于文件夹/文件,一个用于文件。 @egrunin 回答了我的问题,甚至给了我 NoSQL 的信息,但我真的很想用第二个来源检查它,以确保这是正确的方法。

还有任何 SQL 到 NoSQL 的转换工具吗?

所以我的最终目标是在数据库中设计这个文件夹/文件系统(以及我正在添加的其他功能),以便当我从 SQL 切换到 NoSQL 时,我将准备好并且我的所有数据的转换将轻松很多。

非常感谢任何关于将 SQL 转换为 NoSQL、Cassandra 或 NoSQL 工作原理的教程、指南和信息,到目前为止,Cassandra 文档让我非常困惑。

【问题讨论】:

  • 你做过任何原型设计/玩弄 NoSQL 吗?恕我直言,最大的区别是无模式的性质,因此您可以随着时间的推移演变您的模式。我建议您在尝试迁移大型应用程序之前尝试一些实验,以便您了解 NoSQL 中数据模型演变的工作原理。
  • 我还没有尝试过它,但我希望有人能给我一些关于如何尝试和设置我的文件夹/文件数据库模式的指导,所以当我切换到 cassandra 时,它将涉及尽可能少的转换 :) 如果不是,我现在将其标准化。我开始阅读您有关 NoSQL 的信息,稍后我会深入了解,好东西。

标签: mysql sql database-design nosql cassandra


【解决方案1】:

在 Couchbase,我们最近举办了一个关于从 RDBMS 过渡到 NoSQL 的网络研讨会系列。这显然是从 JSON 文档的角度来看的,但很多经验教训都适用于任何分布式数据库。

http://www.couchbase.com/webinars

【讨论】:

    【解决方案2】:

    MasterGberry:

    我的 Web 项目的一个目标是切换到 Python 和 Cassandra,以获得更高级和更快的解决方案,因为我的网站开始增长并且我希望能够通过额外的服务器轻松扩展它。

    在切换到 Cassandra 之前,您需要清楚地量化这一点。

    MySQL 可以做到amazing things,Cassandra 也可以,但切换到 Cassandra 通常不能仅仅因为想要更快地完成任务,因为它们可能不会更快——至少在你使用 MySQL 的领域不会做得很好(明确定义的表格数据的列级数值聚合)。

    我绝不会阻止过渡,但我对期望提出警告。

    这可能是一个很好的阅读: http://itsecrets.wordpress.com/2012/01/12/jumping-from-mysql-to-cassandra-a-success-story/

    【讨论】:

    • Cassandra 的优点之一是数据库服务器的社交性,所以是的,我觉得从长远来看它对我来说会更有效:) 就博客阅读而言,它实际上就像90% 是从 cassandra 文档中复制的......仍然不是 10% 清楚哈哈。
    【解决方案3】:

    实际上,您可以使用 playOrm 之类的工具来支持连接,但仅限于分区而不是整个表。因此,如果您按月或按帐户进行分区,则可以获取帐户 4536 分区并查询将其与其他内容(另一个较小的表或另一个表的另一个分区)连接起来。

    如果您的系统有很多客户端,并且每个客户端都真正独立于另一个客户端,这将非常有用,因为您可以将所有客户端信息自行包含到该客户端的所有表的分区中。

    后来, 院长

    【讨论】:

      【解决方案4】:

      Cassandra 并不是真的要成为应用程序的主存储。它的主要目的之一是存储顺序数据并通过键查找将所有数据拉回。一个例子是日志记录。有趣的是,行键没有排序,但列名是排序的。因此,日志记录每分钟都有一个键,然后为每个日志条目创建一个新列,并以顺序时间戳作为列名。当然这只是一个例子,聊天记录是另一个例子。

      【讨论】:

        猜你喜欢
        • 2013-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        • 1970-01-01
        • 1970-01-01
        • 2011-02-03
        • 2012-08-24
        相关资源
        最近更新 更多