google analytics 的高级细分功能,技术上的实现思路是啥样的

如果是分析数据,不是简单地看数据,那么标准报表是远远不够的。分析可以没有标准报表,但不能没有细节的多维数据集,而标准报表可以通过从细节多维数据集汇总得出。简单的说就是Google在底层存储了一个非常大的多维交叉的数据立方体(Data Cube),保存原始的细节维度和标准统计量,然后基于原始的维和度量进行各类汇总,得到标准报表,同时支持高级细分、自定义报表、高级过滤器等。多维数据模型是数据仓库的基础数据模型,面向主题,可以建多个主题的多维数据集,组成数据集市,供数据统计和数据分析的应用。至于对于如此大的数据量的处理,这个本身就是Google的优势,Google的分布式数据处理能力估计没有存在出其右的公司,所以把握好底层数据模型的设计结合一些预计算(Precompute)的处理,保证GA报表的灵活数据处理是完全没有问题的。
■网友
业务上,细分的基本单位是访问,筛选出符合条件的访问,然后重新计算。技术上,主要还是利用了google强大的BigTable,MapReduce等基础平台的计算能力,至于如何更好的优化,外部的人确实难以得知。其实也可以换一个角度想,如果是基于数据库,非大型MapReduce的方式,应该如何实现?我想到的,对于细分的计算,其实和算每天的数据差别不是太大,可以理解为都是先筛选,再计算。想提高效率的话,可以在筛选这块做优化,看筛选条件是基于一个访问的属性(如:新/老),还是基于一个访问里的子信息(如:访问过指定的页面,指定的关键字),前者会很快,后者要慢一些,需要额外处理。


    推荐阅读