跳到主要内容

SAP BW 日历维度

日历维度介绍

在多维数据集(Cube)中,日历维度(Calendar Dimension)是一个关键的维度,用于表示和组织与时间相关的数据。日历维度提供了一个结构化的时间框架,使得用户能够按时间段进行数据的切片和分析。典型的日历维度包括年、季度、月、周、日等层级,以及其他相关的时间属性,如财年、财务季度和工作日等。

日历维度在数据分析和商业智能中具有重要作用,因为大多数业务数据都涉及时间因素。通过使用日历维度,用户可以轻松地进行以下操作:

  1. 时间序列分析:分析不同时间段内的趋势和模式,例如月度销售额的变化、季度利润的增长等。
  2. 同比和环比分析:比较不同时间段的数据,例如今年与去年同一时期的业绩对比(同比),本月与上月的业绩对比(环比)。
  3. 时间聚合:将细粒度的数据聚合到更高层级,例如将每日数据聚合成月度数据或年度数据,以便于宏观层面的分析。
  4. 时间滚动分析:分析滚动时间窗口的数据,例如最近12个月的销售趋势,移动平均值等。
  5. 指标走势:自动化分析指标的趋势和时间累计值。

日历维度在实际应用中帮助企业更好地理解其业务的时间动态,支持决策者基于时间维度做出更加精准的商业决策。例如,在销售分析中,企业可以通过日历维度识别销售的季节性波动,制定相应的市场策略;在财务分析中,企业可以追踪季度和年度的财务表现,评估财务目标的达成情况。

BW 系统中的日历维度

步骤 1:检查现有的时间特征 InfoObject

首先,检查系统中是否已经存在常用的时间特征 InfoObject,如 0CALDAY0CALMONTH 等。这些特征通常已经预定义并包含在系统中。

  • 0CALDAY:表示具体的日期。
  • 0CALMONTH:表示具体的月份。

在 BW 系统中,时间特征 0CALDAY 引用的是 InfoObject 0DATE

步骤 2:创建时间特征 InfoObject(如果不存在)

如果系统中不存在所需的时间特征 InfoObject,则需要手动创建。可以参考现有的 InfoObject 0DATE 来创建这些时间特征。以下是创建 0CALDAY 的步骤:

  1. 打开 SAP BW Modeling Tools(基于 Eclipse)并连接到 BW 系统。

  2. 创建 InfoObject

    • 右键点击相应的 InfoObject Catalog,选择 New -> InfoObject
    • 输入名称(如 ZCALDAY)和描述。
    • 选择类型为 Characteristic
    • 设置数据类型为 DATS(日期格式),长度为 8
    • 勾选 Time Characteristics
  3. 定义属性

    • Attributes 选项卡中,添加必要的时间属性,如 0CALMONTH0CALYEAR
  4. 激活 InfoObject:检查所有设置,确保无误后,点击 SaveActivate

步骤 3:检查时间特征的数据表

创建完 InfoObject 后,检查这些时间特征的数据表中是否已有数据:

  • SID 表(S 表):存储 InfoObject 的 Surrogate ID 和键值对。
  • 属性表(P 表):存储主数据记录及其属性值。
  • 层次结构属性表(X 表):存储层次结构相关的属性数据。

步骤 4:生成时间数据

如果 0CALDAY 等时间特征的数据表中没有数据,可以使用事务代码 RSRHIERARCHYVIRT 来生成一定期间的时间数据。

  1. 进入事务代码 RSRHIERARCHYVIRT
  2. 定义时间间隔:设置需要生成数据的时间间隔。
  3. 生成数据:执行生成操作,以填充 SID 表、P 表和 X 表中的数据。

参考 Time Characteristics: 0CALDAY 以获取更多详细信息。

步骤 5:将时间特征分配给 InfoProviders

最后,将创建好的时间特征 InfoObject 分配给相应的 InfoProvider,如 DataStore Object(DSO)或 InfoCube。

  1. 在 BW Modeling Tools 中,选择需要分配时间特征的 InfoProvider。

  2. 编辑 InfoProvider 结构

    • 在 InfoProvider 结构中,添加时间特征 InfoObject(如 0CALDAY0CALMONTH)。
    • 设置时间特征为关键字段(Key Fields)或数据字段(Data Fields),根据需求而定。
  3. 激活 InfoProvider:确保所有配置无误后,点击 SaveActivate

语义模型增强

要在元数分析云系统中使用到日历维度的更多功能,需要在语义模型对已有的 BW Cube 的日历维度进行语义增强。 添加 BW Cube 到语义模型实体中,将源字段中的日历维度拖至维度区域内,分别对日历维度和其层级属性进行设置,启用其语义属性,并设置语义类型为相应的类型,如 年层级设置为 Caldendar Year 类型并设置相应的格式化字符串。 这里的格式化字符串需要根据模型维度中成员键的实际格式来设置,如 [yyyy].['Q'Q].[M].[yyyy-MM-dd]

语义增强过的模型便可以在元数分析云系统中自由使用了,涉及到日历维度的场景有以下组件(不限于):

总结

通过以上步骤,您可以在 SAP BW 系统中创建和配置日历维度,并将其分配给 InfoCube 或其他 InfoProviders。这一过程确保时间特征能够被正确地应用于数据模型中,为进一步的时间分析和报告提供支持。日历维度在实际应用中帮助企业更好地理解其业务的时间动态,支持基于时间维度的精准商业决策。