八、Dataphin
Dataphin是阿里巴巴集团OneData数据治理方法论内部实践的云化输出,一站式提供数据采、建、管、用全生命周期的大数据能力,以助力企业显著提升数据治理水平,构建质量可靠、消费便捷、生产安全经济的企业级数据中台。Dataphin兼容多种计算平台,并开放可拓展的能力,以适应不同行业客户的平台技术架构和特定诉求。
Dataphin产品能力大图如下图所示
基本概念:
数据板块:(原名业务板块 < V3.3)是基于业务特征划分的命名空间。
- 例如,某企业的业务涉及零售和文娱,且业务数据相互独立,则零售和文娱就可以划分为两个数据板块。
- 数据板块内的数据是完整的,即一个板块内可以独立完成从数据采集到最后的数据加工。
- 项目可以归属至数据板块以实现规范建模功能,同一个数据板块中可能包含多个不同的项目,所以数据板块与项目的关系为1:N
项目:是一种物理空间上的划分,便于用户在数据中台建设过程中对物理资源及开发人员进行隔离化管理。
- 项目与底层计算引擎的物理空间(例如,MaxCompute项目,Hive Database)一一对映
- 根据数据板块内数据的加工的程度,会将数据划分为三层,每一层一般对应独立的项目:
- ODM(Operational Data Model)操作数据模型层,也叫贴源层(ODS - Operational Data Store)。用于存储从业务应用系统镜像复制(即不做任何过滤或者加工)的数据
- CDM(Common Data Model)公共数据模型层,简称公共层。用于建设板块级通用或者共用的模型。
- ADM(Application Data Model)应用数据模型层,简称应用层。用于面向具体业务应用场景的数据模型。
主题域:(原名数据域 < V3.3)是用于存放同一数据板块内不同意义的指标。一个数据板块会划分出多个主题域。
- 一个主题域代表一种业务含义。例如,商品域、交易域。
- 针对某个业务场景或业务职能的数据放到同一个主题域。例如,零售行业中采购、仓储、配送、都是属于供应链物流范畴,应该划分在同一个主题域。
- 通常根据业务应用系统来划分。例如,零售行业内业务系统的订单处理是一个独立系统,有独立的产研团队;客户管理系统是另一个独立系统,也有独立产研团队,那么就可以分别设置订单主题域和客户主题域
业务对象:(原名维度 < V3.3)人们观察事物的角度,是指一种视角,是确定事物的多方位、多角度、多层次的条件和概念
- 从业务上来说,业务对象是业务的参与者。例如零售业务中的买家,商品、类目和地域等可以具象化为业务实体,买家的性别,商品的价格为业务实体的属性。
- 从技术上来说,类似于SQL中group by后的字段。
业务活动:(原名业务过程 < V3.3)即企业的业务活动事件,通常为不可拆分的事件,是一个或者多个业务对象在某个时间或时间段,为了达成某种目的所进行的活动或者是某种活动的结果。业务活动有以下几个关键要素(属性):
- 活动主体即活动的发起者,是一个业务对象。
- 可选的活动客体即活动的参与者,可能有多个。
- 活动时间,可以是一个单点时刻,也可能是一个有开始和结束的时间段。
- 例如,电商订单是一个业务活动,业务活动由下单、支付、发货和确认收货等不可拆分的事件组成,每个事件就是一个业务活动。
概念理解示意图:
数据开发
数据开发包括编码研发和规范建模。其中规范建模:提供可视化、标准化、规范化和自动化定义数据,而非传统手动写SQL代码的方式,避免了统计指标计算口径不一致的情况。如下图:
规范建模包含有:维度逻辑表、事实逻辑表、汇总逻辑表、原子指标、业务限定、指标 。其中对应的关系如下:
各部分解释如下:
- 维度逻辑表:用于描述实体对象,包含对实体对象的各方面描述。例如会员普通维度逻辑表,包含会员名称、会员ID、会员邮件等数据
- 逻辑表名,不支持修改。命名规则为<数据板块名称>.dim_<业务对象名称>_<数据时效>
- 维度表类型:
事实逻辑表:业务活动(过程)添加多个属性后生成事实逻辑表。
原子指标:是对指标统计口径(即计算逻辑)、具体算法的抽象
- 衍生原子指标:是基于已提交原子指标,设定计算逻辑而构成的指标。例如,一个已提交的原子指标为支付金额,另一个已提交的原子指标为支付人数,您可以通过新建衍生原子指标的方式统计人均支付金额。
- 业务限定:用于圈定统计的业务范围。
数据萃取
萃取支持以实体(如消费者、设备)为中心的数据融通和深度挖掘,提供标签可视化配置及分类管理能力,帮助企业降低开发成本、快速构建标签体系。基于于Dataphin数据建模研发沉淀的数据或简单加工清洗后的明细数据,数据萃取提供实体识别与连接、行为数据清洗与整合、标签可视化配置及自动化调度的能力,包括ID中心、行为中心、标签中心和平台管理。如下图:
其中操作指引如下图:
一、ID中心
实体ID和ID映射表的详细说明如下:
- 实体ID:您可定义从不同视角对实体进行描述的ID,如消费者实体:会员ID、手机号;商品实体:价格、产地。
- ID映射表:您可引入以OneID为主键的ID映射表,以实现对实体ID的识别与连接,并应用于下游标签生产中
示例 :某用户的一个实体ID为Mobile(13900001234),该用户对应的OneID为001;OneID为001的用户具有另一个实体ID为Email(username@example.com),基于ID映射关系表,您就可以轻松的查询到Mobile为13900001234的用户的Email为username@example.com。ID映射表如下所示。
说明:
- OneID即实体唯一标识。基于当前已有的、丰富的实体ID数据,通过HOB-GN算法模型等,计算各系统和域中的多个独立的ID之间的关联关系,识别出核心ID和非核心ID,识别并聚合映像为自然界中的唯一实体,赋予该实体一个唯一的OneID,并最终产出ID映射表。
- ID映射表记录了能唯一识别实体对象的OneID及其相关的多个实体ID之间的映射关系。通过这个映射关系,您可以基于某一个实体ID快速地查询到描述该实体对应的其他实体ID值,并将不同实体ID对应的所有行为数据关联起来,更全面地刻画实体。
小结思考:
- 应用场景?主数据管理?
二、行为中心
行为数据规范化、结构化聚集。包含行为元素与行为规则,其中行为元素用于统一名称规范,避免数据关联遗漏;行为规则用于定义从不同的来源表中按照一定的规则抽取数据并统一存储,保证数据可用性。行为元素和行为规则的详细说明如下
- 行为元素:行为元素是行为的组成元素,行为由行为域、业务线、动作、对象构成,不同行为元素之间可自由组合
- 行为规则:行为规则定义每个行为从不同来源表的取数规则,可指定ID、对象、对象属性等对应的来源表字段
行为是用户(行为主体)有目的的活动,一个完整的行为包括行为主体、行为元素以及相关的行为属性信息。
示例 :顾客在电商平台淘宝网站购买美妆类商品的行为中,对应的行为主体和行为元素如下图:
行为元素包括行为域、业务线、动作和对象,Dataphin将定义的行为元素写入至行为定义表中。行为元素的详细说明如下表所示
行为规则:从业务数据表中筛选出符合行为的数据的规则,称为行为规则。行为规则筛选出的行为数据写入至行为规则产出表(oi_behavior_detail_d)中,如下示意图:
三、标签中心
标签用于刻画用户画像。标签包括规则统计类标签和注册上挂标签,详细说明如下:
- 1)、规则统计类标签:基于行为数据或标签数据筛选需要打标的对象,并为对象配置标签值,最后产出的标签数据写入至标签结果表。
- 2)、行为偏好类标签:聚集多种用户行为数据,结合时间、重要性等因素数据,通过界面配置偏好标签值的计算规则,从而获取用户商品价格偏好、商品类目偏好等数据,助力企业寻找业务发力点。
- 3)、注册上挂标签:将已开发好的标签上挂至萃取标签中心进行统一管理。后续可以基于注册上挂标签和规则统计标签构建标签逻辑表并为向下游应用提供服务。
典型的应用场景说明如下:
场景1:基于用户行为数据,筛选出需要添加标签的用户,并对用户自定义标签
例如,基于最近30天内购买商品、收藏商品和浏览商品的行为数据,筛选出购买、收藏和浏览商品的种类为动漫的用户,并指定用户的标签为文娱。
场景2:基于用户行为数据,筛选需要添加标签的用户,并配置用户行为属性的统计值为用户的标签
例如,基于最近30天内购买商品、收藏商品和浏览商品的行为数据,筛选出购买、收藏和浏览商品的价格为100~800元,且商品的种类为女装的用户,并配置商品价格的平均值为用户的标签。
典型实现界面
标签定义基础结构:
- 所属类目:即标签的类目
- 标签类型:如:规则统计
- 打标方式:为待打标对象配置标签值的方式。打标方式包括指定枚举值和指定统计值
- 结果表名:标签产出数据写入的表名
配置取数逻辑及标签值的计算规则【数据来源配置】(如上图):
- 圈选方式:按行为、标签筛选,行为筛选用于筛选行为数据统计的范围,即筛选到具体的行为规则
- 按共有行为属性过滤:基于已筛选的行为规则,配置行为规则的共有行为属性,以进一步筛选行为主体
- 按共有对象属性筛选:基于已筛选的行为规则,配置行为规则的共有对象属性,以进一步筛选行为主体。
标签值配置:为筛选到的待打标对象配置标签值
配置规则统计标签的调度参数及标签输出表的存储生命周期
标签存储:标签结果表的结构如下图所示
注册上挂标签:将Dataphin已有数据表(汇总逻辑表或物理表)与实体ID进行关联,并为数据表的某些字段添加标签。上挂标签创建完成后,仅生成实体ID、字段和标签的映射关系,映射关系的示例如下图所示
标签逻辑表:标签逻辑表用于将单个实体ID下多个标签进行关联,或将有关联的多个实体ID及其标签进行关联,关联后将实体ID字段、标签字段及时间分区字段写入至标签逻辑表。
例如,基于某顾客ID已生成身高、地域和爱好的标签,将身高、地域和爱好标签关联后,生成对应的标签逻辑表,如下图所示。
资产全景及目录
- 资产全景:对数据生产中的计算、存储、安全、应用等进行全链路盘点分析、发现问题并提供治理优化方案;支持查看可视化的建模研发数据成果及数据表明细。
- 资产目录:资产目录基于业务板块、数据域、维度、业务过程和所属项目的关联关系,集中展示数据。如下图:
资产详情:查看物理表、逻辑表、元表、镜像表、字段、函数、项目、数据源、数据服务和指标的详情
小结:
- 资产全景:包含了技术指标及元数据,如:计算任务、存储等。资产目录:偏应用的元数据。
数据标准
数据标准目标是为业务、技术和管理提供服务和支持。
- 业务方面:通过对实体数据的标准化定义,解决数据不一致、不完整、不准确等问题,消除数据的二义性,使得数据在企业有一个全局的定义,减少了各部门、各系统的沟通成本,提升企业业务处理的效率;标准统一的数据指标体系,让业务人员也能够轻松获取数据,并能够自助式的进行数据分析,为基于数据的业务创新提供可能。
- 技术方面:统一、标准的数据及数据结构是企业信息共享的基础;标准的数据模型和标准数据为新建系统提供支撑,提升应用系统的开发实施效率;数据标准化清晰定义数据质量规则、数据的来源和去向、校验规则,提升数据质量。
- 管理方面:通过数据的标准化定义,明确数据的责任主体,为数据安全、数据质量提供保障;统一、标准的数据指标体系为各主题的数据分析提供支持,提升数据处理和分析效率,提供业务指标的事前提示、事中预警、事后提醒,实现数据驱动管理,让决策者快速获取决策信息。
属性类型: 属性类型筛选,包含业务属性、技术属性、管理属性、质量属性、主数据属性、生命周期属性、安全属性。
数据标准内容如下图:
资产质量
包括质量规则配置、质量监控、智能报警等功能;满足资产质量的时效性、准确性、完整性、一致性、有效性
基本概念
- 质量规则:数据对象进行质量校验时的规则,质量规则可以覆盖到字段。
- 强规则:质量规则的校验结果对下游节点会造成较大影响。当强规则校验结果为异常时,下游节点的运维调度会自动停止,同时当前节点的状态标识为失败并告警给质量告警接收人。
- 弱规则:质量规则的校验结果对下游节点没有影响,同时不支持强制终止下游节点运维调度。如果弱规则校验结果异常时,则系统会告警给质量告警接收人。
质量规则定义:
资源治理
资源治理功能助您完成数据使用消耗的分析,全局把控计算与存储成本,提升使用效率。
资源治理具备资源统计分析能力,可智能识别当前系统内低价值的数据资产和数据任务,并进行优化提示。您可以在治理工作台中,一站式的进行资源的优化处理,全局把控计算与存储成本,提升系统使用效率。
数据服务
数据服务为您提供高效、便捷的主题式查询功能及有效的全链路企业内API生命周期托管,真正实现低门槛API开发,帮助您更好地进行数据资产应用以实现价值化。
数据服务(OneService)是基于Dataphin建设数据中台的最后一步。数据服务作为统一的数据服务出口,实现了数据的统一市场化管理,有效地降低数据开放门槛的同时,保障了数据开放的安全。
应用场景及使用流程:
上图概念说明:
- Dataphin数据源:配置数据表生成Dataphin数据源
- 服务单元:对数据表进行统一的元数据配置。
- 应用:消费数据服务(调用API或Dataphin数据源)的权限主体。
- 分组:将数据服务和应用根据特定功能或场景进行分类管理。
- API服务:集中为您展示已发布的API,API服务即API市场。
创建元数据规则:
- 在基于HBase、Elasticsearch或MongoDB数据源创建服务单元之前,需要先创建对应数据源中数据表的元数据,以实现通过元数据确定数据源中数据表的结构。
- HBase、Elasticsearch和MongoDB数据源为非关系型数据源,基于这三种数据源创建服务单元时无法直接读取到数据源的数据,因此在基于HBase、Elasticsearch或MongoDB数据源创建服务单元之前,需要先创建对应数据源中数据表的元数据。
- 示例如下:
创建服务单元规则:
- 创建单物理表服务单元:单物理表服务单元用于对业务数据源的单个物理表进行元数据配置(数据源类型为Hbase、ElasticSearch或MongoDB时,需要完成元数据的创建)。
创建多物理表服务单元:多物理表服务单元用于关联多个物理表,并对关联后的字段进行元数据配置。
创建服务API
基于已创建的服务单元或逻辑表在产品界面进行简单的勾选配置即可快速生成API,无需编写任何代码。
- 模板向导式生成API
自定义SQL生成API
- 直连API模式生成API是基于Impala数据源的数据表生成API
查询调用API
小结与思考:
- ID中心 oneID 与 实体ID 映射的应用场景?
- 标签管理?
- 服务API 元数据与服务单元?
- 标签规则配置、质量规则配置等设计器与引擎?
参考
八、Dataphin的更多相关文章
- 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成
阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...
- iOS可视化动态绘制八种排序过程
前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...
- 我的MYSQL学习心得(八) 插入 更新 删除
我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...
- Mina、Netty、Twisted一起学(八):HTTP服务器
HTTP协议应该是目前使用最多的应用层协议了,用浏览器打开一个网站就是使用HTTP协议进行数据传输. HTTP协议也是基于TCP协议,所以也有服务器和客户端.HTTP客户端一般是浏览器,当然还有可能是 ...
- CRL快速开发框架系列教程八(使用CRL.Package)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 八皇后算法的另一种实现(c#版本)
八皇后: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于 ...
- C语言学习 第八次作业总结
本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...
- Beta阶段第八次Scrum Meeting
情况简述 BETA阶段第八次Scrum Meeting 敏捷开发起始时间 2016/12/21 00:00 敏捷开发终止时间 2016/12/22 00:00 会议基本内容摘要 deadline临近 ...
- poj 1737男人八题之一 orz ltc
这是楼教主的男人八题之一.很高兴我能做八分之一的男人了. 题目大意:求有n个顶点的连通图有多少个. 解法: 1. 用总数减去不联通的图(网上说可以,我觉得时间悬) 2. 用动态规划(数学递推) ...
随机推荐
- Fastjson反序列化分析
依赖 先研究1.2.24版本的,版本高了就有waf了,不过也能绕,高版本以后再说 <dependency> <groupId>com.alibaba</groupId&g ...
- 强烈推荐:2024 年12款 Visual Studio 亲测、好用、优秀的工具,AI插件等
工具类扩展 1. ILSpy 2022 (免费) ILSpy 是 ILSpy 开源反编译器的 Visual Studio 扩展. 是一款开源.免费的.且适用于.NET平台反编译[C#语言编写的程序和库 ...
- 3 JavaScript字符串操作
3 字符串操作 常用的字符串操作相关的方法: s.split() 字符串切割 s.substr(start, len) 字符串切割, 从start开始切, 切len个字符 s.substring(st ...
- #树链剖分,LCA#洛谷 3398 仓鼠找sugar
题目 多次询问求树上的两条路径是否有公共点 分析 有公共点当且仅当一条路径的LCA在另一条路径上, 否则一定会形成一个环,那树剖求LCA判断一下LCA是否在另一条路径上即可 代码 #include & ...
- Health Kit申请验证有问题?解决方案全解析
在接入Health Kit的过程中,应用上线前需要完成申请验证环节,获得正式的运动健康权限. 我们贴心整理了申请验证被驳回的高频问题,您可以在申请前阅读以下内容,避免在您的申请材料中出现下述问题影响审 ...
- 每日一题--Python打印金字塔
def day1(num): s = 'abcdefghijklmnopqrstuvwxyz' * (num // 26 + 1) for i in range(1, num + 1): print( ...
- HH的项链—树状数组
题目描述 HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义. HH不断地收集新的贝壳,因此他的项链变得越来越长.有一天 ...
- mysql 简单进阶 ———— 重构查询[二]
前言 简单整理一下重构查询. 正文 为什么我们需要重构查询,原因也很简单,那就是查询慢. 为什么会查询慢? 查询性能慢底下的最基本的原因是访问的数据太多. 某些查询不可避免地需要筛选大量的数据,但这并 ...
- nginx 如何代理websocket
前言 下面是配置nginx websocket 的代码. # HTTPS server map $http_upgrade $connection_upgrade { default upgrade; ...
- Vue3.0里为什么要用 Proxy API 替代 defineProperty API
一.Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象 为什么能实现响应式 ...