5G 新媒体平台大数据系统的设计与实现

本文介绍了针对5G 新媒体平台的海量业务数 据,中央广播电视总台应用最新的大数据技术, 从功能、性能的要求出发,完成的5G 新媒体 平台大数据系统的总体架构设计和分层设计与 实现。

摘要

5G 新媒体平台建设,是贯彻落实中央关于媒体融合要充分应用信息革命成果重要指示的创新举措,其中“数据中台”是5G 新媒体平台重要的组成部分之一。大数据系统以适配5G 新媒体平台技术体系建设为切入点,以数据驱动内容创作,以人工智能激发内容消费,在运营中把握业态变化、实现敏捷迭代,依托“人工智能”(AI)、“大数据”(BigData)、“算力”(Computing)为全台技术体系创作生产、全媒体传播、节目评价的全流程智能化革新提供坚实的数据基础。

一 大数据系统功能与要求

大数据系统的设计需要依据5G 新媒体平台的特点,从功能方面和性能方面两方面考虑,具体要求如下:

从功能来看,5G 新媒体平台的数据来自App、视频中台、AI 中台等各个业务系统,大数据系统需要包括数据的汇聚、分布式存储与计算、流式数据的计算与存储、离线计算与存储、BI 报表展示、大屏可视化展示等基本功能,通过对各种数据的加工,产出有价值的数据和指标,并且输出到各个应用系统。

图片.png

从性能来看,大数据系统应该满足高可用、高性能、高并发、可扩展的要求。高可用是分布式系统架构必须考虑的要素之一,是指通过设计减少系统不能提供服务的时间;高性能是指大数据系统在现实世界中,能够第一时间快速准确地提供各种有用的数据,为运营决策提供关键依据,故在整个链路中均需要考虑高性能的要求;高并发是指大数据系统架构需要能够支持上百万并发的请求,并且鉴于5G 新媒体平台的内容主要以图片、视频为主,设计时需要兼顾满足大流量的系统要求;可扩展是为了满足用户需求不断发展的要求,便于应用程序的升级及扩展,减少应用系统再开发(二次开发、定制)的工作量从而降低成本。

二 设计与实现

1. 总体架构设计

5G新媒体平台大数据系统采用腾讯大数据平台,为了保证系统的安全性,总体设置公有云、专有云、私有云3 个云环境,分别部署实时数据接入环境、离线数据处理环境、离线数据实验室环境、离线数据归档环境4 套集群环境,其中实时数据接入环境部署在公有云,离线数据处理环境、离线数据实验室环境部署在专有云,离线数据归档环境部署在私有云。基于大数据系统与其他业务模块的数据联系与功能依赖,设计数据中台整体的数据架构,如图1 所示。

根据大数据系统的建设经验,5G 新媒体平台大数据系统的总体技术架构,应包括四大层次,即数据汇聚层、存储计算层、数据逻辑层、数据服务层,总体技术架构如图2 所示,并应通过数据治理体系实现全流程的管理和监控。

图片.png

2. 分层设计与实现

按照总体架构的设计模式,5G 新媒体平台大数据系统自上而下由数据汇聚层、存储计算层、数据逻辑层、数据服务层组成,下面将具体介绍每一层级的设计与实现。

(1)数据汇聚层

数据汇聚层包括数据的采集、汇聚。其中采集的方式分为探针采集、接口上报、消息队列上报、分布式数据库表同步、数据传输工具FTP 上报等。

对于5G 新媒体平台系统来说,采集的主要方式为探针采集。探针由客户端启动时进行加载,加载后监控客户端运行过程的所有状态和事件,并将数据回传给数据采集服务器。数据采集探针系统支持App 端SDK 采集上报、H5 页面JS 采集上报和PC 端WEB 页面采集上报。5G 新媒体平台业务主要包括三类数据的上报:播放上报(与App/H5 中播放器相关的数据上报)、事件上报(App 中用户点击、页面停留时间等事件上报,支持自定义上报)、系统异常上报(App crash 和程序处理异常上报)。

数据汇聚平台则通过蜂巢BOSS 平台来完成,主要包含三大模块:数据接入、数据总线、数据接出。其中数据接入是以固定bossid 的方式进行,每种业务的事件请求申请唯一的id,并且同时指定接入数据的结构;数据总线完成了消峰、流量压缩、字段重组、数据分发和条件订阅功能;数据接出则是将数据写入各个计算和存储平台,如Hadoop、Redis、Mysql等系统,以及提供多种订阅服务。

另外部分批量数据也可以通过Hive 表同步的方式,完成数据的采集和汇聚功能,例如业务系统后台媒资库的部分数据。

整个数据汇聚层的示意图如图3 所示。

图片.png

(2)存储计算层

存储计算层主要是定义大数据系统存储、计算相关的组件选用、技术选型、环境部署方式等。根据业务需求,需要进行部分实时指标的加工和计算,同时需要提供批量存储和计算的能力。故主要组件的具体的选型结论如下:

◆实时存储:分布式内存数据库Redis;

◆批量存储:分布式文件系统HDFS、分布式数据仓库Hive;

◆流式计算:分布式流式处理引擎Flink;

◆批量计算:MapReduce、Spark 作为计算引擎;

◆消息接入:分布式消息系统Kafka;

◆资源调度:Yarn 作为统一的资源调度。

环境部署需搭建四套独立的云环境:公有云环境、专有云生产环境、专有云服务环境、私有云环境,其中公有云环境主要负责实时数据的接入和计算、批量数据的落数,专有云生产环境主要负责完成批量数据的接入和计算,专有云服务环境主要提供数据的离线挖掘、数据分析功能,私有云环境主要完成重要数据的归档,特别是媒资数据的归档。

(3)数据逻辑层

数据逻辑层主要指具体的业务流程的技术实现,包括实时处理逻辑、批量处理逻辑、数据分层设计、数据模型设计等方面。

a. 实时处理逻辑

实时数据处理过程包括实时数据采集、实时数据解析、实时数据存储和实施指标应用4 个过程。本系统中,所有需要进行实时处理的数据都通过蜂巢Boss 进行上报,Boss 通过TDBank 分发到Tube 消息队列。实时数据解析采用Flink引擎,实时消费Tube 中的对应的Topic 数据,进行解析后,进行指标的加工和计算,计算的指标结果存储在实时数据库Redis 中,并通过指标同步实现将数据同步到应用集市的TDSQL 或Kafka 消息队列中,应用通过调用API 或读取Kafka 查询指标信息。整个实时数据处理流程图如图4 所示。

图片.png

实时数据处理以满足低延迟、高吞吐和高复用性为目标,采用分布式流数据计算框架,从消息队列Tube/Kafka 读取消息,经过Flink 引擎的处理,最终将处理结果写入分布式存储Redis 中,供应用程序访问。实时数据处理主要的开发过程包括实时数据库设置和实时数据解析脚本开发。

b. 批量处理逻辑

批量数据处理过程主要包括数据接入、数据清洗、质量检查、数据集成、汇总加工、应用处理、数据同步、数据应用等,处理过程的任务调度基于批量调度系统SDT实现。整个批量数据处理流程图如图5所示。批量调度系统SDT 通过调度管理,读取配置好的知识库中的依赖和触发关系,调用不同的脚本进行相关的处理。数据同步脚本实现从公有云Thive 到专有云数据仓库的临时数据库的数据同步;清洗融合脚本实现数据的清洗,并整合到历史数据库中;质量检查脚本实现问题数据的检查,结果存储问题数据库中;数据集成脚本实现从历史数据库转换、加载、集成到基础数据库中;汇总加工脚本实现公共汇总库的加工计算;应用处理脚本根据应用需求加工生成各应用的接口集市库;数据同步脚本根据需要将应用指标同步到应用集市库TDSQL 中,供应用查询和使用。

图片.png

批量数据处理实现T+1 和T+0 的批量数据的处理。大数据平台的批量数据加工是一项庞大而复杂的工程,通过批量数据处理过程,数据逐级从源头流向目标对象。

c. 数据分层设计

数据架构总体分为实时数据区、数据落地区、数据加工区、数据服务区、数据实验室及应用集市区6大数据区,设计实时数据库、临时数据库、问题数据库、历史数据库、基础数据库、公共汇总库、主题数据库、接口集市库、数据实验室、应用集市库10 大数据库。数据架构的总体设计如图6 所示。具体每种数据库的定义和功能说明如下:

图片.png

◆实时数据库:接收来自于各源系统上报到BOSS 系统的上报数据,存放流计算实时解析与计算所产生的指标数据,供下游应用系统进行实时访问和展示。

◆临时数据库:用来进行数据加载的部分,通常由数据文件和数据库对象组成,临时数据库数据表的定义与上游源系统一致,存放的数据通常按天保存,定期清理,是临时的,只提供给系统数据处理使用,不提供业务人员查询。采用贴源数据模型,分业务系统建模。

◆问题数据库:存放来自于业务系统前日的结构化的具有数据质量问题的数据,如空记录。存放数据质量问题数据,便于问题数据分析和管理。采用贴源数据模型,分业务系统建模。

◆历史数据库:存放清洗后的各业务系统整合的历史数据,包括去除垃圾数据和重复数据。为基础数据库、公共汇总库、接口集市库提供清洗后的历史数据。采用贴源数据模型,分业务系统建模。

◆基础数据库:存放融合后的各数据主题明细数据,打破业务条线,按照主题模型重新对业务数据进行分类组织。建立数据间关系,实现内外部数据融合,为公共汇总库、接口集市库提供融合后的明细数据,为数据分析及挖掘提供数据支持,数据仓库的核心。采用数据主题模型,分数据主题建模。

◆公共汇总库:存放各业务条线各应用维度指标汇总数据,数据是面向应用的、可共享的。为接口集市库提供汇总数据,为数据分析和挖掘提供数据支持,实现一次加工多次使用,便于用户应用,提高访问效率。采用维度数据模型,分业务条线建模,采用宽表保存数据。

◆主题数据库:存放某个经营管理主题的数据指标,数据是面向管理主题的、可共享的,如用户画像、节目画像等。为分析用户及应用系统提供全面的主题指标,便于用户应用,提高访问效率。采用管理主题模型,分管理主题建模。

◆接口集市库:存放各应用系统所需接口数据。根据应用系统需求,提供加工和处理后的结果数据,是数据仓库与应用之间的桥梁。采用星型数据模型,分应用系统建模,根据应用需求组织数据。

◆数据实验室:为业务分析人员进行数据探索提供平台和数据支持。业务分析人员既可以从大数据平台的各数据区申请数据,也可从外部加入自己的数据。该数据区设计的主要目的有两个:一是对敏感数据进行脱敏处理,保证数据安全;二是限制业务分析人员使用的系统资源,保证生产系统的平稳运行。

◆应用集市库:存放各应用系统访问的应用数据,是应用系统进行数据应用和处理的数据区域。采用星型模型,分应用系统建模,根据应用需求组织数据。应用集市库通常存储在关系型数据库上,应用系统访问关系型数据库的数据,充分发挥关系统数据访问速度快的特点,提升用户体验。

d. 数据模型设计

数据模型是利用图形方式,描述结构化数据在关系数据库中组织、存放方式的“地图”与规划“蓝图”。数据模型是大数据平台结构化数据存储的基础,数据模型设计则是对各数据区域定位的具体实现。非结构化数据进行结构化处理后,才能融入数据模型。

数据模型设计的合理性对系统的性能、稳定性、可维护性以及持续发展有致命的影响。大数据平台数据架构中,临时数据库、问题数据库、历史数据库、基础数据库、公共汇总库、主题数据库、接口集市库、应用集市库都涉及数据模型设计。其中,临时数据库、问题数据库、历史数据库采用贴源数据模型,基础数据库采用数据主题模型,公共汇总库采用维度数据模型,主题数据库采用管理主题模型,接口集市库和应用集市库采用星型模型。其中维度数据模型处理过程如图7 所示。

图片.png

(4)数据服务层

数据服务层主要是面向数据应用,数据应用是数据资产价值的重要体现。数据服务分为交换共享服务、挖掘分析服务、可视化服务等。数据仓库中的数据应用分为大屏等应用系统数据支持、交互式BI 数据服务、数据挖掘支持等,技术模式分为Kafka 消息队列、API 数据服务总线、TDSQL 应用集市库、Hive 接口集市库、Hive 数据实验室5 种模式,如图8 所示。数据仓库将基于各个业务系统的需求,进行数据指标的加工和计算,将加工结果推送到业务系统有两种方式:

图片.png

◆推送到应用集市TDSQL 中,同时,在数据服务总线系统中配置API 交易。一部分业务系统(如大屏等)通过调用数据服务总线系统的API 接口,访问数据仓库的大屏应用集市库数据;另一部分业务系统(如BI 系统等)通过JDBC 连接应用集市库,完成报表的查询和分析。数据的更新频率由数据仓库进行控制。

◆推送到业务方的Kafka 消息队列。业务系统(如前台搜索系统、推荐系统等)通过访问Kafka 消息队列进行处理,支持应用需求。

三 小结

采用当前先进的大数据技术,5G 新媒体平台大数据系统完成了设计与实现,自2019 年11 月上线以来,该系统支撑了最高近千万的日活用户数据,以及百万条直播和点播节目,并且快速准确地提供了百余个重要的实时指标、批量指标等用以决策支持、报表展示、挖掘分析等应用,真正实现了用数据驱动业务,对未来类似的大数据系统的建设具有指导意义。

转载请注明来源:《现代电视技术》 作者:中央广播电视总台 芦丽丽