我在寻找一个后端解决方案的应用程序编写的红宝石在轨道上或merb同处理的数据与数十亿的记录。我有一种感觉,我应该去一个分布模型,并在那一刻我看着

HBaseHadoop

Couchdb

问题的西班牙电信公司用精解决方案,因为我看到它-ruby的支持是不是很强,而Couchdb没有达到1.0版本。

你有什么建议你用这么大量的数据?

数据需要而不是快速进口时的30-40mb一次,但进口的将来在大块。所以-95%时的数据将只读。

有帮助吗?

解决方案

根据实际数据的使用,MySQL或Postgres应该能够处理几十亿记录在正确的硬件。如果你有一个特别的大量请求,这两个数据库可以在多个服务器之间复制(复制和阅读很容易设置(相对于多个主/写信的复制).

大优势,利用一个数据库与轨道或merb同的是你获得所有的优秀的工具,支持访问这些类型的数据库。

我的建议是实际上分析你的数据,在几个这些系统,并把它从那里。

其他提示

还有一些不同的解决方案的人有用的。以我的经验这真的取决于使用模式相关的数据并不纯粹数量的行每表。

例如,"如何许多插入/更新每秒都在发生。" 这些问题将发挥到你决定什么样的后端数据库解决方案的你会选择。

拿谷歌例如:有没有真的存在一个存储/搜索解决方案,满足他们的需要,所以他们创造了他们自己的基础地图上/减少模型。

一个词警告有关HBase和其他项目的性质(不知道任何有关CouchDB-我 想想 这不是真的一个数据库,只是一个关键价值的储存):

  1. Hbase不调整速度;它的调整,为可伸缩性。如果反应的速度在所有的问题,进行一些概念证明,然后再提交这条道路。
  2. Hbase不支持联接。如果您使用的Email和具有多于一个相关的..嗯,你可以看看这是怎么回事。

蜂房项目,还建立在云计算进行安全评估,并支持加入;所以不会的猪(但它不是真正的sql)。1点适用于两个。他们都是为了大量的数据处理任务,不处理类型的你可能要做的轨道。

如果你希望的可扩展性对于网络的应用程序,基本上唯一的策略是分区的数据,并尽可能确保分区孤立(不需要谈的每一个其他)。这有点棘手轨,因为它假设默认情况下,有一个中央数据库。有可能已改进在这一方面因为我看着问题的大约一年半前。如果你能分区的数据,你可以扩展水平相当广泛。一个单一的MySQL机能够处理几百万排(PostgreSQL可能规模较大数量的行但是可能的工作有点慢).

另一个战略工作是具有主从设立的,在那里写的所有工作都是由主,并读共享的奴隶之间(以及可能的主机)。显然这已经是做得相当小心!假定高读写的比率,这可以扩展得很好。

如果您的组织有很深的口袋,检查出什么相比,AsterData,并Greenplum提供的。

后台将取决于数据和数据将如何进行访问。

但对于奥姆,我想最可能使用DataMapper和编写一个自定义的数据对象的适配器获得的任何后台你选择。

我不知道什么CouchDB不是在1.0有做到它。我建议做一些测试与其(就产生一个亿随机的文件),看看它是否会举行。我会说,它将尽管没有一个具体版本的编号。

CouchDB将帮助你有很多时候分区/分区数据和样,看来似乎可能适合项目--特别是如果数据格式可能会在将来改变(增加或删除字段),因为CouchDB数据库没有架构。

有很多优化CouchDB读取量的应用程序,以及,根据我的经验,是它真正的亮点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top