在2018年云栖大会·上海峰会的阿里云支持与服务专场中,全民直播大数据架构师朱益为我们带来从0-1构建全民直播大数据平台和实时护航方面的实战经验。通过分析当前直播平台面临的挑战来详细的讲解大数据平台的构建,以及数据体系在平台上的运营状况,提出数字化推动企业不断发展前进。
数十款阿里云产品限时折扣中,赶快点击这里,领劵开始云上实践吧!
直播视频回顾
PPT下载请点击
以下为精彩视频内容整理:
技术挑战
全民直播是一家多元化的直播平台,自2015年12月底上线。主要业务有游戏直播和秀场直播。直播对于实时性有着很高的要求,同时由于直播的互动性很强的原因,所以对于平台的稳定性视频流的流畅度就都有着很高的要求。
系统监控、问题定位、性能优化
为了保障平台的稳定性,我们做了全方位的系统监控,需要做到异常报警和流量预警。但是平台的扩大也带来很多问题,所以我们需要及时响应并且快速定位问题。同时在研发方面还有各种性能优化方面的需求,如终端优化视频优化等。
运营需求
除了技术挑战外在运营方面我们也有一定的需求,如用户运营、主播价值、市场营销、内容推荐、平台营收等。主播价值在运营需求中起到了很大的作用,因为对于一个主播价值的正确评估直接影响到平台的直接收益。
解决方案
以前由Mysql+Web或ELK来解决,但是随着数据量的增加,过去的解决方案明显力不从心,所以共同构建大数据平台刻不容缓。
面临困难
面对的困难有很多,时间紧迫、人员不足、经验不足、经费有限。那么面对工具繁多,我们如何选型海量数据。面对成本紧张,我们如何保证稳定,如何保证数据安全?
借助阿里云构建大数据平台
使用阿里云构建大数据平台主要有以下优势:
·运维成本低:几乎零运维成本,同时支撑海量数据。
·使用门槛低:非研发人员也能独立完成数据报表需求。
·系统稳定:几乎无故障,工作人员响应很及时。
·高安全性:在大数据中心处可以做表级权限管理。
·非常灵活:云服务非常灵活,组件即开即用,用最少的资源去试错。
全民大数据架构
这是一个数据链路,包括数据源、数据采集、经过数据计算加工、存储,最后交给数据应用。大量的用户行为投递到采集服务器,保存到本地后通过阿里云日志服务的logtail的组建支持到阿里云的日志服务。

收集到日志服务后,再投递到计算中心板块。我们也应用了流计算来做了一些实时的日志监控。还有一些数据源也会被直接抽取到计算中心,抽取方式也简单易行。
下面将对一些模块进行详细的介绍:
数据采集
首先是日志规范,要遵循规范先行,如果规范定义的不好或不当时,会对后续的数据应用与数据报表有很大的影响。对于打点,打点要打的全、打的准。为此我们定义了大框架来保证打点信息。埋点的信息包括用户信息,产品的用户号,手机的设备号、IP还有一些公共用户信息的字段。事件的编号、发生时间以及载体。比如按钮所在位置等。
接收服务器采用Golang、单机QPS 2W+。逻辑非常简单,只需要接收请求并且保存到本地文件。我们提供了适当合并请求,支持protobuf,gzip压缩等来提高传输的性能。如果终端断网时可以暂存本地,等待离线上传。
实时采集使用的是日志服务的Logtail ,相比 Filebeats、Flume等开源工具,具有性能更优高效稳定,资源占用少,几乎不会影响线上服务,因为其做了资源保护功能。另一个特点是配置简单,支持JSON、正则等多种模式,部署方便,立即生效。
实时查询迅速定位用户行为轨迹,日志服务提供海量日志分析能力,可进行业务监控。日志服务的优点有,不需要考虑容量问题,也不需要考虑查询性能问题。对我们来说做到了省事省心。
最后我们将数据投递到日志中心,投递到 MaxCompute 供离线计算,StreamCompute可以直连日志服务,以监控业务,对直播视频实时护航。日志采集后整体的平台体系已经搭建成功,下面要做的就是直播阶段的工作。
直播视频实时护航
视频流是直播平台的核心服务,视频流的稳定性直接影响到用户体验,继而影响平台收益。
监控、定位、解决、总结
举例说明一下,比如之前在技术不成熟的时候,大卓在户外直播时突然出现黑屏问题,这是一个影响主播与用户等多方面的一个问题,但是由于当时日志采集不够,于是我们做了全链路实时监控,视频由推流端到分发网络再到播放端。除了打点信息外,我们还对直播间的弹幕信息做了监控。因为弹幕信息与视频信息所走链路不同,这样可以从另外的侧面来监控视频信息。可以通过弹幕信息来了解直播时用户端是否卡顿。基于这套监控,我们应用阿里的流计算实时的计算一些关键指标,对于问题我们可以报警到钉钉群。同时,一些厂商也会把问题报警到钉钉群。钉钉群里面相应的同学就会响应来解决这些问题。通常的解决方案可以分为切换节点和切换线路两种。最后我们也会做完善监控、完善流程等措施。阿里云的CDN同学为直播室的实时护航做了很多事情。
数据体系
日志采集之后我们将其投递到数据中心,MaxCompute 提供一站式数据仓库解决方案,完成我们对数据的清洗、加工与整合计算,然后把数据给分析组同学使用。MaxCompute提供数据集成功能,可以通过DataX 结合 tunnel 简化数据同步。提供权限管理功能,通过ACL和角色管理,实现数据隔离。提供数据清洗功能,使用HiveQL、Shell、PyOdps等进行数据清洗。提供完善任务调度功能,可以设置周期时间,可以定义依赖关系。
元数据管理
对于大数据平台来说,元数据管理非常重要,DataWorks 数据管理提供完整的元数据信息,这个元数据信息只能在浏览器上面看,通过爬取数据,完善元数据管理。使用开放接口获取表结构信息和爬取 DataIDE 接口获取任务元数据。
数据分析挖掘
阿里云兼容Hive2.0,使用时非常方便、查询效率高。支持Python直连、支持R直连、支持更多开源工具。
数据报表
使用商业Bi工具、开源数据分析工具、开源报表工具。

以上是完整的大数据平台搭建体系,基于这个平台,我们实现了精细化运营,针对用户分群、主播挖掘、内容推荐等方面进行运营。搭建这个平台可以使企业更加专注于业务,用数字驱动整个企业不断地发展前进。