OLAP可以在BigTable中完成吗?

时间:2009-09-14 21:59:29

标签: hadoop olap mapreduce hbase hive

过去,我曾经使用在MySQL上运行的OLAP多维数据集构建WebAnalytics。 现在我使用OLAP多维数据集的方式只是一个大表(好吧,它比那更智能地存储),其中每行基本上是一个测量或聚合的测量集。每个度量都有一堆维度(即哪个页面名称,用户名,ip等)和一堆值(即多少个综合浏览量,多少访问者等)。

在这样的表上运行的查询通常采用(meta-SQL)形式:

SELECT SUM(hits), SUM(bytes),
FROM MyCube
WHERE date='20090914' and pagename='Homepage' and browser!='googlebot'
GROUP BY hour

因此,您可以使用上述过滤器获取所选日期中每小时的总计。 一个障碍是这些立方体通常意味着全表扫描(各种原因),这意味着你可以制作这些东西的实际尺寸(在MiB中)。

我目前正在学习Hadoop等的来龙去脉。

在BigTable上运行上述查询作为mapreduce看起来很容易: 只需将'小时'作为关键,在地图中进行过滤,然后通过对值进行求和来减少。

你可以在“实时”(即通过用户界面和用户得到他们的答案尽快)而不是批处理模式的情况下,在BigTable类型的系统上运行如上所示(或至少具有相同输出)的查询?

如果没有;在BigTable / Hadoop / HBase / Hive等领域做这样的事情的适当技术是什么?

5 个答案:

答案 0 :(得分:9)

它甚至已经完成了(有点)。

LastFm的聚合/摘要引擎:http://github.com/zohmg/zohmg

谷歌搜索出现了一个谷歌代码项目“mroll”,但它没有任何东西,除了联系信息(没有代码,没有)。不过,可能还想与那个人联系,看看有什么事情发生。 http://code.google.com/p/mroll/

答案 1 :(得分:4)

我的回答与HBase有关,但同样适用于BigTable。

Urban Airship开源datacube,我认为这与你想要的很接近。在这里查看他们的presentation

Adob​​e还有一些关于如何使用HBase进行“低延迟OLAP”的演示文稿(herehere)。

答案 2 :(得分:4)

我们设法通过预先对SQL查询进行预处理并将其映射到适当的Hbase限定符来在HBase中创建低延迟OLAP。有关详细信息,请访问以下网站。

http://soumyajitswain.blogspot.in/2012/10/hbase-low-latency-olap.html

答案 3 :(得分:3)

如果您正在寻找表格扫描方法,您是否考虑过Google BigQuery? BigQuery在后端自动横向扩展,提供交互式响应。来自2012年Google I / O活动的Jordan Tigani举办了一场精彩的会议,解释了一些内部事件。

http://www.youtube.com/watch?v=QI8623HlYd4

它不是MapReduce,而是像你所描述的那样面向高速表扫描。

答案 4 :(得分:2)

Andrei Dragomir就Adobe如何使用M / R和HBase执行OLAP功能进行了有趣的讨论。

视频:http://www.youtube.com/watch?v=5U3EnfiKs44

幻灯片:http://hstack.org/hbasecon-low-latency-olap-with-hbase/