之前提到过,大数据分析(BDA)包括大数据的采集、存储、分析、展示。而其中分析是BDA的关键。说到分析,可以分为历史分析和实时分析。对于历史分析,对典型的就是利用map-reduce技术进行数据查询、统计;而对于实时分析,最重要的就是实时计算/持续计算技术,我以前也提到过,包括流数据处理、CEP等等。

其实,对于历史分析,除了上面提及的基于map-reduce或者批处理技术的查询统计分析外,还有一类很重要的分析,可以叫做交互式分析,形如传统BI领域的一种分析,强调快速的数据分析,典型的应用就是数据钻取。例如,在BI中,可以对于数据进行切片和多粒度的聚合,从而通过多维分析技术实现数据的钻取。

针对TB级的大数据,如何进行钻取和交互式分析?这自然不容易,Apache近期正在孵化一个这样的项目,叫做Drill。这个项目是受到了Google的Dremel而产生的。这两个项目分析的大数据对象就是基于Hadoop的。

交互式分析可以作为基于map-reduce技术的批处理分析的良好补充。在SIEM/安全管理平台系统中,这种交互式分析的use case还是很多的。一般的做法本质上其实跟Drill等也都差不多,就是去构建执行引擎,或者说去建构一些数据切片,并能够快速地串起来。当然,好的算法能够提升执行引擎的效率,这个就看各家的水平了。