免费数据仓库——Infobright、Hadoop/Hive 还是啥?
Posted
技术标签:
【中文标题】免费数据仓库——Infobright、Hadoop/Hive 还是啥?【英文标题】:Free data warehouse - Infobright, Hadoop/Hive or what?免费数据仓库——Infobright、Hadoop/Hive 还是什么? 【发布时间】:2010-03-11 07:55:35 【问题描述】:我需要存储大量的小数据对象(每月数百万行)。一旦他们被保存,他们就不会改变。我需要:
安全存放 使用它们进行分析(主要是面向时间的) 偶尔检索一些原始数据 如果它可以与 JasperReports 或 BIRT 一起使用就好了我的第一枪是 Infobright 社区 - 只是 mysql 的一个面向列的只读存储机制
另一方面,人们说 NoSQL 方法可能会更好。 Hadoop+Hive 看起来很有希望,但文档看起来很差,版本号小于 1.0 。
我听说过 Hypertable、Pentaho、MongoDB ....
你有什么建议吗?
(是的,我在这里找到了一些主题,但那是一两年前的事了)
编辑: 其他解决方案:MonetDB、InfiniDB、LucidDB - 你怎么看?
【问题讨论】:
版本号不重要。 HDFS/Hadoop 工作得很好——但只有当您有多个节点用于数据和分析时,它们才有意义。 如果你想快速入门,我推荐使用 pentaho 和 pentaho 支持的数据库。我认为下面的答案更侧重于数据访问,但在数据仓库开发中,工具也很重要。 @Piotr :这是一个两年前没有答案的问题。我需要一个与您的规格几乎相同的解决方案。你最后决定用什么? 相同,但就我而言,我正在寻找一种将 monetDB 用作数据库的方法。当时我也在尝试 memSQL。查看我的问题(现在没有答案)***.com/questions/27781178/… 【参考方案1】:我在这里遇到同样的问题并进行了研究; BI 的两种存储类型:
面向列。免费且知名:monetDB、LucidDb、Infobright。无限数据库 分布式:hTable、Cassandra(理论上也是面向列的) 面向文档/MongoDb、CouchDB答案取决于你真正需要什么:
如果一次加载数百万行(大约批处理),InfiniDB 或其他面向列的 DB 是最好的;它们具有出色的性能并且是“面向 BI”的。 http://www.d1solutions.ch/papers/d1_2010_hauenstein_real_life_performance_database.pdf 而且它们不需要设置“节点”、“分片”和分布式/“NoSQL”数据库附带的其他东西。http://www.mysqlperformanceblog.com/2010/01/07/star-schema-bechmark-infobright-infinidb-and-luciddb/
如果行是实时添加的,那么面向列的 DB 是错误的。您可以选择两个有两个单独的数据库(这是我的选择:一个 noSQL 用于由前端实际提供统计数据,以及实时统计数据。另一个面向 BI 的 DB 列)。或者转向混合面向列(用于输出请求)和分布(用于写入)的东西/比如 Cassandra。面向文档的 DB 不适合 BI,它们更适用于需要频繁访问特定行的 CRM/CMS 问题
至于类别内的确切选择,我还没有决定。分布式的 Cassandra 和用于 CODB 的 Monet 或 InfiniDB 是领导者。据报道,莫奈在加载非常大的表时遇到问题,因为它在内存中运行索引。
【讨论】:
【参考方案2】:您也可以考虑使用 GridSQL。即使对于单个服务器,您也可以创建多个逻辑“节点”以在处理查询时利用多个核心。
GridSQL 使用 PostgreSQL,因此您还可以利用将表分区为子表来更快地评估查询。您提到数据是面向时间的,因此这将是创建子表的理想选择。
【讨论】:
只是补充一下,是的,我为 EnterpriseDB 工作,它赞助了 GridSQL。 GridSQL 最近好像死了,开发人员搬到了 Stado。【参考方案3】:如果您正在寻找与报告工具的兼容性,那么基于 MySQL 的工具可能是您的最佳选择。至于什么对你有用,Infobright 可能有用。还有其他几种解决方案,但是您可能还想查看普通的 MySQL 和存档表。每条记录都经过压缩和存储,IIRC 专为您的工作负载类型而设计,但我认为 Infobright 应该得到更好的压缩。我也没有真正使用过,所以我不确定哪个最适合你。
至于键值存储(例如 NoSQL),是的,它们也可以工作,并且有很多替代方案。我知道 CouchDB 有“视图”,但我没有机会使用任何视图,所以我不知道它们中的任何一个的效果如何。
我对您的数据集唯一关心的是,既然您提到了时间,您可能希望确保您使用的任何解决方案都允许您将数据存档到某个时间之后。仅将 N 个月的数据保持在线并归档其余数据是一种常见的数据仓库实践。这就是在 RDBMS 中实现的分区非常有用的地方。
【讨论】:
以上是关于免费数据仓库——Infobright、Hadoop/Hive 还是啥?的主要内容,如果未能解决你的问题,请参考以下文章