2010-03-11 66 views
5

我需要存储大量的小数据对象(每月数百万行)。一旦他们得救,他们就不会改变。我需要:免费数据仓库 - Infobright,Hadoop/Hive还是什么?

  • 将它们存储安全
  • 用它们来分析(主要是面向时间)
  • 检索某些原始数据偶尔
  • 这将是很好,如果可以用的JasperReports或BIRT使用

我的第一个镜头是Infobright的社区 - 只是一个立柱导向,只读存储机制对MySQL

另一方面,人们说NoSQL方法可能会更好。 Hadoop + Hive看上去很不错,但文档看起来很差,版本号小于1.0。

我听说Hypertable的,Pentaho的,MongoDB的....

你有什么建议?

(是的,我在这里找到了一些话题,但它是一年或两年以前)

编辑: 其他解决方案:MonetDB,InfiniDB,LucidDB - 你有什么感想?

+0

版本号并不重要。 HDFS/Hadoop工作得很好 - 但如果您有多个节点进行数据和分析,它们只会很有趣。 – Leonidas 2010-03-11 09:11:02

+0

如果你想快速入门,我建议使用pentaho和数据库pentaho支持。我认为下面的答案更侧重于数据访问,但在数据仓库开发中,工具也很重要。 – elprup 2012-08-15 06:57:37

+0

@Piotr:这是一个两岁的问题,没有答案。我需要一个与您的规格几乎相同的解决方案。最后你决定使用什么? – 2013-02-19 10:09:30

回答

0

如果您正在寻找与报告工具的兼容性,基于MySQL的东西可能是您的最佳选择。至于什么会为你工作,Infobright可能会工作。还有其他几种解决方案,但是您也可能需要查看普通的MySQL和Archive表。每条记录都经过压缩和存储,IIRC专为您的工作负载类型设计,但我认为Infobright应该可以获得更好的压缩效果。我还没有真正使用过,所以我不确定哪个最适合你。

至于键值存储(例如NoSQL),是的,它们也可以工作,并且有很多替代方案。我知道CouchDB有“意见”,但我没有机会使用任何工具,所以我不知道他们的工作有多好。

我只关心你的数据集,因为你提到的时间,你可能想要确保你使用的任何解决方案将允许你存档数据超过一定的时间。这是一种常见的数据仓库实践,仅保留N个月的数据在线并归档。这是在RDBMS中实施的分区,非常有用。

2

你也可以考虑GridSQL。即使对于单个服务器,也可以创建多个逻辑“节点”以在处理查询时使用多个核心。

GridSQL使用PostgreSQL,所以你也可以利用分区表的子表来更快地评估查询。你提到的数据是面向时间的,所以这将是创建子表的好选择。

+0

只需添加,是的,我为EnterpriseDB工作,谁赞助GridSQL。 – Mason 2010-03-17 22:53:14

+0

最近GridSQL死亡,开发人员转移到Stado。 – 2011-10-25 06:09:26

3

这里有同样的问题并做了研究; BI的两种类型的存储:

  • 列为导向。免费而闻名:monetDB,LucidDb,Infobright。InfiniDB
  • 分布式:hTable,卡桑德拉(也列在理论上为导向)
  • 面向文档/的MongoDB,CouchDB的

答案取决于你真正需要的:

http://www.mysqlperformanceblog.com/2010/01/07/star-schema-bechmark-infobright-infinidb-and-luciddb/

  • 如果行实时加入..然后面向列DB是坏的。你可以选择两个有两个独立的数据库(这是我的选择:一个用于实际提供统计信息的noSQL和实时统计数据,另一个用于BI的数据库列)。或者转向混合列导向(出局请求)和分发(写入)/像卡桑德拉的东西。

面向文档的DB不适合BI,他们是你需要一个特定的行

作为一个类别里面的确切选择频繁访问CRM/CMS问题更加有用,我仍然犹豫不决。分布式的Cassandra和CODB的Monet或InfiniDB是领导者。据报道,Monet在加载非常大的表格时遇到问题,因为它在内存中运行索引。