阿里云云原生一体化数仓 — 数据建模新能力解读

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 本文主要介绍DataWorks智能数据建模的核心产品能力。

分享人:阿里云智能 产品专家 闫建丽


没来得及看直播的同学,可以观看直播回放。
直播回放:
https://developer.aliyun.com/live/249656


DataWorks智能数据建模-产品建设背景

2009年,DataWorks就已经在阿里巴巴集团立项,支撑阿里巴巴数据中台建设,一路见证阿里巴巴大数据建设之路。2020年之前,DataWorks支持的是开发视角、自底向上、小步快跑,快速满足业务需求为首要目标的数仓构建模式,然而随着内部数据模型越来越多,线下评审流程越来越复杂,淘宝、天猫、盒马、菜鸟等多个数据仓团队开始和DataWorks合作,构建DataWorks智能数据建模产品,支持业务视角自顶向下的规范化数仓建设,也可以支持传统的开发视角、自底向上的数仓构建模式,真正做到规范化、可持续发展地构建数据仓库。2021年云栖大会,DataWorks智能数据建模正式发布,在阿里巴巴集团内各个业务团队投入生产,并在阿里云上服务世界500强亿滋中国等众多客户。

1.png

DataWorks智能数据建模-业务痛点

在智能数据建模产品正式发布之前的这十多年时间里,阿里巴巴的各个数仓团队实际上并不是不需要进行数据建模,而是采用线下excel建模评审的方式在开展这一项工作,流程本身非常规范,模型的上线及变更有着非常严格的评审流程,但即使如此,线下建模还是有它的弊端存在。线下建模的弊端主要体现在三大方面:规范定义、模型设计、数据开发。

从规范定义方面来讲,存在的主要问题是:

数仓规范与模型设计分离,符合规范的模型设计对建模师本身的要求非常高,既要能把业务需求高度抽象进行模型设计,还需要牢记规范的点点滴滴。

数据指标定义效率低,且指标的数据加工逻辑分离,过去传统的单个创建指标效率相对低下,且无法保证指标的唯一性,指标的加工逻辑和指标定义本身也存在脱节的情况,最终导致指标真实口径无法统一,进而带来了大量的针对指标结果数据不一致的对焦工作。

应用层缺少规范,大多数应用层的建设都面临需求多变、需求开发时间紧、任务重的特点,也对应用层模型规范的管理带来了非常高的挑战。既要能够满足业务需求,又要能够符合规范,其实很难再短时间内完成这些工作。

从模型设计方面来讲,存在的主要问题是:

纯人工的模型设计效率低下,比如要在excel里做模型设计,并且需求在excel里做维护。

从数据开发方面来讲,存在的主要问题是:

模型设计和物理表开发分离,模型设计是模型设计,物理表开发是物理表开发,很有可能会造成物理表开发逻辑与模型设计理念存在或多或少的差异情况。

此外,本地建模,还会存在着一些隐藏的问题,如文件管理混乱、硬件设备故障、工作交接难等问题。

2.png

DataWorks智能数据建模-业务价值

数据建模作为数仓规范,最大的受益者是企业自身,但企业的价值需要通过一线研发人员的工作得以体现。对于一线研发同学来讲,智能数据建模能为大家带来的最大的好处是提效,相比传统的纯开发或者线下建模线上开发的工作方式来说,智能数据建模能为大家带来更加更加高效的建模和研发方式。由此,帮助企业做好企业数据体系的规范化建设,让数仓规范真正能落到实处。企业数仓规范真正做好以后,能为企业沉淀大量的体系化的核心数据资产,同时,也能顺其自然地为企业节省大量的存储和计算成本。

3.png

DataWorks智能数据建模-数据建模方法论

众所周知,维度建模和范式建模都是目前大家所熟知的建模方法论,两种建模方法论,各有各的优势,也有各自的劣势,这里不对两种方法论进行展开介绍。阿里巴巴集团大多数数仓团队面向的业务又多具备高速发展、变化迅速、海量数据的业务特点,故以维度建模为主。智能数据建模产品由于它是生于阿里,长于阿里,所以我们也是基于维度建模方法论进行的产品建设,但也不是说智能数据建模完全不体现模型关系,DataWorks智能数据建模产品也会提供关系设计及展示相关的产品功能。

4.png

DataWorks智能数据建模-数仓分层

一般来说数仓会分为三大层,ODS、CDM、ADS。

其中ODS,又称为贴源层。ODS主要用户存储业务系统同步来的业务数据。一般情况下,我们不会对ODS层的数据做过多的加工,以便于后续在ADS和CDM数据出错时的溯源。换句话说,ODS不是数仓同学设计出来的,是对业务系统数据的直接同步。

数仓建设最最重要的公共层CDM层,CDM层需要对业务进行高度抽象,需要具备通用性、易用性、复用性,因此,公共层的建设对数仓同学的要求是非常高的,既精通建模方法,同时也对业务情况了如指掌。CDM层再进行细分,一般会分为DIM层-维度表,DWD层-明细数据表,DWS层-轻度汇总层。

数仓建设最难管但管好了效果非常明显的应用层ADS层,ADS层主要面向业务进行模型设计。因此,大家一定要先了解清楚模型的主要应用场景,是普通的报表分析,还是数据产品的调用等等,不同的应用场景,模型设计需要考虑的因素也不一样。如果规范化ADS层,需要建设的表会减少,通过统一逻辑去查询,会使计算和存储成本降低。

5.png

DataWorks智能数据建模-名词释义

•业务分类:业务板块是某一大类的业务的指标和维度的集合,如电商,文娱;

•数据域 :数据域是指一个或多个业务过程或者维度的集合,如交易域,日志域;

•业务过程:业务过程指企业的业务活动事件,如下单,支付;

•数据集市:面向某个应用场景或者产品的数据组织,一般会依赖数据公共层;

•主题域:将数据集市按照分析视角进行切分,比如在电商行业,通常分为会员、交易、商品等;

•维度:维度是用于分析数据的一个角度,一方面对维度进行可控管理,另一方面指导维度表的设计,如地理维度,时间维度;

•维度属性:维度属性隶属于一个维度,用来描述维度的属性,如地理维度中的国家名称,省份名称;

•时间周期:时间周期是用来明确数据统计的时间范围或者时间点,如最近30天,自然周;

•修饰词:修饰词是对指标统计业务范围的划定,指除了统计维度外指标的业务场景的限定抽象,如PC端,无线端;

•原子指标:原子指标是一般不可再细分的度量,原子指标命名=业务过程+度量。,如支付金额,访问人数;

•派生指标:派生指标直接用于汇总表的字段,派生指标由原子指标、时间周期、修饰词(可选)组成,如最近1天海外买家支付金额。

DataWorks智能数据建模-一级产品功能

DataWorks智能数据建模产品分为四大板块,分别是数仓规划、数据标准、维度建模和数据指标。其中数仓规划、数据标准和数据指标最终都为维度建模服务。

6.png

DataWorks智能数据建模-二级产品功能

数仓规划是数仓的顶层设计,包含分层划域、维度管理、建模空间。从产品定义来讲,这些内部并不复杂。难点在于数仓怎么根据业务场景来划分。建议先用思维导图画好,有了一个大概雏形之后,再录入产品。其中一个重点功能是可视化的表名检查器配置,检查器用于规范目标分层中表的命名,将同一分层中表名称的命名格式统一,便于通过表名称,即可了解到该表所属的业务类型、作用功能、数据粒度等信息。同时,可以帮助减少后期的运维成本。系统默认创建的数仓分层和自定义新建的数仓分层均可以配置数仓分层检查器。对于建模同学来讲,建模效率会提升且产出的内容符合规范。

数据标准包含数据标准、标准代码、度量单位、命名词典。数据标准和标准代码设置好之后,可以和模型字段做关联,关联之后模型字段名称、值等都需要符合标准的设置。

数据指标包含派生指标、原子指标、修饰词、时间周期。这里重点需要说明批量创建指标,勾选构成派生指标的原子指标、修饰词、时间周期,就可以生成一系列派生指标,用于模型设计。指标创建好后有两个作用,一是可以把指标批量导入到模型里面,作为模型的字段存在。另一个是模型字段已经存在,需要跟指标做关联。这样在物化之后可以找到指标对应的是哪个模型。

维度建模支持正向建模和逆向建模。

逆向建模解决的是已有数仓冷启动的问题,主要用于将其他建模工具生成的模型反向建模至DataWorks的维度建模中。例如,当已通过其他建模工具生成模型,此时,想更换为DataWorks的智能建模进行后续建模工作,则可以使用逆向建模功能。该功能无需再次执行建模操作,即可快速将已有模型反向建模至DataWorks的维度建模中,节省了大量的时间成本。

正向建模支持可视化建模、excel导入、多语言建模。可视化建模类似网页版excel的方式,把模型字段信息统一管理。在这个过程中,可以复用已经存在的物理表表机构,提升建模效率。多语言建模支持DDL、自研FML方式建模。

建议先用可视化建模,如果需要修改字段,可以用DDL或者FML方式做字段的修改。在建模过程中,设置里某一字段为主键字段,非空字段,或者关联了数据标准里的标准代码,DataWorks智能数据建模可以一键自动生成质量规则。

当把模型发布到引擎中比如MaxCompute生成环境,可以自动生成一段数据开发的简代码。

7.png

DataWorks智能数据建模-数仓规划

数仓规划的整体架构如下,首先看中间部分业务分类,比如阿里的业务分为天猫、淘宝、菜鸟等等。也可以根据各个数仓团队面向的业务来划分。公共层分为三层,也就是上文讲到的DWS、DWD、DIM。DMI下需要区分数据域,维度表只需要分到数据域就可以。明细表需要细化到数据域和业务过程。轻度汇总层只需要指定到数据域就可以。在应用层这一部分主要是ADS层,在实际工作中可能不止有ADS层还会有DIM层。产品侧是支持大家灵活设置,如果有需要可以自行创建。ADS层需要指定到具体的数据集市和主题域。这是模型在分层化域时需要考虑到的一整套体系。如果数仓团队负责多个业务,多个工作空间,需要复用同一套数仓规范,可以使用一下建模空间功能。建模空间是当需要管理多个DataWorks工作空间且需要复用一套数仓规划时,面对跨多个工作空间的复杂数据体系,可以通过设计空间来共享一套数据建模工具,针对整个数据体系进行统一的数仓规划、维度建模及指标定义等工作。

8.png

DataWorks智能数据建模-逆向建模

逆向建模如下图所示,可以选择表所在项目空间,表名匹配规则需要指定是模糊匹配还是精准匹配,在指定表命名规范后,会根据这些关键词来检测表,匹配规范,最终成功生成模型。

9.png

DataWorks智能数据建模-正向建模

正向建模支持创建维度表、明细表、汇总表等。基本信息版本主要是分层化域以及表名的自动生成。字段管理部分可以从数据指标导入派生指标,从表/视图导入,可以基于已有的物理表或视图把表结构同步,其中字段可以自定义设置,不关注字段可以隐藏起来,本质上是一个excel操作。当模型已保存后需要修改可点击代码模式进行修改。

10.png

DataWorks智能数据建模-数据开发简代码

简代码支持根据建模信息自动生成ETL简代码,代码中模型信息包含:模型分层化域基础信息,模型字段中英文,建模依赖的物理表表名及字段名,模型的关联表关联表字段信息等;数据开发同学只要基于此代码进行casewhen ,where条件等业务信息的补充即可。

11.png

DataWorks智能数据建模-数据指标

下图左侧为筛选原子指标、修饰词、时间周期。右侧为在批量选择完后,会自动生成能够生成的指标,黄色代表指标没有生成,绿色代表指标已生成。

12.png

DataWorks智能数据建模-数据标准

数据标准会支持字段标准,会对日常用到的一些词语,做一个标准定义。标准代码是对字段值有要求。数据标准还有度量单位和命名词典。当这些内部定义好之后,维度建模过程中都可以做关联,如果是关联了标准代码,可以自动生成质量规则。

13.png

DataWorks智能数据建模-多引擎支持

14.png

DataWorks智能数据建模-售卖与价格

DataWorks智能数据建模目前已经开放售卖,最小规格(small)有首月199元试用活动,欢迎大家开通试用体验。https://dw-common-buy.data.aliyun.com/

注:智能数据建模需要搭配DataWorks增值版本使用,增值版本-专业版目前也有首月1元活动

注:计费区间的对象数量不等于所有表数量,主要指各类模型表与指标的数量,具体计数详情参考帮助文档或者智能数据建模产品首页。

15.png

更多 阿里云大数据产品>>

MaxCompute 二维码拼图.png

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
22天前
|
Cloud Native 测试技术 开发者
终于!我找到了开发的得力助手!阿里云天池云原生编程挑战赛参赛攻略
在比赛过程中,通义灵码插件成为了我开发工作的得力助手。这个插件提供了智能代码补全和错误提示功能,大大提高了我的编码效率。尤其是通义灵码能够实时分析代码,给出优化建议,让我避免了很多潜在的错误。
203 64
|
22天前
|
人工智能 缓存 Cloud Native
用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略
《Higress AI 网关挑战赛》正在火热进行中,Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。本文是他整理的参赛攻略。
513 66
|
14天前
|
Cloud Native 数据库 开发者
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
|
26天前
|
人工智能 Cloud Native 安全
统一多层网关好处多,阿里云云原生 API 网关打造全能型网关
本文分享了作为一款全能型网关【云原生 API 网关】是如何帮助企业落地统一网关架构的。
7684 6
|
1月前
|
存储 运维 Cloud Native
"Flink+Paimon:阿里云大数据云原生运维数仓的创新实践,引领实时数据处理新纪元"
【8月更文挑战第2天】Flink+Paimon在阿里云大数据云原生运维数仓的实践
204 3
|
10天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
9天前
|
运维 监控 Cloud Native
自动化运维的魔法书云原生之旅:从容器化到微服务架构的演变
【8月更文挑战第29天】本文将带你领略自动化运维的魅力,从脚本编写到工具应用,我们将一起探索如何通过技术提升效率和稳定性。你将学会如何让服务器自主完成更新、监控和故障修复,仿佛拥有了一本能够自动翻页的魔法书。
|
9天前
|
弹性计算 Kubernetes Cloud Native
云原生时代的微服务架构演进之路
【8月更文挑战第29天】在数字化浪潮的推动下,云原生技术正以前所未有的速度改变着软件开发和运维的面貌。本文将深入探讨微服务架构在云原生环境下的演进过程,从单体应用到微服务的拆分,再到容器化部署,最后实现自动化管理和弹性伸缩。我们将通过一个实际案例,展示如何将传统应用迁移至云原生架构,并分析在此过程中所面临的挑战及应对策略。文章旨在为读者提供一条清晰的路径,指引如何在云原生时代构建和优化微服务架构。
|
1天前
|
监控 Cloud Native 持续交付
云原生时代的微服务架构实践
【9月更文挑战第5天】随着云计算技术的飞速发展,云原生已成为现代软件开发的重要趋势。本文将深入探讨在云原生环境下,如何有效实施微服务架构,包括服务拆分、容器化部署、持续集成与交付等关键环节。通过具体案例,我们将展示如何在云平台上构建弹性、可扩展的微服务应用,并讨论在此过程中可能遇到的挑战及解决策略。
|
2天前
|
Kubernetes Cloud Native Docker
云原生技术:容器化与微服务架构的融合之道
【9月更文挑战第4天】在数字化时代的浪潮下,企业追求敏捷、高效、可扩展的IT架构成为共识。云原生技术作为现代软件部署的黄金标准,其核心理念在于推动应用的快速迭代与无缝迁移。本文将深入探讨云原生技术的精髓——容器化与微服务架构如何相互促进,共同构建起适应云计算环境的应用生态系统。我们将通过实际案例,揭示如何在云平台上利用这些技术实现服务的解耦、弹性伸缩及自动化管理,进而提升企业的竞争力。
下一篇
DDNS