统计周期
统计周期即指标统计的具体时间范围,如近30天、当月、当年、近7天等,指标「近30天账户消费金额总和」的统计周期为‘近30天’,指标「当月产品销售额」统计周期则为‘当月’。
在指标平台中,我们通过对统计周期的规范化定义,统一所有的统计周期信息。下面将具体为您介绍统计周期的操作方式以及实现原理。
组成要素
在指标平台里,统计周期包括周期名称、周期标识、周期描述、统计粒度、开始时间、结束时间、测试结果等:
- 周期名称:全局唯一,方便用户根据名称直接掌握对应的统计周期含义;
- 周期标识:全局唯一,不可修改,对于周期名称变更的场景,可以通过周期标识来判断周期的一致性;
- 周期描述:统计周期的具体描述信息;
- 统计粒度:用来定义统计周期的时间特征,若统计周期为日级别的,可选择统计粒度为日,后续数据查询时,可针对日粒度的数据做周期性的数据聚合,查看汇总结果。定义统计粒度为日的,代表结束时间与开始时间相同,只定义开始时间即可;
- 开始时间:统计周期的开始时间,指标使用时会根据开始时间拼上对应>=开始时间的sql,支持动态参数的定义,参数定义规则符合平台全局参数的定义规则;
- 结束时间:统计周期的技术时间,指标使用时会根据开始时间拼上对应<结束时间的sql,同样支持动态参数的定义,参数定义规则符合平台全局参数的定义规则;
- 测试结果:点击测试后,系统会自动根据当前的时间匹配输入的开始时间和结束时间的表达式,进行统计周期范围的在线输出,测试通过后方可保存。
note
开始时间为闭区间,结束时间为开区间,即应用时是大于等于开始时间,小于结束时间。
note
因为实际时间范围场景中,存在无限期的情况,故开始时间和统计时间均支持不填,不填即默认没有限制。
参数配置
统计周期的开始时间和结束时间中的动态表达式,均符合平台全局的参数配置规则,包括系统变量和自定义变量两种参数配置方式,如果只是一些简单可表达式,可以直接使用提示上列举的内容,涉及到更复杂的规则,可以具体参考。
统计周期配置
创建的统计周期主要在后面派生指标创建编辑时使用,用于统一所有指标的统计周期口径,具体配置页面可以去查看「派生指标」的说明,统计周期的管理主要遵循以下原则:
- 内置的统计周期不支持删除和编辑;
- 已经被指标引用的统计周期不支持删除;
- 当统计周期的信息(包括名称、描述这类基本信息和开始时间、结束时间这类技术信息)编辑后发生变化时,其原来已经引用的指标也会同步更新最近的统计周期信息;
- 开始时间和结束时间表达式发生变化会直接影响到引用指标的技术口径,故当技术信息(开始时间和结束时间)发生变化时,其引用的指标,如果已经发布了,系统会直接自动发布一个新版本。
note
如果是统计统计技术口径发生变化,导致的引用指标自动发布新版本,对应的发布说明默认为「引用统计周期的技术信息更新,系统自动发布」
内置统计周期
基于指标计算过程中常用的时间范围,系统内置了包括当日、当月、最近30天在内的共8个统计周期供使用:
周期名称 | 周期描述 | 开始时间 | 结束时间 | 结果示例 |
---|---|---|---|---|
当日 | 默认为计划运行时间的前一天 | ${bdp.system.bizdate} | ${yyyyMMdd+1} | [20210516,20210517) |
当月 | 当月1号截止到当日 | ${bdp.system.currmonth}01 | ${yyyyMMdd+1} | [20210501,20210517) |
上月 | 上个月1号到上个月月底 | ${bdp.system.premonth} 01 | ${bdp.system.currmonth}01 | [20210401,20210501) |
当年 | 当年1月1号截止到当日 | ${format(yyyyMMddHHmmss,'yyyy')}0101 | ${yyyyMMdd+1} | [20210101,20210317) |
去年 | 去年1月1号到去年年底 | ${format(yyyyMMddHHmmss-1y,'yyyy')}0101 | ${format(yyyyMMdd,'yyyy')}0101 | [20200101,20210101) |
最近7天 | 基于业务日期的近7天 | $[yyyyMMdd-7] | ${yyyyMMdd+1} | [20210510,20210517) |
最近30天 | 基于业务日期的近30天 | $[yyyyMMdd-30] | ${yyyyMMdd+1} | [202100417,20210517) |
历史截止到当前 | 历史累计到当前日期 | ${yyyyMMdd+1} | (-∞,20210517) |
note
开始时间和结束时间表达式可以为空,当为空时即没有限制。
tip
今天是2021年5月17日的前提下,输出格式皆为yyyymmdd,日期中间不带任何连接符号。