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格式说明如下。
- 汇总逻辑表查询
- 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;
- SQL格式说明如下。
说明
- 如果维度逻辑表两个角色引用的字段有重名,需要给两个字段命别名,以防字段名冲突。
- 仅主维度的维度逻辑表可以被查询(子维度的维度逻辑表不可查询),包含被作为关联维度(取角色名)的情况。
- 子维度的维度逻辑表包含的字段,合并在主维度的维度逻辑表字段list中。
- 组成汇总逻辑表统计粒度的维度,可以通过类似关联维度方式引用,汇总逻辑表select * 可获取[维度_主键]数据。为防全表扫描过慢,建议使用select 汇总表.维度表.主键获取主键,select 汇总表.维度表.属性获取属性信息。
计算逻辑重复性校验
Dataphin核心价值之一是定义无二义性,核心要求为命名、计算逻辑无重复。提交规范定义、逻辑表对象时,Dataphin会校验对象的英文名、中文名、计算逻辑完全没有重复。如果计算逻辑存在重复,则进行系统提示,避免误创建同名不同义、或者同义不同名的对象。
新建或编辑之后,在您提交并发布时间周期、维度、维度逻辑表字段、事实逻辑表、事实逻辑表字段、原子指标、业务限定、汇总逻辑表自定义指标时,会基于AST抽象语法树结构进行解析,在命名空间内进行计算逻辑(或表达式)重复性校。如果校验有重复,则提示对象计算逻辑重复。
模型多版本动态刷新
动态刷新可以提高逻辑表提交及物理化的效率,增加逻辑表变更的灵活性,也可以降低物理表变更及历史数据变更迁移的计算引擎源资源消耗。在SQL任务调度时,系统会基于当前最新的逻辑表物理化情况自动识别和路由对应的物理表,从而获取查询所需的数据。
逻辑表的版本信息,可以在逻辑表编辑页面上方的菜单栏中,单击版本信息查看。