美图数据统计分析平台架构演进 当时我一个人,一天能够做四五个统计需求,而抽象后一天从了解需求开始到实现大概能做七八个统计需求,整体效率有不错的提升。

 小结:

1、

一个有追求的程序员的话,可能不会甘于每天做重复的工作。因为在平时接触业务与实现过程中,深有体会统计业务逻辑的流程基本上是一致的,所以考虑抽象出这样一个相对通用的业务处理的流程,基本的流程是从数据源Query出数据,然后做一些业务方面的聚合或者过滤,最终把数据存储到DB。那在代码实现层面做了一层抽象,抽象一个统计的组件,包含Query、Aggregator以及DBStore,然后分别有一些不同Query和Store场景的实现。当做了一层这样的抽象以后,相比于前面的方案,生产力还是得到了比较大的提升。当时我一个人,一天能够做四五个统计需求,而抽象后一天从了解需求开始到实现大概能做七八个统计需求,整体效率有不错的提升。

2、

基于上面的痛点,我们来介绍一下我们是如何解决这些事情的。我们考虑去做一个平台,让业务在我们这个平台去使用,我们提供服务就好。图 4 是我们当时做平台化的大概思路,比如左边这个业务方有非常多的报表数据需求,也可能有App的数据场景、商业广告等的数据需求,我们希望能够提供这样的一个平台,业务的数据需求方在这个平台上面配置他们想要的数据指标,而这个平台负责数据的计算、存储,以及最终吐出相应的数据给数据应用方

更进一步,在做这个平台时,我们可能需要考虑以下几个比较重要的点:第一,我们可能需要对统计任务有一个比较清晰的元数据描述,可以描述出这些统计任务的计算方式是什么样子,算是什么。第二是这个统计任务的数据源来自于哪里,以及数据需要存储在什么地方更合适业务查询。第三个是需要有一个调度中心来统一调度所有统计任务的执行。第四要确保任务的最终的正确执行。

https://mp.weixin.qq.com/s/9j6HF1OM-f1dNzGnMzNshw

卢荣斌 Go中国 2017-08-31

猜你喜欢

转载自www.cnblogs.com/yuanjiangw/p/10854510.html