Cassandra + Spark vs MySQL + Spark

时间:2015-03-13 08:00:34

标签: mysql cassandra apache-spark

我必须在三层架构上设计一个软件:

  • 定期轮询数据源(如ftp以注入数据库)的过程
  • 数据库
  • 用于处理数据的Spark

我的数据很简单,非常适合存储在单个RDMS表中,或者我可以将它存储在Cassandra中,然后定期我需要Spark在整个数据集上运行一些机器学习算法。

哪个数据库更适合我的用例?详细地说,我不需要在多个节点上扩展,我认为主要的基本问题是:

  • 在简单的桌子上对Cassandra或MySQL进行简单的查询(SELECT)更快?

  • 来自Cassandra的Spark Connector是否会受益于它的一些功能,它会使它比SQL连接器更快?

3 个答案:

答案 0 :(得分:0)

如果数据大小小于2Tb,您可以使用MySQL。在MySQL表上选择将比在Cassandra中更灵活。 当您的数据存储要求跨越单台机器时,您应该使用Cassandra。 Cassandra需要为每个查找或选择方案进行仔细的数据建模。

您可以使用以下建议的方法进行MySQL Spark Integration

How to work with MySQL and Apache Spark?

答案 1 :(得分:0)

这一切都取决于数据:大小,完整性,规模,灵活的模式分片等。

使用MySQL if:

  1. 数据量很小(单位数TB)
  2. 需要强一致性(原子性,一致性,隔离性和耐久性)
  3. 使用Cassandra if:

    1. 数据大小巨大且需要水平可扩展性
    2. 最终一致性(基本可用的软状态最终一致性)
    3. 灵活架构
    4. 分布式应用程序。
    5. 请查看此benchmarking article和此pdf

答案 2 :(得分:0)

我认为将sql数据库用作mysql会更好,如果你需要以更大的比例和许多数据中心扩展数据,就应该使用cassandra。 java cassandra jdbc驱动程序只是连接到cassandra的普通驱动程序,它与其他数据库驱动程序相比没有任何特殊的优势。