技术开发 频道

NoSQL应用:视频网站Big Data解决之道

  【IT168 评论】优酷作为一家大型视频网站,拥有海量播放流畅的视频。我们秉承注重用户体验这一产品技术理念,将绝大部分存储用在视频资源上。通过建设专用的视频CDN,建立了可自由扩展、性能优异的架构,在提供更好用户体验的同时优化了存储资源。在除视频资源外的其他方面,我们也累积了海量数据:仅运营数据,每天收集到的网站各类访问日志总量已经达到TB级,经分析及压缩处理后留存下来的历史运营数据已达数百TB,很快将会达到 PB级,5年后数据量将会达到几十PB级。

  如何更好地处理和分析这些海量数据,以挖掘出其中的价值?

  挖掘数据中的价值

  对企业来说,尤其是对于为用户提供服务的行业,仅提供基础服务已经越来越难应付日趋细化的商业模式。如何为用户提供差异化的优质服务成为这类企业必须解决的问题。而数据好比灯塔,能为企业指引前进的方向。互联网、电信、金融等行业都在加大数据的探索及应用力度,这为企业创造了可观的经济效益。

  对优酷而言,通过用户的每次播放流程,我们都对页面浏览、评论收藏、视频播放以及播放时的各种操作进行了记录。经处理后的分析结果会反馈给不同的业务模块,对包括产品、内容运营、用户的个性化推荐及广告投放等方面的提升,都起到了关键作用。

  网站页面、客户端的UI/UE的设计及效果,都需要数据进行支持。通过A/B测试系统,我们收集到用户对不同UI下的操作反馈,进而评估UI的改变对用户的影响。

  内容方面,通过对用户网络情况的统计:每次播放是否发生了缓冲,平均下载速度是多少等,进行实时的统计和计算,获取每个地区每个运营商下用户的加载表现,以此来决定CDN节点的分布和分配策略,为不同地区、不同运营商的用户提供清晰流畅的视频服务。

  在推荐方面,通过对大量视频播放行为的分析,归纳不同时长、不同类型、不同内容的视频之间的相互关联,挖掘不同人群用户的同质化观看习惯,对每次用户的观看进行有针对性的后续推荐,并借助后续数据的分析,迭代地改善现有服务,为用户提供量身定制的推送服务。

  数据对于优酷的广告精准投放也起到了重要作用。优酷的广告系统支持对不同地域、频道、标签及人群等条件的定向投放。在投放策略上,我们本着尽可能不影响用户体验的原则,对于广告长度及投放频次都进行了限制。虽然这给投放造成了较大难度,但通过对各种细粒度的定向条件组合历史数据进行的分析,我们在广告投放方面已经相当准确。在投放阶段,我们实时分析用户属性、访问情况及当前广告投放量,对每次投放动态调整。

  技术架构

  下面以优酷的运营数据为例介绍我们的海量数据解决之道。我们的运营数据包括播放、用户交互、搜索、广告等,目前总计达数百TB,它们存储在数百台服务器上。我们主要使用的是内部专门开发的轻量级的分布式存储及数据分析框架,应用于一百台左右的服务器集群,目前仍在使用。另外我们搭建了一个1000个 Slot的Hadoop集群,并还在继续扩展。考虑到维护成本及扩展性,未来我们会将全部业务迁移到Hadoop平台上,以降低维护成本。另外基于 Hadoop及其上层的HBase、Hive等数据存储产品,我们会开发出一套数据处理框架,应用于整个数据处理系统。

挖掘数据中的价值
▲图1 运营数据处理技术架构

  如图1所示,根据业务类型的不同,我们收集到日志之后,按照不同时间策略先对数据进行清洗。不失真的原始日志,按规定的格式直接以文件的形式存储在Hadoop上,数据清洗转换后的中间结果,会存储在Hive数据仓库上;而一些粗粒度的汇总数据,则写到MySQL、HBase等数据库中。

  每天优酷的日常数据处理任务多达数百个,对时效性要求不同,任务的执行策略也不同。需要准实时查询的,我们可以提供延迟10分钟的数据;其他任务也根据优先级及紧急程度安排调度,而执行中的资源的分配由系统动态调整。

0
相关文章