说明
本篇博客整理自参考内容,完整内容请查看原文章;
技术选型
MOLAP
与Druid相类似的实时数据分析工具,还有Linkedln的Pinot和eBay的Kylin,它们都是基于Java开发的。Druid相对比较轻量级,用的人也多,毕竟开发时间久一些,问题也少一些。
Pinot,Linkedln开发的类似于Druid的多维数据分析平台,它的功能实际上要比Druid强大一些,但因为去年才刚刚开始开源,用的人比较少。大家有兴趣的可以去试试。它的整个代码量也比较大,架构与Druid也非常相似,但它引入了更好的一种协调管理器,更多的是一种企业级别的设计,更加完整、规范。
Kylin是eBay的开源分析工具,它的优点就是很快,特别适合每天定时报表,缺点也很明显,就是随机查询很慢。它还有一个好处就是支持标准的SQL,与Tableau等BI工具集成,可以直接连到eBay的这个Kylin工具。而且,Kylin在Fast Cubing上做了一些预处理,反应较快。
KUDU是去年十月份Apache开源的一个工具,与小米联合发布。它的定位是什么呢?大家都知道Druid是一个批处理、高容量的查询系统,响应时间很慢,而HBase可以支持快速的响应时间,但它主要是一个写少读多的情况。
KUDU,走在这两个极端的中间,它既能够保证大吞吐,又可以保证低延时。小米从去年十月份开始使用KUDU,主要用于一些服务质量监控、问题排查,总体感觉还不错。小米也是KUDU现在最大的一个用户,因为我们很多时候需要考虑HBase和Druid综合的一些优点,所以KUDU也是小米目前实验的一个工具。
设计模式
小米的广告系统主要是对每个广告的请求、点击、展现做一些分析,一条线是通过Kafka→Druid→数据可视化显示,另外一条路就是完整数据落盘到HDFS,每天晚上通过数据重放去纠正Druid里的一些数据,覆盖Druid的准确数据,最后做可视化。
参考