实体属性随时间变化场景解决方案

场景说明

有时候,实体的某些属性会随着时间变化,例如会员的等级,产品是否属于新品/老品。

在实体表中,通常只保留最新的状态信息。

在通过事件表分析历史数据的时候,需要回退到历史当时的状态。

核心问题

如何让事件分析使用“事件发生当时”的实体属性,而不是实体表中的最新状态?

解决方案

在这种需求下,需要将实体当时的状态存到事件表中。

然后在事件表的 Schema 中建立一个字段,例如“会员等级”。

接着进入该字段的字段属性编辑 -> 高级,在 is_projection_for 中把这个“当时的状态”映射到实体表的对应字段。

is_projection_for 填入的内容格式为:

事件表中的该实体字段名_实体表的该字段名

示例

比如有一个产品实体表,其中有字段“新老品”。

然后有一个销售事件表,里面有一个实体类型字段“产品”,指向产品实体表。

那么这个时候,需要在销售事件表里面新增一个字段:“产品新老品”。

这个字段的 is_projection_for 填:

产品_新老品

这样,在分析历史销售事件时,就会使用销售事件发生当时记录下来的产品“新老品”状态,而不是产品实体表中的最新状态。