调度参数返回值二次处理的典型场景

调度参数只支持获取时间类型数据,部分节点(例如,离线同步节点)配置了调度参数后,调度参数的返回值不能直接使用,需要进行函数转换等二次处理。本文为您介绍二次处理调度参数返回结果的典型场景。

背景信息

调度参数支持的时间类型未覆盖所有的时间场景,如果您的业务需要使用特殊时间格式,则可以使用引擎函数进行处理。二次处理调度参数时,部分节点不支持直接使用函数转换参数返回结果。对于不支持直接使用函数转换的节点,您可以通过赋值节点进行相关处理。

函数二次处理调度参数场景

ODPS SQL节点为例,为您介绍直接使用函数二次处理调度参数的典型场景:

获取上个月最后一天

使用调度参数获取上个月最后一天的配置及测试结果如下表。

参数配置

测试定时时间CYCTIME

返回结果

  • 调度参数配置:last_month=$[yyyy-mm]

  • 处理调度参数的返回值:SELECT REPLACE(DATEADD(date'${last_month}-01',-1,'dd'),'-','');

  • 预期返回格式:yyyymmdd

20210926000000

20210831

获取当前季度

使用调度参数获取当前季度的配置及测试结果如下表。

参数配置

测试定时时间CYCTIME

返回结果

  • 调度参数配置:month=$[mm]

  • 处理调度参数返回值:SELECT CEIL(INT('${month}')/3);

  • 预期返回类型:正整数。

20211025001700

4

获取定时时间15分钟前的年、月、日、小时、分钟

使用调度参数获取定时时间15分钟前的年、月、日、小时、分钟的配置及测试结果如下表。

参数配置

测试定时时间CYCTIME

返回结果

  • 调度参数配置:

    • year=$[yyyy-15/24/60]

    • month=$[yyyymm-15/24/60]

    • day=$[yyyymmdd-15/24/60]

    • hour=$[hh24-15/24/60]

    • mi=$[mi-15/24/60]

  • 处理调度参数返回值:select 'year=${year} month=${month} day=${day} hour=${hour} mi=${mi}';

  • 预期返回格式:

    • 年:yyyy

    • 月:yyyymm

    • 日:yyyymmdd

    • 小时:hh

    • 分钟:mm

20210727000500

  • year=2021

  • month=202107

  • day=20210726

  • hour=23

  • mi=50

获取时间区间,调度间隔为1

获取昨天00:00:00到今天00:00:00的时间区间,调度间隔为1天。时间格式为yyyymmddhh24miss,精确到秒。

说明

使用KafkaLogHub离线同步指定时间区间的数据时,如需配置调度参数,则调度参数的日期格式为yyyymmddhh24miss,日期区间为左闭右开。详情请参见Kafka ReaderLogHub(SLS) Reader。不同场景的数据增量同步,详情请参见增量数据离线同步

调度参数的配置及测试结果如下表:

参数配置

测试定时时间CYCTIME

返回结果

  • 调度参数配置:

    • beginDateTime=$[yyyymmdd-1]

    • endDateTime=$[yyyymmdd]

  • 处理调度参数返回值:select '${beginDateTime}000000 ${endDateTime}000000';

  • 预期返回格式:yyyymmddhh24miss

20220117002300

  • 20220116000000

  • 20220117000000

获取时间区间,调度间隔为1小时

获取昨天00:00:00到今天00:00:00的时间区间,调度间隔为1小时。时间格式为yyyymmddhh24miss,精确到秒。

说明

使用KafkaLogHub离线同步指定时间区间的数据时,如需配置调度参数,则调度参数的日期格式为yyyymmddhh24miss,日期区间为左闭右开。详情请参见Kafka ReaderLogHub(SLS) Reader。不同场景的数据增量同步,详情请参见增量数据离线同步

调度参数的配置及测试结果如下表。

参数配置

测试定时时间CYCTIME

返回结果

  • 调度参数配置:

    • beginDateTime=$[yyyymmddhh24-1/24]

    • endDateTime=$[yyyymmddhh24]

  • 处理调度参数返回值:select '${beginDateTime}0000 ${endDateTime}0000';

  • 预期返回格式:yyyymmddhh24miss

20220117002300

  • 20220116230000

  • 20220117000000

赋值节点二次处理调度参数

无法直接使用函数二次处理调度参数的节点,如果想直接使用时间戳或其他时间格式,则可以先通过赋值节点将时间类型数据进行相应转换,再将处理后的结果传递给该节点使用。赋值节点的使用,详情请参见赋值节点

例如,如果离线同步节点需要使用时间戳类型字段进行增量同步,则可以先通过赋值节点使用函数将时间类型数据转换为时间戳,再传递给离线同步节点使用。

更多操作参考