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


     小结:

    1、

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

    2、

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

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

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

    卢荣斌 Go中国 2017-08-31

  • 相关阅读:
    [BZOJ 2457] 双端队列 (思维)
    字符串划分 [Bitset 字符串Dp]
    POJ2947 Widget Factory [高斯消元]
    数字串 [分治+哈希+扩展KMP]
    POJ3590 The shuffle Problem [置换+dp]
    P1970 花匠 [权值线段树优化dp, NOIp2003, Y]
    UVA306 Cipher[循环节]
    POJ3270 Cow Sorting [置换]
    POJ 3128 Leonardo's Notebook[置换群幂相关]
    VMware 11 设置U盘启动,总是找不到physicalDrive1
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10854510.html
Copyright © 2020-2023  润新知