示例: 永久派生字段

可能将“选择”进程配置为基于某个派生字段的约束选择 ID,连接到“快照”进程以输出包括该派生字段的选定记录。 如果将该派生字段标记为永久字段,该计算值将从“选择”进程传递到“快照”进程。

还可将永久派生字段用于任何聚合类型的派生字段(例如,AVG 或 GROUPBY)。 这些聚合字段基于当前单元中的多行数据进行计算,因此这些聚合字段的值会随单元内容的更改而更改。 使用永久派生字段,可以选择保留原始计算值,然后将其传递给其他进程。 如果改为选择重新计算派生字段,将得到基于当前单元中的其余记录的计算值。

当某个进程采用多个输入时(如“快照”进程使用两个“选择”进程的输入),所有永久派生字段可供下游进程使用。

如果永久派生字段在所有传入“选择”进程中不可用,并包括在“快照”进程的输出中,则“快照”进程将在不具有该永久派生字段的“选择”进程中的所有输出行中为该永久派生字段显示 NULL 值。

如果永久派生字段在所有传入“选择”进程中不可用,且使用它定义“分段”进程,则“分段”进程在不具有该永久派生字段的“选择”进程中具有空段。

如果尝试使用在所有“选择”进程中不可用的多个永久派生字段来定义具有表达式的段,则“分段”进程将保持未配置状态。

以下准则适用于永久派生字段 (PDF)。

*
*
*
*
*
*
但是,当使用基于表字段的派生字段时,输出间接包括表字段。 因此,ID 值的每个实例只存在一条记录(即,如果 ID 值在数据中出现了 7 次,将有 7 条输出的记录)。

永久派生字段只为每个受众 ID 存储 一个 值,它是从可用值中随机选择的值。 这意味着在使用非规范化的数据时,必须使用 GROUPBY 宏函数来实现所需行为。

例如,假设要在购买交易表中查找客户购买的一笔交易中的最高金额并将其保存为永久派生字段以进行下游处理。 可以按如下方式编写派生字段(然后将其设为永久派生字段):

Highest_purchase_amount = groupby(CID, maxof, Purch_Amt)

针对如下非规范化的购买交易数据,将按以下方式计算:

当派生字段是永久字段时,将随机选择任意值(都是 $300)并将值 $300 设为客户 A 的永久值。

第二个不太明显的示例是在计分表中为特定的模型 X 选择预测模型分数。此处的派生字段可能类似于以下字段:

ModelX_score = groupby(CID, maxof, if(Model = 'X', 1, 0), Score)

且数据可能类似于以下内容:

将派生字段 ModelX_Score 设为永久字段,指定所需结果为 80 分。创建以下派生字段是错误的:

Bad_ModelX_score = if(Model = 'X', Score, NULL)

这将生成以下数据:

然后,当您将派生字段 Bad_ModelX_score 设为永久字段时,永久值可能是 NULL 或 80。如果您使用的是非规范化的数据,且派生字段值不完全相同,则将该派生字段设为永久字段可能返回 任意 值。 例如,定义 Derived_field_Score = SCORE 并将其设为永久,会生成值 57、72 或 80 作为客户 A 的值。若要确保获得所需行为,必须对客户 ID 中使用 GROUPBY 宏并保证该派生字段值在该客户的所有数据中都 相同



IBM Unica Campaign
 
8.5.0
For more information, see our support and community site: Customer Central