【问题标题】:Is Cassandra suitable as the main database for a social networking site?Cassandra 是否适合作为社交网站的主数据库?
【发布时间】:2016-05-02 08:03:09
【问题描述】:

有很多关于 NoSQL 数据库被 Twitter 和 Facebook 等大型网站使用的炒作。然而,当我对此进行更仔细的研究时,似乎该领域的大多数成功公司都在使用数据库技术的组合,使用 MySQL 作为主数据库,然后添加 NoSQL 数据库以添加缓存层等以提高性能。我还听说 Diaspora 最初开始使用 MongoDB 作为他们的主要数据库,然后不得不切换到关系数据库,因为 Mongo 不适合他们的需求。特别是,我听说表示用户之间的关系确实需要关系数据库或图形数据库。

然而,Spotify 似乎在 Cassandra 上非常强大,Cassandra 既不是关系数据库也不是图形数据库。此外,虽然 Spotify 并不以社交网络而闻名,但它确实包括能够关注其他用户并查看他们一直在听的歌曲等功能。如果这一切都用 Cassandra 完成,也许 Cassandra 非常适合社交网络,甚至代表用户之间的关系?任何人都可以给我任何见解吗?

编辑:我知道 Cassandra 不支持联接,但是尽管缺少联接,但是否有一种合理的方法可以用 Cassandra 表示社交图?另外,我对社交图谱中 Cassandra 与 SQL 的对比特别感兴趣,而对 Cassandra 与图 DB 的对比则不太感兴趣。

【问题讨论】:

    标签: sql cassandra relational-database nosql


    【解决方案1】:

    Cassandra 非常适合使用简单的键值或分区内的大表式切片进行高速写入和读取。

    Cassandra 不擅长建模为 SQL JOIN 或搜索任意文本。

    人们倾向于使用技术组合的原因是,不同的技术是针对不同的问题而设计的——针对搜索优化的工具(elasticsearch、solr 等)在搜索类型问题上会好得多,但不会没有从 Cassandra 获得的键/值查找的读/写吞吐量。

    【讨论】:

      【解决方案2】:

      它们都有不同的用例,单个数据库可能不够用。

      对于社交网站,可以使用这些的组合。 SQL 或 NoSQL 数据库可用于存储用户信息、偏好等,具体取决于您查看的规模。

      然而,关系要求(社交网络)是不同的,SQL 和 NoSQL 数据库(包括 Cassandra)都不是代表这些要求的最佳选择。

      图数据库在表示社交图和执行相关算法方面往往更快、更高效。

      【讨论】:

      • 图数据库很有趣。我听说过它们,但不知道它们对于社交图谱的东西要好得多。仍然,如果您必须为社交图谱选择关系图还是 Cassandra,您会选择什么?
      • 存在在 cassandra 上运行的图形数据库 - Titan 可能是最常见的。这为您提供了 Cassandra 存储层的线性可扩展性,以及 Titan/Gremlin/graph 的访问特性。当然,值得注意的是,可以在 Cassandra 上编写图形数据库这一事实意味着如果你愿意的话,你当然可以自己做。
      • 对于存储社交图谱的具体用例,neo4j (neo4j.com) 是最流行的图谱数据库之一。
      猜你喜欢
      • 2011-06-10
      • 1970-01-01
      • 2010-12-23
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多