【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

  • 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:174687

评论 2 条评论

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

5面阿里斩获offer(Java岗),原来阿里面试官总喜欢问这种问题

进击的王小二

Java java面试 大厂面试

Python爬虫实战 | 利用多线程爬取 LOL 高清壁纸

JackTian

Python 程序员 爬虫 后端 实战

面试官:如何防止 Java 源码被反编译?我竟然答不上来。。

Java 编程 程序员 架构 面试

端智能研发核心套件:MNN 工作台深度剖析

阿里巴巴终端技术

深度学习 ios android 移动端 端智能

喜大普奔!BFE 控制平面正式开源发布!

百度开发者中心

负载均衡 云原生 Go 语言 开源技术

揭秘!探访百度AI反诈第一线

脑极体

从区块链到元宇宙 Metaverse

devpoint

区块链 元宇宙 10月月更

Android 音视频 - EGL 源码解析以及 C++ 实现

声网

android 音视频 OpenGL ES

硝烟弥漫的安全战场,只等一位超级英雄登场

白洞计划

华为全球首发《全光自动驾驶网络白皮书》,助力打造品质联接新体验

各位Oracle DBA们,你们期待的在线实训环境终于来了

墨天轮

MySQL 数据库 oracle redis 实训

[架构实战营] 模块一作业

张祥

架构实战营

华为云企业级Redis:助力VMALL打造先进特征平台

华为云数据库小助手

GaussDB GaussDB ( for Redis ) 华为云数据库

EMQ 映云科技5G 边缘计算工业解决方案获中国移动创客马拉松大赛三等奖

EMQ映云科技

5G 物联网 边缘计算 移动互联网

来,肝了这份网络安全学习计划无敌

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 学习安全

kotlin库,大佬带你看源码

android 程序员 移动开发

开源应用中心 | KodBox快捷高效的私有云在线文档管理系统

开源技术

kotlin实现接口,已开源下载

android 程序员 移动开发

ironSource 斩获 2021 年度鲸鸣奖三大重量级奖项

企业系统太多?WorkPlus让工作事半功倍

WorkPlus

产业数字化的思考

陈俊

3面蚂蚁,一路过关斩将 成功拿到offer定级P6,大厂面试雀食有点难!

进击的王小二

java面试 大厂面试 阿里巴巴面经总结 java

EMQ 在2021电力人工智能大会:稳健数据基础设施架构支撑电力数字化发展

EMQ映云科技

人工智能 物联网 电力 mqtt

自定义View:resolveSizeAndState方法

Changing Lin

10月月更

kotlin开发网站,字节跳动大神讲座

android 程序员 移动开发

RTE2021 实时互联网大会参会感想

轻口味

1024我在现场 10月月更

打造价值交付体系,企业 CIO 如何应对 DevOps 命题?

BoCloud博云

DevOps 云原生

以“有用”为圆心:重新认识智慧城市的“高手之路”

脑极体

GrowingIO 数据安全实践

GrowingIO技术专栏

隐私保护 数据安全 隐私安全 数据安全法

技术干货 | 闲鱼:一个优秀的 Push 平台,需要经历怎样的前世今生

蚂蚁集团移动开发平台 mPaaS

消息推送 push mPaaS

从芯片公司到VR,字节跳动为了元宇宙加码布局

海比研究院

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