zoukankan      html  css  js  c++  java
  • 作品排行榜设计过程

    近期需要做一个作品排行榜的功能,统计特定时间段内各个作品的历史信息,方便分析调整产品方向。这个需求有一个显著的特点就是实时要求不是很高。

    分析

    在做这件事前首先考虑是不是有现成的工具可以用呢?
    目前做大数据分析比较常用的是

    • Hadoop:做数据的批处理
    • Storm:做数据的实时处理

    这两个工具都可以实现我们的需求,storm更符合后面对实时数据分析的要求。但是问题来了:我们团队对这方面没有积累,要使用这两个工具完成需要更多的时间,并且在现阶段没有太大的必要。

    即然决定要自己写了,那就需要考虑用什么方式实现了?
    做这样的统计有两种实现

    • 实时(同步):在所有产生记录的地方添加统计的代码
    • 定时(异步):定时查询数据记录产生排行榜结果

    以现在的需求来说定时的方式会更好些,实时会对数据库产生额外的负担和对处理流程产生依赖。

    实现

    关于定时的实现方式有三个方案。

    1.全部生成

    在定时统计某个时间段内所有数据。

    • 优点:功能完成时间短,统计数据无遗漏
    • 缺点:效率低,可能对服务器产生冲击

    2.增量累加

    定时生成定时的时间段内的数据,然后根据不同的用途用生

    成特定时间段内的数据。

    • 优点:效率较高,能平滑对服务器的影响
    • 缺点:需要保存中间变量,占用数据库

    3.部分增量累加

    定时生成定时的时间段内的数据,然后根据不同的用途累加增量数据生成特定时间段内的数据

    • 优点:效率高,能平滑对服务器的影响
    • 缺点:定制化,可扩展性不强

    总体来说,使用增量计算的方式,调整计算增量的时间间隔粒度能够较好地实现我们的需求。

  • 相关阅读:
    DEDECMS里面DEDE函数解析
    dede数据库类使用方法 $dsql
    DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
    织梦DedeCms网站更换域名后文章图片路径批量修改
    DSP using MATLAB 示例 Example3.12
    DSP using MATLAB 示例 Example3.11
    DSP using MATLAB 示例 Example3.10
    DSP using MATLAB 示例Example3.9
    DSP using MATLAB 示例Example3.8
    DSP using MATLAB 示例Example3.7
  • 原文地址:https://www.cnblogs.com/shanpow/p/4134063.html
Copyright © 2011-2022 走看看