阿里工程师用 8 张图告诉你如何存储、管理泛内容数据


阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

文章插图
作者| 阿里文娱高级开发工程师 至德
责编 | 王晓曼
头图 | CSDN 下载自东方 IC
【阿里工程师用 8 张图告诉你如何存储、管理泛内容数据】用户在优酷或者其它互联网App上看到的文字、图片、视频等,都可以被称为内容,那么这些内容是如何被生产、管理和组织的?本文将简单介绍阿里文娱是如何利用网状关系组织泛内容,以及如何构建泛内容的网状关系 。
 泛内容存储管理的挑战
1、数据规模大:在阿里文娱内,泛内容实体类型多,实体数据规模庞大,如何高效存储和管理;
2、兼顾内容生产和分发: 泛内容数据管理方式,既要提供快捷的内容生产模式,又能在分发链路上提效;
3、扩展能力要求: 泛内容实体类型会随着业务发展而不断增加,运营的新玩法也层出不穷,泛内容的存储管理方式,要能够适应和支撑未来的业务发展,必须要具有很强的业务扩展能力 。
 什么是泛内容的网状关系
标签是被广泛应用于内容管理的一种方式,内容生产链路上,我们会将内容通过机器学习算法或人工标注的方式打上相关标签 。通过这些标签,将内容连接并组织成一张网 。如图 1所示,以视频为例,独立的视频通过标签被连接成了一张网络 。
阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

文章插图
图 1 视频通过标签连接成网
有了内容的连接关系,内容的组织方式也有了更多样的玩法,运营同学也拥有了更丰富的运营工具进行内容分发 。如图 2所示,我们可以根据运营需求,将标签1升级为话题,标签2升级为榜单 。运营便可以将视频A、B、E组织成为一个话题,将视频C、D组织成为一个榜单,用于前台运营活动 。
阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

文章插图
图 2 标签升级为话题和榜单
如图 3所示,左图为沉浸式视频播放页,可以通过点击左下角话题标签跳转至右图的话题详情页,详情页列表中则通过 Feeds 流形式展现出该话题下所有视频 。
阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

文章插图
阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

文章插图
图 3 优酷内标签话题引导形式
泛内容网状关系背后的支撑技术是统一标签服务,其包括标签结构及打标结果的定义、基于媒资平台的核心标签服务、以及面向运营的标签管理工具和打标工具,下面的篇幅中将依次进行介绍 。
 标签结构及打标结果的设计
用户或运营在为内容打标时,为了提高打标效率,往往会先选择一个分类标签,然后再针对这个分类进行打标 。传统设计中,标签结构往往被描述为一颗树,只能描述标签间的父子关系,例如图 4所示的五层标签树 。传统的标签结构在描述这种场景时,主要有两个问题:
1. 前三层的标签是父子关系,但是第四层和第三层之间是属性关系,两种关系应区别对待;
2. 第五层和第四层之间是属性值的关系,也应区别对待 。
阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

文章插图
图 4 传统标签结构设计
统一标签服务的标签结构对上述两种关系进行了抽象,如图 5所示 。
首先,引入了标签类型的概念,每一个标签类型是个森林,例如图中紫色方框标表示的分类、赛事、技巧标签类型 。对于简单的标签场景,例如内容标签、质量标签等场景,只需要使用标签类型即可支持场景 。
其次,对于复杂场景,引入了子标签类型和标签分组的概念,图中橙色箭头表示运动分类标签关联了赛事和技巧两个子标签类型,当一个内容被标记为运动或其子分类时,这些内容都可以继续打赛事和技巧两类标签 。图中绿色方框表示用篮球、足球对赛事和技巧类型的标签进行了可重叠的分组 。
这一套标签结构表述能力十分强大,支撑了目前泛内容的所有标签 。
阿里工程师用 8 张图告诉你如何存储、管理泛内容数据

文章插图
图 5 统一标签服务的标签结构
上述标签结构描述的标签为枚举型标签,除枚举型外,打标结果中还支持保存开放型标签和关联型标签 。其他标签类型的方案设计暂且不在本文赘述 。
 核心标签服务
所有的原始数据,标签库和打标结果,都保存在媒资平台,从理论上说,媒资平台已经具备了内容的打标能力 。然而这个读写能力较为原始,业务方使用起来多有不便,所以需要一个系统对原始能力针对标签业务进行业务封装,为业务方提供好用的标签服务,这就是核心标签服务,如图 6所示 。


推荐阅读