产品文档

SQL脚本

1.在数据转换页面点击创建SQL脚本菜单,系统进入SQL脚本页面。SQL脚本主要实现对BI系统中已有数据,通过SQL语句运算生成新的目标表。

2.SQL脚本对话框主要包括SQL脚本,目标表两个选项卡,如下图:3.录入步骤名称,选择数据源,填写数据转换的原表及SQL脚本。

4.SQL脚本采用模版语言,用户可以做逻辑判断,可以直接获取系统内置对象,已提供的内置对象如下:

  • 通过 ${变量标识} 方式获取变量值;
  • 通过 ${productBatch} 方式获取本次抽取的数据批次号;
  • 通过 ${dateLabel} 方式获取本次抽取的时间戳;
  • 通过 ${srcTf} 方式获取过程ID;
  • 通过 ${now} 方式获取系统当前时间;
  • 通过 $tools.dateFormat($now, "yyyy-MM-dd HH:mm:ss") 方法格式化当前时间
  • 通过 $tools.dateFormat($now, "yyyy-MM-dd HH:mm:ss", -1, "day") 方法当前日期减1天, 在返回日期的格式化
  • 表内置数据批次号字段名:rsbi_pb
  • 表内置创建时间字段名:rsbi_crtdate

5.比如下图SQL代码,演示通过时间戳实现数据增量处理功能:

select sum(cnt) as cnt, sum(dlip) as dlip,
browser, left(dt, 7) as month_id
 from dw_logs5_aggre 
 #if($dateLabel)
where rsbi_crtdate > '$tools.dateFormat($dateLabel, "yyyy-MM-dd HH:mm:ss")'
and rsbi_crtdate <= '$tools.dateFormat($now, "yyyy-MM-dd HH:mm:ss")'
#else
 where rsbi_crtdate <= '$tools.dateFormat($now, "yyyy-MM-dd HH:mm:ss")'
#end
group by browser, left(dt, 7)

其中rsbi_crtdate 字段是表的时间戳字段,在bi系统数据仓库的表中,所有表都包含rsbi_crtdate字段。

6.点击目标表选项卡,把sql脚本生成的数据存入目标表中,如下图:6.支持新建表和选择已有表两种方式定义目标表。请注意目标表创建完成后不能再修改,如果调整了SQL脚本中的SQL语句,生成了新的字段,则需要在总览页面找到目标表,给目标表创建对应的字段,当SQL脚本字段和目标表字段不一致时,SQL脚本将不能正常执行。

7.对于SQL脚本中的增量处理,都采用系统内置 rsbi_crtdate 字段。

8.点击确定按钮完成SQL脚本的创建。