【发布时间】:2014-09-17 02:59:34
【问题描述】:
我正在处理事件分析,我使用 hadoop 处理日志并将一些结果存储在 Mysql 中。由于日志每天都在不断出现,因此由于可扩展性问题,这现在不起作用。
我们需要显示每年、每月、每周、每天、每小时的统计数据以及过滤功能
我们的样本可以增长到 10 万用户,每个用户每小时使用 20 个网站
100,000(用户)* 20(唯一网站)* 2(位置)* 24(小时)= 96,000,000(每天最多 9600 万条记录)
我们的表格看起来像
event_src_id、时间、用户、网站、位置、一些统计数据
一些查询示例是
1) select website, sum(stats), count(distinct(user_id)) from table group by website;
2) select website, sum(stats), count(distinct(user_id)) from table where YEAR(Time) = 2009 group by website, MONTH(Time);
3) select website, sum(stats), count(distinct(user_id)) from table group by website where event_src_id=XXXXXXXXXXX;
4) select website, sum(stats), count(distinct(user_id)) from table group by website where time > 1 jan 2014 and time <=31 jan 2014;
5) select website, location, sum(stats), count(distinct(user_id)) from table group by website, location;
6) select website, sum(stats) as stats_val from table group by website order by stats_val desc limit 10;
select location, sum(stats) as stats_val from table group by location order by stats_val desc limit 10;
7) delete from table where event_src_id=XXXXXXXXXXX; (may delete all 96M records)
我尝试了 Hadoop 弹性搜索,它似乎可以修复插入部分,我更担心阅读部分。 聚合框架似乎给了一些希望,但我无法按照查询一工作。如何同时分组和求和和区分? 我如何才能最好地将 Elasticsearch 与 Hadoop 结合使用,并为基于 OLAP 的查询提供给定的可扩展性和性能。 任何帮助将不胜感激。
【问题讨论】:
标签: hadoop elasticsearch aggregate olap-cube