当前位置: 首页 > 科技观察

吴红:芒果TV大数据平台架构及基础组件优化

时间:2023-03-19 18:34:19 科技观察

2015年8月29日,七牛公司在上海国际时尚中心举办了为期两天的主题——数据重构·未来七牛·数据时代峰会。本次大会邀请国内外知名数据专家、互联网行业、传统行业数据专家亲临现场,带来一场数据饕餮盛宴。芒果TV依托湖南广电的内容和用户资源,2014年增长迅猛,同年7月5日,周点击量突破1.7亿。本次七牛数据时代峰会特邀芒果TV数据负责人彭哲夫分享芒果TV数据处理实践。以下为演讲实录:芒果TV团队从去年开始搭建,现在十个人,150多个节点,1.5PB的传递数据。整体分为三个业务系统,分别是数据魔方——负责一些重要指标的统计。二是系统推荐,芒果TV引导流量转化。三是视频内容分析系统。大量的互联网数据可以转化为传统媒体所需要的数据。因此,芒果TV可以提供一些用户记录给导演提供精彩内容或剧情发展。现在芒果TV的数据部支撑了70%-80%的业务,今天的演讲也分为三个部分:***是基础部分,二是整合部分,三是数据管理部分.集合是数据的生产者,它决定了数据是否可用。在做收款的时候,我们会注意宽带的费用。作为视频公司,宽带和版权是成本构成的重要组成部分。因此,我们开发了一个SDK,将采集到的数据发送到我们的自定义系统,然后将它们分类发送到FDS,最终转化为数据,形成数据库。在实时计算方面,主要用于播放过程中的质量监控。我们回到ES做一些实时查询。在收集过程中,会列出一个元素并调用一个方法,并将所有参数发送给服务提供者。但缺点是随着采集点的增加,代码需要维护,缺乏系统化。所以我们做了一个抽象,在采集过程中对模型进行一次分类,比如页面数据、错误数据、播放数据。另一个是事件的问题。事件的处罚是什么?我们通过后端配置来整合一个元素的名称和事件。当页面加载时,这块的配置会加载到后台页面。后端将决定哪些数据需要报告,哪些不需要。报告。如果我们需要较长的开发周期,在使用这种模式时,只需要在后台做一个配置,数据马上就过来了。在采集方面,一般是放一张一个像素的图片,在图片后面带上一些参数,但是这种方式会造成非常高的宽带成本,光搜带宽会占用600兆左右。为了减少服务器资源到极值,可以改成PT进行篡改。这节省了近三分之二的带宽成本。在传输方面,我们遇到了一些陷阱。最主要的问题是占用资源太多。其实我们团队通过对每一块的详细分析,解决这个问题并不难。当数据量太大的时候,我们会遇到一些情况,主要是每隔一段时间就会创建一个文件夹,但是在测试的时候,时间会长很多。所以我们对其进行了调整,使用单线程的方式做了很好的优化。到了1.5、1.6的时候,会直接导致系统内存膨胀严重,所以我们一般都是加一个配置参数或者直接改位置。失去。一般类型的文件和文件夹之间的选择主要基于效率问题。之前有人提出在数据量大的时候将两者结合起来使用文件。在写FTX的时候,会导致文件进入关闭状态,这会导致我们错误的失败,我们需要对其进行监控。另外可能会产生很多小文件,造成比较大的压力。因为是大数据,数据量不言而喻。我们使用的压缩方式可以压缩80%的数据量。在队列传输方面,我们只需要使用Kafka即可。实际上,并不是分区越多越好。如果有更多的分区,客户端和服务器使用的内存限制将增加。一个分区将生成两个分区。文件,这两个文件会导致具体数量的增加,还有Kafka自身的机制——Kafka中有一个pagepartition,会导致投票过程。分区越多,时间越长会影响使用。我们的做法是:选择一台机器只创建一个分区,然后测试生产和消费。我们最关心的是吞吐量,所以可以用TP和TC的最大值作为我们的划分。在存储方面,我们采用了多级存储的方式。当然,我们遇到的问题是,当数据量变大的时候,里面会有很多冷数据,工作压力会比较大。所以我们将其分为三个层次。主要特点是CPU和内存会更充裕,也可以减少副本,把冷数据扔到云存储。存储方面的另一个问题是压缩。前期规划不好的时候,发现存储空间不够用。我们会根据自己的业务来选择,使用归档日志来组织小文件。在配置方面,我们会整合配置推送,主要是基于RPC控制模型,控制所有分组。我们的数据服务平台需要支撑公司的很多业务。他们只需要一个账号就可以进行我们采集服务器的传输服务和实时计算服务。我们也提供资源流量监控服务。。。主要说一下我们在平台上是如何管理数据的。只是分成几个部分。日志类型的抽象与公司业务密切相关。我们对日志进行分类——播放日志和广告日志。这其中有一个特别有意思的地方。芒果TV更关心PVVV等核心指标,但如果我们计算指标的方法与其他同行不同,这个数据在行业内就没有可比性。因此,它会从几个方面来定义:一个是它的概念——使用的常识,如何报告,会导致什么样的结果。***报告内容及计算公式。数据到平台后,最重要的就是对数据进行管理。为什么需要管理它?其实就是把数据分门别类,由此产生的管理就是专题管理——以某一点为核心,把必须关注的方面分类。这个方法和我们的日志抽象非常相似。数据仓库建立之后,别人要用你的仓库数据,他们需要一个详细的,需要做一个数据数据。此元数据分为两类。一种是技术元数据,主要是开发者使用的,包括一些仓库结构和一些原始提取的规则。否则,数据根本没有质量。***为什么需要数据集市?在这个过程中,每个公司都会有很多业务部门,每个业务部门面临的问题也不一样,比如从统计的角度会比较关注哪些数据。但如果是这样的话,数据仓库就不可能稳定。因此,数据集市需要隔离。在这个过程中,我们可以提取一些队列的数据,放在我们的关系成本中。这些集市的成果可以相互共享和交换。更重要的是,事实表和维度表的管理和维护。