导读:大数据时代的到来,让很多企业看到了数据资产的价值,开始探索应用场景和商业模式,并建设相关技术平台。因此,数据治理成为了挖掘数据价值的重要手段和工具。但数据治理不仅需要完善的保障机制,还需要理解具体的治理内容,比如数据该怎么规范,元数据该怎么管理等。这些问题是数据治理过程中最实际也是最复杂的问题,今天我将从数据治理的各个核心领域来和大家分享一下云音乐在数据治理中的探索与实践。

本文会围绕以下四个方面展开:

01音乐数仓概况

首先介绍一下云音乐目前所面临的一些问题与挑战,也就是为什么要做数据治理。

1. 整体情况

网易云音乐使用人群数据(网易云音乐数据凌乱)(1)

以上几方面导致了数据仓库在保障数据质量、控制计算与成本等方面面临了越来越大的挑战。

2. 问题与挑战

网易云音乐使用人群数据(网易云音乐数据凌乱)(2)

问题主要有三个方面:

接下来就针对上述三方面来展开介绍一下云音乐的数据治理工作。

02数据规范

数据规范是数据治理建章立制的一个基础。在音乐数据仓库这一块,我将从设计规范和开发规范这两方面来介绍我们云音乐标准化改造的过程。

1. 设计规范-问题和痛点

网易云音乐使用人群数据(网易云音乐数据凌乱)(3)

在设计规范方面遇到的主要问题和痛点:

这块我们需要从数据的稳定、效率和质量方面来解决。

2. 设计规范-数据域

网易云音乐使用人群数据(网易云音乐数据凌乱)(4)

从整体架构上来讲,我们将云音乐的整个数据进行了一个数据域的划分,用来确定一个高稳定性的数据仓库。主题域是一个要保持稳定不变的高度抽象的概念。我们将整个云音乐划分为参与者、服务及产品、事实、协议,以及公共数据这五个主题域。基于这五个主题域,我们又对业务场景做了进一步的子主题的划分,子主题的划分也是相对稳定的。数据划分后,当业务发生迭代时,新的数据也能够有一个相对明确的数据域的归属。

网易云音乐使用人群数据(网易云音乐数据凌乱)(5)

数据的划分主要是为了实现业务形态和实体关系的表达。我们按照以上五个主题域来进行划分是因为我们的数据核心其实就是参与者和服务及产品这两个方面。参与者就是用户,服务及产品主要是内容。

参与者和服务及产品之间会达成一些协议,比如直播协议,版权协议等。另外,参与者和服务及产品之间会产生各种各样的业务过程,这就是事实。其中主要包括流量数据,互动数据,支付数据。

在人、坑位和资源的不同粒度中,我们的分层模型设计就是针对这样的核心数据来进行的。

3. 设计规范-模型分层

网易云音乐使用人群数据(网易云音乐数据凌乱)(6)

上图是云音乐数据仓库分层的一个基本情况。跟大部分流量型产品的数据分层一样,我们也分为ODS贴源层,DIM的维度,以及DWD的明细,DWS的汇总层。另外我们在应用层支持了非常多的产品,比如活动跟踪、用户歌曲画像、流量罗盘,以及各种to C和to B的数据产品。

我们模型设计的核心是对DWS这个汇总层进行了进一步的拆分,比如在这个图里我们可以看到有横向拆分和纵向拆分。

我们最终的设计目标是,通过这样一个模型设计来达到高效率高质量的数据生产和使用。

4. 设计规范-平台管控

网易云音乐使用人群数据(网易云音乐数据凌乱)(7)

我们通过网易数帆开发平台对设计规范的落地进行管控。上图是平台提供的一个工单机制,对我们的数据域、分层结构进行设置和规范,也对表和字段的命名也进行规范,帮助我们将设计思想真正落到实际的生产过程中去。

5. 数据规范-开发规范

网易云音乐使用人群数据(网易云音乐数据凌乱)(8)

开发规范造成的问题也是屡见不鲜,我们也在新的体系下对开发工作进行调整和改进:

6. 数据规范-DQC

网易云音乐使用人群数据(网易云音乐数据凌乱)(9)

另外我们的数据开发平台提供了一个数据质量控制的功能,上图是一个规则配置的页面。这个功能除了可以支持标准化表组件的唯一性检测,表行数检查,字段空值检查,字段枚举值检查等模板规则,还可以支持一些我们自定义的规则。这样我们能够在任务上线之后,对数据质量进行监控,及时发现并阻塞异常向下游扩散。

03埋点治理

数据治理中解决数据源头问题是关键,下面将从技术方案和流程管理两方面来介绍埋点治理工作。

1. 埋点治理-问题和痛点

网易云音乐使用人群数据(网易云音乐数据凌乱)(10)

云音乐目前在埋点这方面遇到的问题和痛点,主要分为四个方面。

为此云音乐启动了一套全新的埋点改造方案。

2. 技术方案-SDK

网易云音乐使用人群数据(网易云音乐数据凌乱)(11)

技术方案是联合客户端来进行设计和实施的。客户端实现了一个埋点的SDK来对埋点生产进行标准化,其中有以下几个重点:

埋点生产标准化的结果是埋点格式的变化。埋点格式,我们以往是用扁平的JSON方式,里面就是key/value。但在新的标准下,我们会生成一套嵌套的JSON,里面携带全局公参、事件公参、对象标准参数、对象业务参数。

3. 技术方案-数据仓库

网易云音乐使用人群数据(网易云音乐数据凌乱)(12)

右边是我们基于新的埋点方案的数据流示意图。通过这次埋点治理,我们会同步推进历史任务的治理。以前很多任务都是直接从ODS上提取和解析数据的,希望这次通过对埋点格式的修改,能够切断以往ODS直接访问的方式,将我们之前的分层模型设计实实在在地落地到整个数据生产的环节当中去。

4. 技术方案-归因设计

网易云音乐使用人群数据(网易云音乐数据凌乱)(13)

我们的归因大致分为以下几方面:渠道归因、内容归因、搜索归因、策略归因。

右边展示了我们目前设计的几个refer的形式,refer同时包含了SPM和SCM的信息。比如:

5. 埋点治理-流程管理

网易云音乐使用人群数据(网易云音乐数据凌乱)(14)

埋点治理的另一个重点是流程管理,因为整个埋点流程会涉及到很多团队,决定了技术方案能否高效率高质量的应用到生产流程当中。

当整套流程都测试通过之后,埋点才能最终上线接入到数据仓库,进入到后续的数据分析中去。其中有两个关键的环节,就是埋点设计和数据测试,这两块会接入到我们新的埋点平台来进行管控。

6. 埋点治理-埋点平台

网易云音乐使用人群数据(网易云音乐数据凌乱)(15)

上图是我们埋点平台大致的页面情况。

埋点平台主要面向的是上述埋点流程中会涉及到的团队和角色:产品策划、数据开发、大前端开发以及QA。

埋点平台承载的功能是一些元数据管理,包含一些对象管理,版本管理等,以及整个需求工作流的管理和实时埋点测试。未来还会规划更多功能,比如说质量监控,BI分析等

7. 埋点治理-预期成效

网易云音乐使用人群数据(网易云音乐数据凌乱)(16)

埋点治理的改造项目是一项正在进行的工作,我们希望能够通过流程管控和技术支撑来提高开发效率,实现数据质量和数据价值的提升,主要包含以下三个方面:

04资产治理

降本提效是资产治理的一个核心,这一块将从数据流治理和生命周期治理两方面来介绍我们的工作。

1. 资产治理-问题和痛点

网易云音乐使用人群数据(网易云音乐数据凌乱)(17)

资产核心就两个部分:计算资源和存储资源。

从计算和存储两方面来看,也有很多历史包袱的问题。比如可能存在大量的无人浏览的报表,大量的历史遗留任务等,这些都是我们在资产治理方面需要解决的问题。

2. 资产治理-数据流治理

网易云音乐使用人群数据(网易云音乐数据凌乱)(18)

数据流治理又分两个小点:分层模型数据和治理、单任务内数据流治理。

分层模型治理,本质上是数据标准、数据规范的一个落地。

单任务内数据流治理这块主要讲一下我们在做单任务优化的时候的大任务拆解策略。

大任务内部逻辑是否需要拆解我们从两个方面来考虑:

这边简要总结几个我们在优化过程中的经验:

网易云音乐使用人群数据(网易云音乐数据凌乱)(19)

案例:我们有一款数据产品是一个推歌的产品,核心是生产歌曲画像标签。歌曲画像我们总共做了400多个标签,之前随着产品快速迭代和烟囱式开发,产生了大量ADS表,其中包含许多重复的数据加工逻辑。在落地我们的模型设计规范之后,减少了十个ADS表,沉淀了50多个指标到CDM,让我们整个数据的产出时间提早了两个多小时。有的任务里面可能会加工特别多的数据,我们通过对单任务数据流的优化,实现了单表耗时减少30%以上。

3. 资产治理-生命周期治理

网易云音乐使用人群数据(网易云音乐数据凌乱)(20)

资产治理的另外一部分就是生命周期治理,生命周期治理主要考虑三个部分:

网易云音乐使用人群数据(网易云音乐数据凌乱)(21)

这块我们也借助网易数帆开发平台中的数据资产中心,支持我们做存储分析、计算分析、报表分析,来帮助我们去更好地管理任务和表的生命周期。通过这个平台我们已经下线了100多个报表和相关的任务,节省存储超过1PB。

05展望

最后对我们云音乐未来数据治理做一些规划和展望,我们希望做到的是自动化的数据治理方案。主要有几个方面:

06

精彩问答

Q:数据治理之后的显著成果有哪些?

A:第一个是数据规范的落地。之前整个数仓是没有一个明确的分层定义的,现在我们会将整个数据资产搬到我们的数据平台去,重新定义好分类,重新构建DWD、DWS、DIM。现在有一百多个已经分好数据域数据分层的模型。第二个是新的埋点正在逐步上线。因为涉及到历史埋点和新埋点的兼容问题,所以目前正在做上线前的测试以及新老数据的对比工作。资产治理方面,通过数据平台管理任务,我们下线了100多个报表,使得线上的一些核心任务能够能有更好的计算资源的保证。

Q:数据治理的成果如何来通过指标来量化?

A:基于我们网易的开发平台,有一些资产大盘。我们现在目前整个存储增长是一个什么样的情况,表的生命周期管理是什么样的情况,有多少推荐下线的表以及我们真的下线了多少,这些具体指标我们平台里面都会有。

Q:能详细说一下技术架构吗?

A:这个架构图DIM层、DWD层可能各个公司都一样,主要讲一下DWS层。比如从社交互动这一块,因为我们是个内容平台,除了有消费者之外还有生产者。所以我们根据内容、生产者、消费者这三个核心,以及坑位来去设计这一块。这里总共分了两条线,一个是我们区分多个维度的一个聚合的快照;另外一个是我们在做一些活动、报告或者总结的时候,经常会用到的比如用户的首次行为是什么样子的,歌曲的首次行为样子的这种信息。我们会针对这类需求再做一些公共模型,比如落到每种资源的首末次详情。除此之外,我们还会做比如播放或者互动行为的留存情况。这一块的设计是,在流量这块我们也会有一个简单的多维分析的聚合,也会有针对用户和坑位的首末次情况,以及用户和坑位的留存情况。其实在整体设计上来说,思路都是一样的,只不过我们从横向和纵向再进一步做了一个拆解。然后顶层这一块,因为我们经常会用到,比如歌曲画像里面,歌曲什么时候达到了它的播放峰值,还有其他类似相关的时间点级对应数据的记录,我们针对这类需求场景做了一些的累计实时的快照表,这样方便我们去对资源或者对用户进行整个生命周期的分析。

Q:可以聊一下数据和业务之间的关系吗?哪一个更重要?

A:数据和业务应该不存在说哪个更重要,因为我们数据需要根据业务来做迭代,业务需要用数据来做支撑。比如说怎样合理的分配我们的流量,怎样合理的分发歌曲,怎样合理的设计产品,这些东西都需要我们数据去做支撑。另外一个就是数据的价值,音乐版权的采买情况或者是ROI的分析,需要我们从数据层面来进行支撑。通过这一套数据我们做了一个版权评估系统去支持我们的业务做相关决策。

今天的分享就到这里,谢谢大家。

分享嘉宾:

网易云音乐使用人群数据(网易云音乐数据凌乱)(22)

分享嘉宾:宋志毅 网易云音乐

编辑整理:王剑芬 杭州觅谷科技

出品平台:DataFunTalk

,