时间窗口SQL脚本

在普通的SQL组件基础上增加了多日期循环执行功能,用于并行执行某段时间内天级别SQL任务。例如在推荐场景中,并行执行过去7天的行为数据特征提取SQL补数据任务。

使用限制

  • 仅支持天级别的补数据循环。

  • 在使用时按照需要打开或关闭多日期循环执行开关,在整个工作流发布至周期性调度之前切记关闭多日期循环执行开关,避免生产环境下产生不需要的重复执行补数据任务。

  • 节点上配置的并发数仅能控制当前节点的并发,如果有多个节点都需要补数据,需要您自己统一考虑当前项目资源支持的总并发数。

输入输出使用说明

时间窗口SQL脚本组件支持0~4个输入,1个输出,具体使用说明如下。

  • 如果时间窗口SQL脚本组件接入了上游表,输入源已自动映射成t1~t4,您可以直接调用${t1}${t2}${t3}${t4},不用写入源表名。

  • 时间窗口SQL脚本组件支持1个输出,您可以在SQL语句中使用${o1}代替输出数据表。

  • 您可以在SQL语句中,使用${lifecycle}参数自动获取当前工作空间设置的临时表生命周期,默认为28天。更多关于工作空间临时表生命周期的内容,请参见管理工作空间

  • 如果您在可视化参数配置中选中了是否由系统添加Create Table语句复选框,SQL脚本的中间位置可以配置任意的SQL语句,但是最后一句必须为Select语句。PAI会自动创建一个临时表,用来存储Select语句查询的结果。如果您在SQL语句中自行创建了数据表,请按需设置临时表的生命周期,详情请参见管理工作空间

可视化配置组件参数

Designer仅支持通过可视化方式,配置该组件参数,参数详情如下表所示。

参数

描述

业务基准日期

支持以下两种配置方式:

是否打开多日期循环执行

默认打开多日期循环执行。如果不打开多日期循环执行,则该组件退化为普通的SQL脚本组件。

执行时间窗口

支持配置整数和开闭区间,多个区间使用半角逗号(,)分隔。

配置后会从业务基准日期计算出每个窗口对应的日期段,总计启动N个子任务,且N不超过100。

例如:配置(-4,-2],0,结合业务基准日期示例,代表需要执行20230207、20230208、20230210三天的任务。

最大并发数

避免一次性提交大量并发任务打满资源。

日期格式

支持配置以下三种时间格式,用于生成${pai.system.cycledate}系统变量。

  • yyyyMMdd(默认值)

  • yyyy-MM-dd

  • yyyy/MM/dd

例如:选择yyyy-MM-dd,则在示例SQL脚本中替换${pai.system.cycledate}时,会将20230210替换为2023-02-10。

是否由系统添加Create Table语句

  • 选中该复选框,则SQL脚本的最后一行SQL语句必须为Select语句,PAI会自动创建一个临时表,用来存储Select语句查询的结果。

  • 不选中该复选框,您需要自己在SQL语句中创建数据表${o1},作为向下游传递的数据表。

SQL脚本

如果打开了多日期循环执行,切记在需要循环的日期字段处,引用系统变量${pai.system.cycledate}。

例如:select * from ${t1} where dt=${pai.system.cycledate},则在实际执行时,按照当前示例中的配置会并行启动3个任务:

  • select * from ${t1} where dt=2022-02-07

  • select * from ${t1} where dt=2022-02-08

  • select * from ${t1} where dt=2022-02-10

其他功能同普通SQL脚本组件。