如何处理网站数据分析?

理由
举报 取消

情景:运营一直要我拿线上环境数据库中的数据,不断提出诸如『近1个月年用户充值情况报表』『某段时间内产品某些特点对于用户消费影响』等等很多更加复杂的查询需求,然后我就不断的写SQL查,问题是如果直接对线上数据库进行这种分析,会导致生产环境数据库卡死,影响业务。说实话,这种查询也不是非常紧急的,更郁闷的是现在每提个这类需求还要我一个程序员把数据做成报表形式的图形网页(做成 饼图、玫瑰图、折线图等等),方便运营等查看,我快受不了了。我应该怎么做?哪里不对?

2018年1月8日 6 条回复 1124 次浏览

发起人:Robot 管理大师

回复 ( 6 )

  1. tjefferson
    理由
    举报 取消

    我理解下题主目前的麻烦。

    第一是,数据需求一提出来就得查线上数据库,而这样会影响性能,影响正常业务。

    第二是,运营提的数据需求多且复杂,你已经有些烦了,作为一名程序员,你觉得不是自己应该做的事。

    第一个问题,可以通过建一个从库来解决吧,每天将前一天的数据导进来。

    第二个问题,不知你们团队有无专门做数据分析方面的运营人员,我觉得使用SQL做数据提取和之后的数据可视化,都是数据分析人员的本职工作。如果你们团队没有这方面的人员,那么可否考虑做一个比较方便查询数据和导出数据的接口呢,刚开始不用做太复杂,慢慢迭代优化改进即可!

    本人不是程序员,有说的不对的地方,还请多多包涵,可以直接给我指出,谢谢~

  2. 幂恩
    理由
    举报 取消

    下面这个思路现在是我们现在用来分析log的方法,log会有好多种不同的类型和不同的信息,但是之间的关系型并不强,只需要能统一到一起即可,所以未必完全适合楼主的需求,请自行斟酌。

    ===更新下====

    提供个简单的思路。

    一、准备数据

    把所有数据备份到elasticsearch里,这一步取决于你使用什么类型的语言,自己研究即可。

    二、拆分查询条件

    首先对查询条件分类:

    – 排序(sort)

    – 精确匹配(filter)

    – 模糊匹配(query)

    – 聚集(aggregation)

    然后开始在你的代码里逐一实现这些,下面贴一个ruby的实现描述一下思路:

    class BaseData 
      def self.search(params={})  
        new(params).search
      end
    
    def search
      search_criteria = [
        filter_criteria,
        aggregations_criteria,
        sort_criteria,
        query_criteria
      ].compact.reduce(:merge) || {}
    
      repository.search search_criteria
    end
    
    def filter_criteria
      raise 'You should override this method.'
    end
    
    def sort_criteria
      raise 'You should override this method.'
    end
    
    def aggregations_criteria
      raise 'You should override this method.'
    end
    
    def query_criteria
      raise 'You should override this method.'
    end
    
    def repository # 这个方法实现是拿到查询的type 例如user可能就是user对应的es type地址
      raise 'You should override this method.'
    end
    
  3. 郭永安
    理由
    举报 取消

    我是做营销的,这样的数据还是很重要的,而且经常有新的变化的,所以你不方便处理,

    可以用备用数据库查

    你可以只给原始数据,数据处理 图表你让他们做,

  4. 鲁小夫
    理由
    举报 取消

    用线上数据库来跑业务报表那是作死,既不安全(程序员操作线上数据库),也不高效。

    写一个可视化查询工具啊,程序员连这点思维都没有吗。

    当年我作为一个实习生,就是吭哧吭哧把公司的所有业务指标和查询条件凑一块,写了一个可视化的 HiveQL 查询工具,业务人员点点鼠标,选好指标、条件,点一下查询,工具自动生成 QL 自动创建 task ,操作员去喝杯咖啡,回来就能看到结果了,线图饼图,想怎么看怎么看,还能导出数据自己去做分析。

  5. 郑扬
    理由
    举报 取消

    每天半夜开始,用kettle,吭哧吭哧拖数据,将业务库的要用到数据拖到另一个地方,管它叫数据仓库,然后贱贱滴说,我们不生产数据,我们只是数据滴搬运工

  6. 朱涵俊
    理由
    举报 取消

    搞个专门的备份服务器

我来回答

Captcha 点击图片更换验证码