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核心价值之一即定义无二义性,核心要求即命名、计算逻辑无重复。提交规范定义、逻辑表对象时,会校验对象的英文名、中文名、计算逻辑全无重复,才可以顺利提交。如果计算逻辑存在重复,则系统给与提示,避免误创建同名不同义、或者同义不同名的对象。

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

模型多版本动态刷新

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

逻辑表的版本信息,可以在逻辑表编辑页面上方的菜单栏中,单击版本信息查看。