作为背景,这个问题涉及一个运行在单个小EC2实例上的项目,并且即将迁移到一个中型实例。主要组件是Django、MySQL和大量用python和java编写的自定义分析工具,它们完成了繁重的工作。同一台机器也在运行Apache。
数据模型如下所示--大量实时数据来自各种网络传感器,理想情况下,我希望建立一种长轮询方法,而不是目前每15分钟一次的轮询(计算统计数据和写入数据库本身的限制)。一旦数据输入,我就将原始版本存储在MySQL中,让分析工具在这些数据上松开,并将统计信息存储在另外几个表中。所有这些都是使用Django呈现的。
我需要的关系特性-
我的主要问题是数据读取非常慢(而且写入也没有那么热)。我现在不想花很多钱和硬件在上面,我更喜欢能随时间轻松扩展的东西。垂直缩放MySQL在这个意义上并不简单(或者说很便宜)。
所以,从本质上讲,在阅读了大量关于NOSQL的文章并对MongoDB、Cassandra和Voldemort进行了实验之后,我的问题是,
任何从那些做过转变的人的洞察力都是非常感谢的!
谢谢。
发布于 2010-02-25 14:37:30
Cassandra和今天可用的其他分布式数据库并不提供您习惯于从sql中获得的那种即席查询支持。这是因为您不能在性能上使用joins分发查询,所以重点是去规范化。
不过,Cassandra0.6(测试版明天正式发布,但如果您不耐烦的话,您可以自己从0.6分支构建)支持Hadoop /,这听起来很适合您。
Cassandra为无痛地添加新节点提供了极好的支持,即使是在初始的一组节点中也是如此。
也就是说,在几百次写作/分钟内,您将在很长很长一段时间内都可以使用mysql。Cassandra在作为键/值存储(更好,键/列家族)方面要好得多,但是MySQL在作为关系数据库方面要好得多。:)
还没有django对Cassandra (或其他nosql数据库)的支持。他们正在讨论为1.2之后的下一个版本做些什么,但基于与pycon的django开发人员的对话,还没有人真正确定这会是什么样子。
发布于 2011-05-06 01:25:44
如果您是关系数据库开发人员(就像我一样),我建议/指出:
这些事情说明,我强烈建议在卡桑德拉建造一些东西。如果你和我一样,那么这样做会挑战你对数据存储的理解,让你重新思考一个关系型数据库--适合所有情况的前景,而我甚至没有意识到这一点。
我发现的一些好资源包括:
发布于 2013-01-11 13:36:58
Django-cassandra是一个早期的测试版。而且Django没有创建非sql数据库。Django ORM中的键基于SQL (Django建议使用PostgreSQL)。如果您只需要使用no-sql (您可以在同一个应用程序中混合使用sql和no-sql ),则需要冒险地使用no-sql ORM (它比传统的SQL orm或直接使用No-SQL存储的速度要慢得多)。否则,您需要完全重写django ORM。但在这种情况下我不能推测为什么你需要Django。也许你还能用点别的,比如龙卷风?
https://stackoverflow.com/questions/2332113
复制相似问题