大数据-玩转数据-阿里Dataphin的规范建模

本文详细介绍了阿里云数据仓库的规范建模过程,包括维度、业务过程、原子指标等关键概念。建模基于明确的业务需求,利用工具实现体系化管理。维度分为普通、层级、枚举和虚拟,业务过程关注不可拆分的事件。事实逻辑表反映了业务过程,原子指标定义了统计口径。此外,还涉及业务限定、派生指标、汇总逻辑表和建模引擎的使用,强调了统计逻辑的无二义性和一致性。
摘要由CSDN通过智能技术生成

一、说明

数据仓库的规范建模,可以用脚本,也可以用工具,阿里云的数仓规范建模进行了自身的工具化管理,致力于提供体系化和系统化的数据建模的功能。

建模应基于明确的业务需求,通过顶层设计,规范定义数据的标准及计算接口。、

阿里云的数据仓库建模过程包含:维度、业务过程、原子指标、衍生原子指标、业务限定、派生指标、事实逻辑表、维度逻辑表、汇总逻辑表、建模引擎几个部分。

二、规范定义-维度

维度是由独立不重叠的数据元素组成的数据集,构成可统计的对象,比如时间维度年、月、日,空间维度省、市、县等等,让人从多角度、多方位、多层次去观察事物,在规范定义名称中,常用dim_开头。

Dataphin 维度分为普通维度、层级维度、枚举维度、虚拟维度,需要设置唯一主键和主键计算逻辑,维度建立后系统自动生成维度逻辑表,后面可对维度进行修改,继承,编辑和删除,如果开发模式是Dev-Prod模式,维度建立后需要提交和发布。

特别说明下普通维度中的层级维度,需要设定子层字段、父层字段 、层级数(系统支持最多9个层级)、选择是否生成叶子维度、层级根节点定义(在层级根节点定义区域,编辑SQL代码,is_parent=‘true’)
时间分区逻辑基于来源主表字段,设定数据更新及获取时间周期的判断条件:在时间分区逻辑区域,编辑SQL代码,ds=${bizdate}

其调度配置、历史信息、查询与下线和删除维度与数据集成类似。

三、规范定义-业务过程

业务过程是业务活动中不可拆分的事件,例如下单、支付和退款。通信O域数据治理的接入网、传输网、承载网等。

创建业务过程,即从顶层视角,规范业务活动中事件的内容类型及唯一性。

四、逻辑表-维度逻辑表

维度逻辑表在维度创建后自动生成。

五、逻辑表-事实逻辑表

事实逻辑表是业务过程(比如下订单、支付等业务过程)的模型化反映,它可以选择物理表和逻辑表作为来源主表。

事实逻辑表英文名,命名规则为:
fct_业务过程英文名_自定义名称_di
fct_业务过程英文名_自定义名称_df
英文名的后缀说明如下:
事物型的事实逻辑表,系统自动添加后缀为di
周期快照型的事实逻辑表,系统自动添加后缀为df
对应字段,可以添加度量、事实属性、关联维度

六、规范定义-原子指标

业务事实表中度量的统计定义,与select 的内容等价,原子指标是对指标统计口径、具体算法的抽象。

Dataphin创新性地提出了设计即开发的理念,指标定义同时也明确了设计统计口径(即计算逻辑),提升了研发效率,并保证了统计结果的一致性。原子指标是对指标统计口径、具体算法的抽象。Dataphin创新性地提出了设计即开发的理念,指标定义同时也明确了设计统计口径(即计算逻辑),提升了研发效率,并保证了统计结果的一致性。

为保证建模标准规范,来源表仅支持维度逻辑表或事实逻辑表,字段仅支持这两种表中的字段。

指标计算逻辑编写SQL代码。
例如count(distinct order_id),其中order_id为来源逻辑表模型中的字段。基于不同大小统计周期的数据,选择是否需要累加计算。例如,最近7天支付金额,是否需要基于最近1天支付金额进行累加计算。

衍生原子指标是基于已提交原子指标,设定计算逻辑而构成的指标。例如,一个已提交的原子指标为支付金额,另一个已提交的原子指标为支付人数,您可以通过新建衍生原子指标的方式统计人均支付金额。

七、规范定义-业务限定

指对业务中的统计范围进行限定,等同where 后面的内容。如买家,已支付,通信o域中的中兴。

八、规范定义-派生指标

Dataphin支持基于某个原子指标创建派生指标,圈定原子指标的统计业务范围,比如天,周,月,季度,年。

九、逻辑表-汇总逻辑表

汇总逻辑表用于统计以统计粒度(维度)为主题的所有数据。
前提条件是完成维度的创建,完成派生指标的创建。

汇总逻辑表由一个特定的统计粒度(维度)和该统计粒度相关的统计指标(原子指标)组成。

汇总逻辑表的统计指标(原子指标)具有相同的统计粒度(维度)。

如果派生指标和汇总逻辑表的统计粒度一致,则系统会自动加入派生指标至汇总逻辑表。

汇总逻辑表的统计指标包括以下两种来源:
基于系统自动汇聚的派生指标,构建汇总逻辑表的统计指标。
通过创建自定义指标的方式,构建汇总逻辑表的统计指标。

十、规范建模-建模引擎

Dataphin逻辑表开发、提交和调度运行,会自行根据系统内置规则对逻辑表模型进行校验、物理化,提供查询使用。标准规范、可靠稳定及高效的逻辑表研发过程依赖于智能建模引擎服务。

逻辑表查询SQL
Dataphin支持逻辑表雪花模型的查询,即支持基于[逻辑模型.关联维度.关联维度.···.属性](如订单.买家.会员类型.类型值)查询所需数据,提高查询类SQL的编码效率。

事实逻辑表/维度逻辑表查询
SQL格式说明如下。

select Column,
        LTable.Column,   //逻辑表名.字段名
        LTable.Role(relation - dimension)..Dimension_Column,   //逻辑表名.角色名(关联维度字段名).维度属性字段名
from    LD.LTable   //业务板块名.逻辑表名 
where   …
select Column,
        LTable_Alias.Column,
        LTable_Alias.Role(relation - dimension)..Dimension_Column
from    LD.LTable    Alias
where   …

SQL格式举例如下。

select a.dim_industry.in_name,
        a.dim_industry.IN_ID,
        name,
        ceo_name,
        company_id
from    LD_demo.dim_company.dim_industry.in_name  a
where   ds = '${bizdate}'
limit   100;

汇总逻辑表查询
SQL格式说明如下。

select Column,
        LTable.Column,
        LTable.Dimension(granularity)..Dimension_Column,
from    LD.LTable
where   …
select Column,
        Alias.Column,
        Alias.Dimension (granularity)..Dimension_Column
from    LD.LTable Alias
where   …

SQL格式举例如下。

select customer_id,
        c.dim_customer.address_line1,
        c.dim_customer.dim_tax_rate.tx_name,
        crt_trd_comm_amt_30d_trd_valid,
        acct_cnt_td_actv_account,
        watch_sec_cnt_td_actv_watches,
        avg_crt_trd_comm_7d,
        crt_trd_acct_cnt_7d,
        crt_trd_cnt_1d,
        avg_crt_trd_comm_1d,
        crt_trd_comm_amt_1d_trd_valid,
        crt_trd_acct_cnt_1d,
        watch_sec_cnt_td_inac_watches,
        watch_sec_cnt_td,
        acct_cnt_td,
        crt_trd_cnt_7d
from  LD_DEMO.DWS_CUSTOMER c
where ds='${bizdate}'
limit 100;

说明
如果维度逻辑表两个角色引用的字段有重名,需要给两个字段命别名,以防字段名冲突。
仅主维度的维度逻辑表可以被查询(子维度的维度逻辑表不可查询),包含被作为关联维度(取角色名)的情况。
子维度的维度逻辑表包含的字段,合并在主维度的维度逻辑表字段list中。
组成汇总逻辑表统计粒度的维度,可以通过类似关联维度方式引用,汇总逻辑表select *可获取[维度_主键]数据。为防全表扫描过慢,建议使用select 汇总表.维度表.主键获取主键,select 汇总表.维度表.属性获取属性信息。
计算逻辑重复性校验
Dataphin核心价值之一是定义无二义性,核心要求为命名、计算逻辑无重复。提交规范定义、逻辑表对象时,Dataphin会校验对象的英文名、中文名、计算逻辑完全没有重复。如果计算逻辑存在重复,则进行系统提示,避免误创建同名不同义、或者同义不同名的对象。

新建或编辑之后,在您提交并发布时间周期、维度、维度逻辑表字段、事实逻辑表、事实逻辑表字段、原子指标、业务限定、汇总逻辑表自定义指标时,会基于AST抽象语法树结构进行解析,在命名空间内进行计算逻辑(或表达式)重复性校。如果校验有重复,则提示对象计算逻辑重复。

模型多版本动态刷新
动态刷新可以提高逻辑表提交及物理化的效率,增加逻辑表变更的灵活性,也可以降低物理表变更及历史数据变更迁移的计算引擎源资源消耗。在SQL任务调度时,系统会基于当前最新的逻辑表物理化情况自动识别和路由对应的物理表,从而获取查询所需的数据。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值