寻找主要用于读取应用程序的数据库解决方案,查询3亿条记录

时间:2015-01-31 04:29:59

标签: mysql bigdata monetdb

寻找合适的数据库技术来有效查询300 mil记录表。表可能包含5-30列,大多数是tinyint + zip,state。用户可以发出任意查询,其中包含许多列的条件,并通过state或zip计数。数据集在某种意义上是静态的,数据会定期重新加载,并且没有插入,只需读取。

我已经尝试过InnoDB的Mysql(RDS)。由于大量的记录和查询的性质,我无法获得满意的表现。

尝试了MonetDB(柱状存储)并取得了非常好的结果,但似乎并没有被许多人使用,这引起了一些担忧。

要求响应时间足够快,以便用于分析的响应式Web UI。

我应该探索哪些其他技术?

3 个答案:

答案 0 :(得分:3)

我鼓励你尝试使用MonetDB,这取决于你的查询,但一般来说 - 它是一个列存储,你应该获得良好的性能(甚至超过300万的记录)。另外,您不需要手动创建索引等 - 它主要是自我优化的。 MonetDB还有Node.js driver/connector,可用于编写快速分析Web应用程序。还有流行的languages/frameworks连接器:Ruby,Python,Perl,PHP,Java(通过JDBC)。

不用担心,MonetDB正在积极开发中(免责声明:我实际上是开发人员),您可以在用户邮件列表上相对快速地获得答案。

答案 1 :(得分:0)

查看Google App Engine的Datastore。它们会自动使用索引优化您的查询,以便快速响应并使用Google,因此它们可以轻松地从零流量扩展到数百万次点击。

应用程序可以用Java或Python编写,使用您自己的框架或他们的。

答案 2 :(得分:-1)

尝试Cassandra。它现在被广泛使用(Facebook,Netflix和许多其他人)。

如果您希望使用基础数据库技术保持代码相对抽象,可以使用kundera JPA 2.0。

此外,本地使用Cassandra非常容易(用于调试和单元测试)。只需要这个class