写点什么

网易严选如何打造数仓规范和评价体系?

  • 2020-09-13
  • 本文字数:3358 字

    阅读完需:约 11 分钟

网易严选如何打造数仓规范和评价体系?

数据为王的时代,数据量从最初的几十 G,慢慢沉淀到几十 T,甚至几十 PB 的量。数据工程师,也从最初的 ETL 工程师慢慢成长为数据全栈工程师:采集、同步、模型、离线、实时、规范、平台、工具、产品、交互、保障、数据体系等等。


数据仓库,是我们数据工程师的无形产品,不同于可视化、交互型产品的评价体系:拥有比较明确的评价指标 MAU、DAU、GMV 等。数据仓库一直没有比较系统的评价体系,下面从概念-平台-规范的链路来介绍一下严选数据仓库,最后跟大家交流一下数据仓库的评价体系。

数据仓库基本架构

这里概览讲一下严选数据仓库的分层逻辑,下面是严选数仓的框架图:



数据仓库分层没有绝对的规范,适合的就是最好的,特别是企业已经有一个初版的数仓的时候,需要做好改造成本和可理解性之间的平衡。


以业务数据的流向划分,目前严选数据把模型分为三层,ods,dw 和 dm 层。其中 ods 是操作数据层,保留最原始的数据;dw 包含 dwd 和 dws 层,这两层共同组成中间层;dm 是应用层,基于 dw 层做汇总加工,满足各产品、分析师和业务方的需求。


  • ODS 层(操作数据层):不对外开放,把业务系统数据同步到数仓。数据格式保留业务系统的数据格式;目前主要通过 datahub 解析 binlog 来实现的,目前严选的 ods 层数据同步主要以全量数据为主。

  • DWD 层(明细层):对外开放,主要作用是沉淀一些公共的逻辑,常用维度属性的关联等,下游经常在一起使用的模型会在这一层做宽表处理,减少事实表和维表的关联,减少重复的关联加工。

  • DWS 层(汇总层):对外开放,主要沉淀严选数据的公共指标,dws 层是整个严选数据对外开放和使用的核心,是严选最核心的数据资产。

  • DIM 层(维表):对外开放,主要是一些常用维表,比如商品维表、sku 维表、渠道维表。

  • DM 层(应用层):对产品开放使用,支持数据产品、报表的使用,主要是不公用复杂指标的汇总和计算。

数据仓库开发平台

严选数据仓库分离线和实时两部分。


离线部分由网易易数提供支持。网易易数(EasyData)是网易数帆旗下的全链路数据生产力平台,提供全链路数据产品和服务,覆盖数据分析及可视化、数据研发、数据治理、数据服务化等,其前身为网易猛犸——现已按模块拆分,命名为 Easy 系列产品,如离线开发 EasyDev。



实时部分由 Atom 平台提供支持,Atom 是严选产技自研的一款实时数据管理和开发平台。


严选数据仓库规范

在其他工种开发的眼里,数据仓库的入门门槛非常低,低到技术鄙视链的最末端:“噢……,他们就是写 SQL 的,他们整个团队都是写 SQL 的……”,顿时天空飘过一万匹神兽。曾经和未来都有很多人会来挑战数仓工程师存在的意义:“我也能干!”,但是实际情况是:naive!具体可参见严选数据仓库的架构图,这其中的每一个 icon 背后都有一套工具、平台,甚至于一个团队来支撑运转。


严选数据仓库是一套方法论,从规范定义、模型设计到数据服务,再到数据可管理、可追溯、可复用。严选数据仓库遵循维度建模理论,参考了阿里巴巴的 Onedata 建模理论,核心框架由三个规范组成:《严选-指标定义规范》 ,《严选-模型设计规范》和《严选-数据开发规范》,外层由辅助规范落地的若干工具、平台组成:仓颉-指标管理系统、燧人-指标地图系统、UDS-数据质量中心、EasyDesign-模型设计中心等。



1、指标定义规范


指标定义规范,目的是统一开发 &产品对指标的定义。通过对原子指标的命名规则、派生指标的命名规则和派生词的定义来完成。


指标定义体系,是数据建设体系的基础和内核,为了杜绝产品经理命名引起的歧义,以及后续带来的使用和维护以及解释成本。



2、模型设计规范


模型设计规范,目的是统一数据开发对模型的命名定义。通过域+更新方式,域+维度+更新周期的方式来完成。



3、数据开发规范


数据开发规范,目的是提高数据开发的 SQL 开发能力。通过限制各级子查询的缩进形式,子查询的规范等来完成。

数据仓库评价体系

近期的一些思考跟大家做一个交流,一家之言,欢迎拍砖。

基本要求

数据安全和数据质量是数据仓库的生命线!不可逾越、不可触犯。

评价体系

下图是近期整理的严选数据仓库的 6 个评价角度



1.数据规范


数据规范,最终目的是提高开发的整体水平。遵循严选数据规范:《严选-指标定义规范》、《严选-模型设计规范》和《严选-数据开发规范》,同时由工具和平台来保障规范的落地并监督评估规范落地的效果。


2.数据安全


数据安全,这个命题怎么强调都不为过,特别是近期数据安全问题频发,51 信用卡,大大小小的放贷公司。因此作为数据从业者,遵循《网易商业行为准则》,不对外泄露业务数据,时刻做到数据指间过,安全心中留。


3.数据质量


数据质量由数据本身的质量和数据建设质量两部分组成:


  • 数据本身质量:数据开发对数据质量负责,保持对数据的敬畏心,结合《严选-线上故障定义规范》,通过故障等级和次数指标来量化考核。

  • 数据建设质量:可以从两方面来考量:易用性和丰富性;易用性是结合数据规范来考量的:所有的数据都遵循严选数据规范,目的是降低数据的使用成本;丰富性是考量核心数据资产的广度:dw 对外服务的应用数量,dw 层管理的数据量,dw 层本身跨层依赖的数量等。



4.数据稳定性


  • 数据稳定性:建立完善数据仓库的值班制度,同时打通值班和故障平台,定期 review 数据本身问题导致的起夜的数量和影响面,量化考核具体开发。

  • 平台稳定性:建立完善的数据仓库和平台值班制度,打通值班日志和故障系统,定期 review 平台问题导致的起夜数量和影响面,量化考核平台。


5.持续建设机制


  • 沉淀机制:严选数据仓库已经建立了和分析师定期交流的机制,定期交流沉淀分析师的核心指标,不断丰富严选数据核心资产。

  • 数据治理:有上有下,通过和网易易数合作打通逆向数据流,通过下线冷数据冷任务,推动开发治理不规范模型和数据,来达到规范模型和节约存储的目的。


6.数据开发效率


较前 5 个角度对比,数据开发效率较难量化,可以从两个方面来考量:开发规范的自动化程度和平台使用体验。

严选数仓评价实践

依照前文提到的 6 个角度,严选分别有与之对应的工具来支持。


1.数据规范


所有的数据规范,最终目的都是用来提高开发者的水平、提高代码的质量。在开发水平参差不齐的情况下,需要有平台工具保障规范的落地。在过去的一年中,我们和网易杭州研究院一起规划落地了网易易数 EasyDesign 模型设计平台:辅助《严选-指标定义规范》和《严选-模型定义规范》的落地。


下图是依托网易易数 EasyDesign 实现的模型设计线上化产品界面。



衡量数仓建设水平可以通过以下 3 个指标:总 ods 表被跨层依赖率,被跨层依赖的 ods 表数量,有下游 ods 表被跨层依赖率三个指标来完成。




2.数据安全


每年有很多因数据导致的资损问题产生,我们从数据的上线流程、测试工具、测试环境等三个方面入手,让过程合规,结果合法。



3.数据稳定性


严选和网易易数共建的任务运维中心 EasyTaskOps,实现智能基线预警,多基线精细化运维;目前我们 4 条基线完成率超过 90%。


2020 年上半年,严选和网易易数共建了数据运维中心,上线了以下内容:


  • 基线管理:通过任务历史执行情况,自动判断基线内任务逾期可能性,进行破线预警。

  • 失败和逾期报警:对于失败和逾期的任务,可以配置电话、短信 or 邮件报警。

  • 评价指标:基线完成率、出错任务数、处理及时率等来评价任务的稳定性。


4.持续建设机制


迭代更新、持续建设,这是衡量一个数据仓库活力的一个重要机制,我们通过指标一致性项目,梳理了数仓持续建设机制,数据紧跟业务成长,数据仓库才会保持活力。



通过和网易易数一起推动 EasyCost 升级,通过梳理存储相关规则、规范相关规则、计算相关规则、质量相关规则,上半年一共下线 3.4w 张表,节约了 1.2PB 的存储。


5.数据开发质量


通过网易易数 EasyDesign 平台承接规范的落地,整个上半年数据开发通过平台新建 200+dw 层表,强有力的保障了规范的落地;我们的最终目标是通过各种方法策略来提高数据开发的素质,使用工具目的是帮助大家养成遵循规范的习惯。


6.数据开发效率


持续建设机制、数据规范的落地,最直接的反应就是数据开发效率的提升。严选全渠道数据基建项目中,交易域+商品域的离线+实时数据校验一次性通过,大大降低了数据开发的迭代修复成本。


作者简介


乙峰:多年数据领域工作经验,专注数据架构、模型设计和规范执行落地等。严选数仓交易域负责人,负责交易域模型设计落地和对外服务。


2020-09-13 20:175020

评论 2 条评论

发布
用户头像
请问能否详细讲下编码规范工具的大致功能?再请问一下,数仓测试过程使用了哪些工具提升效能?
2021-03-31 23:24
回复
用户头像
这样的成本高么?
2020-09-14 16:12
回复
没有更多了
发现更多内容

三步开启你的网络服务全球动态加速之旅

声网

网络 人工智能「

公安重点人员动态预警管控系统建设,警务情指一体可视化决策系统

电微13828808271

1300亿次!百度地图发布生态全景3.0 日均位置服务请求次数再创新高

百度开发者中心

人工智能

【CSS 学习总结】第二篇 - HTML 扩展简介

Brave

CSS 12月日更

恒源云(GPUSHARE)_云GPU服务器如何使用OpenCV?

恒源云

OpenCV 计算机视觉 图像识别

Dubbo框架学习笔记九

风翱

dubbo 12月日更

云脑启智 开源赋能 | 2021新一代人工智能院士高峰论坛暨启智开发者大会顺利举办

OpenI启智社区

人工智能 院士峰会 启智社区

盘点 2021|代码之外:人生最大的幸运就是努力没有白费 -- 我的2021年度总结

宇宙之一粟

职场成长 生活记录 12月日更 盘点2021 代码之外

《谈谈人生选择的思考逻辑》读后感

Changing Lin

12月日更

CRM系统如何帮助企业改进销售流程

低代码小观

低代码 销售管理 CRM 无代码 CRM系统

如何突破浏览器12px限制

云小梦

CSS JavaScript html Vue transform

52 K8S之Harbor项目

穿过生命散发芬芳

k8s 28天写作 12月日更

公安合成作战指挥中心平台建设方案,情指勤一体化系统开发建设

a13823115807

公安合成作战系统开发 情指勤一体化合成作战系统

【MongoDB学习笔记】-使用 MongoDB 进行 CRUD 操作(下)

恒生LIGHT云社区

数据库 mongodb

toB企业的客户续约提醒

明道云

公安大数据合成作战平台建设,合成作战指挥中心平台开发

电微13828808271

OPPO大数据离线计算平台架构演进

安第斯智能云

大数据 spark YARN

手把手教你配置php的redis扩展

恒生LIGHT云社区

php redis php扩展

DongTai 社区双周报 | v1.1.4 版本新功能解析来啦!

火线安全

Spring Boot开发,有这个包就够了!

sleeper

Java DevOps springboot 框架

【AI最前线】精准优质-资讯|分享|热议第45期

百度大脑

人工智能「

教你用Camtasia简单几步制作精美片头

淋雨

Camtasia

作业三

施正威

CSS之变量(三)心形加载条

Augus

CSS 12月日更

详解 Rainbond Ingress 泛解析域名机制

北京好雨科技有限公司

区块链数字藏品平台开发助力潮玩行业新发展

电微13828808271

【年度评选】让我们为2021留下浓墨重彩的一笔

InfoQ写作社区官方

2021年度评选 热门活动

20个提升效率的JS简写技巧

CRMEB

百度王海峰:深耕自然语言处理近30年,推进AI融合创新

百度大脑

人工智能

重启iptables为啥内核参数不对了?

BUG侦探

Linux iptables

【等保小知识】等保一级二级三级哪个要求更高?

行云管家

网络安全 等保 等级保护 等保20

网易严选如何打造数仓规范和评价体系?_大数据_乙峰_InfoQ精选文章