mysql cassandra_从MySQL切换到Cassandra - 优点/缺点?

在面临数据读取速度慢的问题时,作者考虑从MySQL迁移到Cassandra。文章讨论了项目的背景,包括使用Django、MySQL和自定义分析工具。作者提到对实时数据的处理需求以及对排序、分组和多关系的需求。尽管Sphinx提供了全文搜索功能,但读写性能仍然是瓶颈。文章探讨了在中型项目中使用Cassandra可能带来的读写速度提升,引用了一篇PDF文章作为证据。同时,作者也提出了疑问,如单节点Cassandra是否适用、是否能替代Django的MySQL后端,以及是否应该将MySQL仅作为键值存储来使用。作者寻求已经经历类似转变的人的意见。
摘要由CSDN通过智能技术生成

对于一些背景知识 - 这个问题涉及在单个小型EC2实例上运行的项目,并且即将迁移到中型项目 . 主要组件是Django,MySQL和大量用python和java编写的自定义分析工具,这些工具都是繁重的工作 . 同一台机器也在运行Apache .

数据模型如下所示 - 大量实时数据来自各种网络传感器,理想情况下,我想 Build 一个长轮询方法,而不是每15分钟进行一次当前轮询(限制为计算统计数据并写入数据库本身) . 一旦数据进入,我将原始版本存储在MySQL中,让分析工具在这些数据上松散,并将统计信息存储在另外几个表中 . 所有这些都是使用Django呈现的 .

我需要的关系功能 -

排序[Cassandra API中的SliceRange似乎令人满意]

分组依据

多个表之间的多关系[Cassandra SuperColumns似乎对一对多表现良好]

对此,Sphinx给了我一个很好的全文引擎,所以这也是必要的 . [在Cassandra上,Lucandra项目似乎满足了这种需求]

我的主要问题是数据读取非常慢(并且写入也不是很热) . 我现在不想在它上面投入大量资金和硬件,而且我更喜欢随着时间的推移可以轻松扩展的东西 . 在这种意义上(或便宜),纵向扩展MySQL并非易事 .

所以基本上,在阅读了很多关于NOSQL并尝试了像MongoDB,Cassandra和Voldemort这样的东西之后,我的问题是,

在中型EC2实例上, would I gain any benefits in reads/writes by shifting to something like Cassandra ? This article(pdf)肯定似乎暗示了这一点 . 目前,我会说每分钟几百次写入是常态 . 对于读取 - 由于数据每5分钟左右更改一次,因此缓存失效必须非常快 . 在某些时候,它应该能够处理大量并发用户 . 即使创建了索引,MySQL在大型表上进行某些连接时,应用程序性能也会被杀死 - 大约32k行的内容需要超过一分钟才能呈现 . (这可能是EC2虚拟化I / O的工件) . 表的大小约为4-5百万行,并且大约有5个这样的表 .

鉴于CAP定理和最终一致性,每个人都在谈论在多个节点上使用Cassandra . 但是,对于刚刚开始增长的项目, does it make sense to deploy a one node cassandra server ?有什么警告吗?例如,它可以取代MySQL作为Django的后端吗? [这是推荐的吗?]

如果我转移,我猜我将不得不重写部分应用程序以执行更多“administrivia”,因为我必须执行多次查找才能获取行 .

Would it make any sense to just use MySQL as a key value store 而不是关系引擎,并与之相伴?这样我可以利用大量可用的稳定API,以及稳定的引擎(并根据需要使用关系) . (Brett Taylor在Friendfeed上的帖子 - http://bret.appspot.com/entry/how-friendfeed-uses-mysql)

任何转变的人的见解将不胜感激!

谢谢 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值