全国服务热线:028-82000280
  
手机:18980476739
网站地图
您的位置:主页 > 企业新闻 >

公众号开发和运营,如何查看文章的实时数据

来源: http://dx2008.net/news/20190909227.html   作者:多享科技    时间:2019-09-09
公众号开发和运营,如何查看文章的实时数据?比如我写了这篇文章发布了,我想随时查看这篇文章的数据分析,阅读次数、人数、阅读来源,还有转发收藏之类的数据指标。但是,想法丰满,现实骨干,想而不可得,我就很郁闷。腾讯这么牛咋这事都做不了呢?
公众号开发
因为数据量太大了。你看看自己微信里的公众号信息流,每天各种文章,包括我这篇,就像流水一样从你眼前划过,你眼睛都不带眨一下,偶尔看到 MacTalk 的文章,会点一下,大部分时间,文章都会匆匆流过,不发出任何声响。但你依然会觉得,文章太多了,虽然就没仔细读过几篇。微信也觉得大,而计算和分析这些海量的阅读和分享数据,需要耗费大量的时间。需要离线去做,叫离线计算。
拿 Hadoop 技术框架举例,根据数据量的大小,批处理 job 的执行时间往往需要几分钟到几个小时,一般数据的处理是按照时间区间处理的,比如在每天凌晨启动任务处理昨天的数据,等所有的 Job 执行完成,有效数据会通过相关的数据链路被聚合到关系数据库,比如 MySQL 中,公众号作者或者数据产品经理就可以在控制台查看昨天及以前的所有数据了。这是离线计算,所以公众号作者都是在第二天才能看到前一天的数据。有时候看到一篇文章发布后数据非常离谱,我会觉得有人在给这篇文章刷量,但是并没有证据,只能耐着性子等待明天的数据分析结果。
但离线计算不能满足所有的业务场景啊。很多时候,即使是海量数据,我们也希望即时去查看一些数据指标。比如工程师们上午9点上线了一款产品,或推出了一个新功能,产品经理迫切希望知道这个新功能的活跃程度和转化率等数据,当他们过来找你的时候,你翘着二郎腿露出了神秘的微笑:等明天早晨就可以看了。这时你很容易被愤怒的产品经理、BD 和业务工程师联合起来打死。为了避免这样的惨剧发生,实时流计算应运而生,或者叫流式计算。
这样的场景其实挺多的,比如 Google 的 GA 会给你提供实时数据指标,公众号也会实时显示一些数据,比如阅读数等等。补充一下,无论是离线计算还是实时计算,对数据的要求都是「大」,几百万甚至千万级别的数据记录都不需要这些技术,直接放数据库或者 Redis 里就挺好的,每个查询都无比实时。
流式计算有两个特点,一个是实时,随时可以看数据;另一个是流,流水不争,绵延不绝,断无可断。这就像我我们技术总监大师分配任务,我说大师你把 A 做一下,他说,好的 A 已经做完了。我说,你小子行那接着做 B 吧,咔,B 也做完了,然后我就源源不断的把实时任务分配给海大师,海大师兵来将挡水来土屯,来一个处理一个完成的滴水不漏,这叫人肉实时流计算。有了这样的需求和产品定义,自然会有相关的技术实现。目前老牌实时流计算框架是 Storm,后起之秀有 Spark Streaming,Samza、Flink 等等。我们以前用过 Storm 这样的技术。
从数据和事件角度,流式计算需要一套完整的解决方案,比如 Flume + Kafka + Storm。Flume 是一个分布式、高可用的海量数据聚合的系统,用于收集数据,进行简单处理后把数据推送到数据队列处理系统,比如 Kafka。Kafka 是一种分布式的、基于发布/订阅模式的消息系统,与遵循 AMQP 标准的 RabbitMQ 不同,Kafka 是一个更通用的消息系统,「以时间复杂度为O(1)的方式提供消息持久化能力,对 TB 级别的数据也能保证常数时间复杂度的访问性能」,如果你对这句话似懂非懂,可以去极客时间学习一下 Kafka 专栏。现在只要知道 Kafka 在大数据消息处理领域处于暂时领先的地位就可以了。它负责接收消息,然后再把消息传给 Storm,对于 Storm 来说,Kafka 就是一个永不停歇的数据源。
      

相关内容