首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >200亿行/月- Hbase / Hive / Greenplum /什么?

200亿行/月- Hbase / Hive / Greenplum /什么?
EN

Stack Overflow用户
提问于 2008-12-09 21:05:14
回答 7查看 20K关注 0票数 31

我想用你的智慧为数据仓库系统找到正确的解决方案。以下是一些更好地理解问题的细节:

数据被组织成一个星型模式结构,具有一个大的事实和15维。

每月20B事实行

包含100行的10个维度(某种层次结构)

5维数千行

2维~200 K行

2大尺寸,50m-100米排

两个典型的查询对此DB运行。

顶级成员在dimq:

代码语言:javascript
复制
select    top X dimq, count(id) 
from      fact 
where     dim1 = x and dim2 = y and dim3 = z 
group by  dimq 
order by  count(id) desc

针对元组的度量:

代码语言:javascript
复制
select    count(distinct dis1), count (distinct dis2), count(dim1), count(dim2),...
from      fact 
where     dim1 = x and dim2 = y and dim3 = z 

问题:

  1. 执行此类查询的最佳平台是什么?
  2. 需要什么样的硬件
  3. 它可以托管在哪里(EC2?)

(目前请忽略进口和装载问题)

Tnx,

哈盖。

EN

回答 7

Stack Overflow用户

发布于 2008-12-09 21:49:01

我再强调也不为过了:用现成的报告工具得到一些很好的东西。

每月有200亿行使您处于VLDB领域,因此需要分区。基数较低的维度也意味着位图索引将是性能的胜利。

  • 忘记云系统(蜂巢Hbase),直到它们拥有成熟的SQL支持。对于数据仓库应用程序,您需要使用常规报告工具的东西。否则,你会发现自己永远陷入了编写和维护临时报告程序的泥潭中.
  • 使用更传统的数据库管理系统(如Oracle ),数据卷是可管理的--我知道欧洲主要电信公司每天将600 an的数据加载到甲骨文数据库中。在所有其他条件相同的情况下,这比您的数据量大两个数量级,所以共享磁盘体系结构仍然有足够的空间供您使用。共享-什么都没有体系结构(如内特扎特拉塔 )可能会更快,但这些卷还没有达到常规共享磁盘系统之外的水平。不过,请记住,这些系统都相当昂贵。
  • 还请记住,MapReduce是不是一种有效的查询选择算法。从根本上讲,它是分配蛮力计算的一种机制。格林梅利确实有一个MapReduce后端,但是一个有目的的共享零引擎将是更高效的,并得到更多的工作做更少的硬件。

我对此的看法是,Teradata或Netezza可能是这份工作的理想工具,但肯定是最昂贵的。甲骨文Sybase智商甚至SQL Server也会处理所涉及的数据卷,但速度会慢一些--它们是共享磁盘体系结构,但仍然可以管理这类数据卷。有关本帖和Server中与VLDB相关的特性,请参阅Exadata存储平台,同时请记住,Oracle刚刚引入了Exadata存储平台

我的备份包容量计划建议每个月可能有3-5 TB,包括Oracle或Server的索引。虽然索引页在Oracle上有16字节的ROWID,而在Server上有6字节的页面引用,但在具有位图索引的oracle上可能要少一些。

Sybase IQ广泛使用位图索引,并对数据仓库查询进行了优化。虽然是共享磁盘体系结构,但对于这种类型的查询(IIRC -它是最初的面向列的体系结构)来说,它是非常有效的。这可能比Oracle或Server更好,因为它专门用于这类工作。

格林梅可能是一个更便宜的选择,但我从来没有真正使用过它,所以我不能评论它在实践中的效果如何。

如果您有10个维度,只有几百行,可以考虑将它们合并到一个垃圾尺寸中,这将通过将10个键合并为一个键来缩小事实表。您仍然可以在垃圾维度上实现层次结构,这将使事实表的大小减少1/2或更多,并通过索引消除大量磁盘使用。

我强烈建议您使用一些可以很好地使用合理的跨部门报告工具的工具。这意味着SQL前端。像水晶报告这样的商业系统允许拥有一套更容易获得的SQL技能的人进行报告和分析。开源世界也产生了伯尔特贾斯珀报道彭塔霍。。Hive或HBase让您参与了构建自定义前端的工作,除非您愿意在接下来的5年中用Python编写自定义报表格式化程序,否则您确实不需要这样做。

最后,将其保存在某个您可以轻松从生产系统获得快速数据提要的地方。这可能意味着您自己的硬件在您自己的数据中心。这个系统将是I/O绑定的,它对大量的数据进行简单的处理。这意味着您需要具有快速磁盘子系统的机器。云提供商倾向于不支持这类硬件,因为它比这些设备传统上使用的一次性1U盒贵一个数量级。快速磁盘I/O不是云体系结构的一种优势。

票数 56
EN

Stack Overflow用户

发布于 2008-12-20 00:50:31

我在维蒂卡上取得了很大的成功。我目前每天装载2亿到10亿行,平均每月大约90亿行--尽管我一个月的工作量高达170亿行。我有接近21个维度,查询运行得非常快。当我们根本没有时间窗口来做数据发布时,我们就从旧的系统中前进了。

我们对不同的解决方案进行了非常详尽的试验和研究--并且实际观察了市场上的一切。虽然Teradata和Netezza都适合我们,但它们对我们来说太贵了。Vertica在价格/性能比上都击败了他们。顺便说一句,它是一个柱状数据库。

我们现在有大约80个用户,预计到明年年底,当我们开始全面推出时,它将增长到900左右。

我们正在为报表广泛使用ASP.NET/dundas/reporting服务。它对第三方报告解决方案也很好--尽管我们还没有尝试过。

顺便问一下,你打算用什么来做数据发布?我们正在使用信息a,并且对它非常满意。SSIS把我们逼上了墙。

票数 9
EN

Stack Overflow用户

发布于 2012-10-01 09:23:33

使用HBase和jasperserver报告插件,可以创建体面的报告。可以在HBase中创建低延迟OLAP。这将与SQL一样工作。Jasperserver HBase插件提供Hbase查询语言,这是一个扩展的Hbase扫描命令。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/354231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档