Dataphin中如何理解中管理周期公共定义

产品名称

Dataphin

产品模块

公共定义

 

概述

如何理解根据规范建模设计中公共定义,进行逻辑表物化任务运行中,定义字段的解析。

问题描述

在汇总逻辑表的物理化代码中,有cBeginDate、cEndDate等函数用于限制ds分区字段。如何知道这个函数的作用。

问题原因

解决方案

物理化代码通过cBeginDate、cEndDate函数来限制ds分区取值的开始日期和结束日期。

cBeginDate

  • 用法:取 N 个自然周期之前的那个自然周期的起始日期
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 必传)timeFormat:自然周期类型,允许的类型有
      • w: 自然周
      • m: 自然月
      • q: 自然季度
      • y: 自然年
    • 选传)length:往前多少个自然周期,如果不传则默认为 1
  • 返回值:
    • N 个自然周期之前的那个自然周期的起始日期,字符串类型,格式 yyyyMMdd

cEndDate

  • 用法:取前一个自然周期的结束日期
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 必传)timeFormat:自然周期类型,允许的类型有
      • w: 自然周
      • m: 自然月
      • q: 自然季度
      • y: 自然年
  • 返回值:
    • 前一个自然周期的结束日期,字符串类型,格式 yyyyMMdd

例如:

当定义的汇总逻辑表中存在“按周统计”的汇总指标时,则需要通过限制明细事实表中ds分区在“上一自然周期的起始和结束日期”。

当业务日期为20210809时,cBeginDate('${bizdate}','w','yyyyMMdd')为20210802;cEndDate('${bizdate}','w','yyyyMMdd')为20210808。

当业务日期为20210811时,cBeginDate('${bizdate}','w','yyyyMMdd')为20210802;cEndDate('${bizdate}','w','yyyyMMdd')为20210808。

 

更多信息

统计周期公共定义相关函数参考:

1. lastNDate

  • 用法:最近 N 天周期的起始日期
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 必传)preDays:最近 N 天,整型数字
  • 返回值:
    • 最近 N 天周期的起始日期,字符串类型,格式 yyyyMMdd
  • 示例:
    • lastNDate('20180118', 7) 返回 20180112

2. cBeginDate

  • 用法:取 N 个自然周期之前的那个自然周期的起始日期
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 必传)timeFormat:自然周期类型,允许的类型有
      • w: 自然周
      • m: 自然月
      • q: 自然季度
      • y: 自然年
    • 选传)length:往前多少个自然周期,如果不传则默认为 1
  • 返回值:
    • N 个自然周期之前的那个自然周期的起始日期,字符串类型,格式 yyyyMMdd
  • 示例:
    • cBeginDate('20180118', 'm') 返回 20171201
    • cBeginDate('20180118', 'w') 返回 20180108
    • cBeginDate('20180118', 'w', 2) 返回 20180101

3. cEndDate

  • 用法:取前一个自然周期的结束日期
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 必传)timeFormat:自然周期类型,允许的类型有
      • w: 自然周
      • m: 自然月
      • q: 自然季度
      • y: 自然年
  • 返回值:
    • 前一个自然周期的结束日期,字符串类型,格式 yyyyMMdd
  • 示例:
    • cEndDate('20180118', 'm') 返回 20171231
    • cEndDate('20180118', 'w') 返回 20180114
    • cEndDate('20180118', 'y') 返回 20171231

4. tdBeginDate

  • 用法:取 N 个自然周期之前的那个自然周期的起始日期。与 cBeginDate 不同的是,如果不传 length,则取的是当前时间周期的起始时间,因此这个函数适合用于计算"**截止当日"类型的指标。
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 选传)timeFormat:不传则返回 19700101。自然周期类型,允许的类型有
      • w: 自然周
      • m: 自然月
      • q: 自然季度
      • y: 自然年
    • 选传)length:往前多少个自然周期,如果不传则默认为 0
  • 返回值:
    • N 个自然周期之前的那个自然周期的起始日期,字符串类型,格式 yyyyMMdd
  • 示例:
    • tdBeginDate('20180118') 返回 19700101
    • tdBeginDate('20180118', 'm') 返回 20180101
    • tdBeginDate('20180118', 'w') 返回 20180115
    • tdBeginDate('20180118', 'w', 2) 返回 20180101

5. CustomBeginDate

  • 用法:取N个自定义周期之前的那个自定义周期的开始日期(以当前日期所在自定义周期为第一个自定义周期),适用于计算跟随周期变化、周期规律、滑动但确定时间区间的数据统计周期,如定义统计周期财月、财年,常与CustomEndDate组合使用。
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 必传)timeFormat:自然周期类型,允许的类型有
      • m: 自然月
      • q: 自然季度
      • y: 自然年
    • 必传)customShift:自定义周期的开始日期,字符串,对于年、季,传入值的格式为MMdd,对于月的默认格式为dd。特别说明:dd的值仅支持数字01~28
    • 选传)length:往前多少个自定义周期,如果不传默认为1,为0时返回当前日期所在周期的起始时间
  • 返回值:
    • N个自定义周期之前的那个自定义周期的开始日期,字符串类型,格式yyyyMMdd
  • 示例:
    • CustomBeginDate('20190802', 'y', '0401') 返回:20180401
    • CustomBeginDate('20190802', 'y', '0401', 0) 返回:20190401
    • CustomBeginDate('20190802', 'q', '0101') 返回:20190401
    • CustomBeginDate('20190802', 'm', '15') 返回:20190615
    • CustomBeginDate('20190802', 'm', '15', 2) 返回:20190515

6. CustomEndDate

  • 用法:取N个自定义周期之前的那个自定义周期的结束日期(以当前日期所在自定义周期为第一个自定义周期),适用于计算跟随周期变化、周期规律、滑动但确定时间区间的数据统计周期,如定义统计周期财月、财年,常与CustomBeginDate组合使用。
  • 参数:
    • 必传)currentDate:当前日期,字符串,格式 yyyyMMdd
    • 必传)timeFormat:自然周期类型,允许的类型有
      • m: 自然月
      • q: 自然季度
      • y: 自然年
    • 必传)customShift:自定义周期的开始日期,字符串,对于年、季,传入值的格式为MMdd,对于月的默认格式为dd。特别说明:dd的值仅支持数字01~28
    • 选传)length:往前多少个自定义周期,如果不传默认为1
  • 返回值:
    • N个自定义周期之前的那个自定义周期的结束日期,字符串类型,格式yyyyMMdd
  • 示例:
    • CustomEndDate('20190802', 'y', '0401') 返回:20190331
    • CustomEndDate('20190802', 'q', '0101') 返回:20190630
    • CustomEndDate('20190802', 'm', '15') 返回:20190714
    • CustomEndDate('20190802', 'm', '15', 2) 返回:20190614

相关文档

管理统计周期:https://help.aliyun.com/document_detail/112027.html