2019大数据产业峰会|阿里云郭华:从Flink看大数据实时变化
所以我们提了一种叫做实时索引的方案。实时索引就是刚才讲到流处理一般架构里面提到两点,第一点是系队列替换里面的存储,实时索引也是一样。第一步是把商品书数据库、销量统计库的增量发到消息队列里去了,存到MYSQL里也是可行的,MYSQL的Blog也是增加的,只要同步进去就OK了。第二部分是流计算并到消息队列,也就是说把所有信息都拼接起来,推送到索引里面去,这个过程是非常快的,可能是几秒时间,商家发布一款产品一两秒之内消费者就搜到了。 另外需要全量的索引过程,有两个系统,第一这个系统启动的时候已经存在了数据,不是增量的,需要全量导入一次。另外可能需要定期做数据校验,线上数据覆盖索引的数据。其实全量的可以用增量的逻辑,全量的程序定期调度每次都是把所有数据读进来,一条条发到消息队列里去,自动会触发实时索引的过程。这是批流统一的实时索引的方案,能够做到秒级的延迟。 再看实时统计和数仓场景。实时统计,假设是天猫双十一大屏,这是非常简单的抽象,因为天猫双十一大屏也是在我们平台进行支持的,需求是按类别实时统计PV、UV、当日实时销量和历史总销量,实时PV、UV都是活动数据一般存在日志里面。实时销量是定单信息,定单信息是数据库里的。假设在RDS上,第一步是把两部分数据发到消息队列里去,流计算定义这个消息队列,这时候出现的问题是订单里面数据只有商品ID,要用类目进行统计,所以要关联静态的数据,把静态数据放到RDS里面去。流计算做一个操作把商品类目拿到,根据类目实时统计PV、UV和当日量。这时候统计历史总销量的时候可能出现一个问题,网站上线时间比较长,有十年了,流计算里面不可能维护一个十年的中间状态。这时候我们需要一个离线的系统,比如流计算已经把每天的汇总都存到数据库里,离线数据把这些加起来就是历史的,展示到RDS里去,只要定期刷新RDS就可以了,这是非常简单的实时大屏的应用场景。 讲完实时大屏,做一个升级是实时数仓。数仓本质上也是指流计算,因为计算指标特别多,所以出现了特别多分层统计建模的理论,分ODS、DWD层、明细层、汇总层。按照我们的说法,实时计算对传统大数据的改造,第一步是把数据替换成消息队列,这个案例是来自于菜鸟的仓备团队。 他们首先把业务里面的数据都发到消息队列里面去,这个消息队列就对应于传统数仓里面的ODS层,我们把它叫原始数据层。流计算定义这个消息队列,先进行数据清洗、关联,拼接成一个明细的数据,这和刚才讲的实时ETL的过程是一样的。这个过程接着发到消息队列里去,这个叫实时明细层。定义明细层的数据比如按照小时做一个汇总,在这种情况下很多时候要做天级汇总,在小时级汇总基础上做天级汇总就完成了。 同时处理过程中中间数据都是落到传统存储的,比如做明细查询、OLAP分析都可以存到ADS,大家也可以选别的。另外有时候做大屏展示,就要支持KV查询的,因为他们数据量比较大,就选了Hbase,这就是非常简单的实时数仓的架构,主要是两个方面,第一是用消息队列取代了原来的数据分层里的表。第二是用订阅式流计算取代了原来调度驱动的批处理。当然数仓真正复杂的部分并不在于架构,而在于它的建模,这也不是今天讨论的范围,我也不是这方面的专家,大家有兴趣可以搜索一下相关资料还是非常全的,我就不详细讲了。 我们讲最后一个,实时异常检测;先说一个非常简单的异常检测算法,大家都知道高斯分布,就是大量的数据、正常的数据在中间,少量的数据在两端。所以我们认为,如果一个事件,它落到了中间就是正常的,落到了两端就是异常的。在这种思路下,我们假设这个事件有很多特征,每个特征都遵循于高斯分布,具体这个检测分三步: 1、训练。把所有特征各自的高斯分布算出来,其实高斯不就两个参数,平均值、方差,把两个参数按照历史数据做一个统计就OK了。 2、第二步找一个要检测的事件,把它的每个特征都在自己的高斯分布里边计算一下概率,这个事件的概率认为是它所有特征概率的乘积,这就是事件本身的概率。 3、取一个阈值,大于阈值就是正常的,否则就是异常的。我们看一个基于Flink和高斯分布的异常检测系统,检测主机或者服务有没有发生问题。 为了进一步简化这个问题假设只有一个特征,就是日志打印的频率。系统调用初测的时候会打印一个日志,出错了会不停的打印,把这个当成一个特征。第一步还是之前讲的架构,把主机信息、运营日志都发送到消息队列里边去。这时候做一个训练,挑一批正常的数据统计一下平均值和方差。第二步用Flink定义消息队列,这里用kafka,定义一个实时ETL的过程,统计一个打印的频率,代入之前算好的频率和方差,得到当前打印日志频率的概率。概率低于一个值我们就觉得这是异常的,发一个值看一下,最终这些都写到Elasticsearch里,这是一个非常简单的实时异常检测的系统。 今天这里讲的都非常的浅显,这里贴了一个网址,有实时计算的案例,有十几篇,每篇都有详细说明,大家有兴趣可以看一下,右边是我个人得微信帐号,对今天所讲的内容如果有问题的话可以加我讨论一下。我今天的演讲就到这里,谢谢大家! (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |