跳转到内容

根据您定义的规则,用维度中的属性标记源表中的行。输出表包含原始列以及新的标记列,下游的分摊或分析步骤可以使用这些标记列来路由或分组记录。

当您希望分摊或分析随行的特征而变化时使用,例如为每个成本行标记其分摊池、目标层次结构或处理类别,以便下一个步骤针对不同的标记值采用不同的分摊方式。

源行idcost1100280标记规则来自维度已标记行idcostpool1100East280West
基于规则的标记会保留原始列,并从维度添加标记列,因此后续的分摊或分析步骤可以按标记来路由和分组行。

源表和标记结果表可以动态或静态选择。

动态表选项允许使用文本和变量指定表。这在使用由变量驱动的工作流时很有用,此时对表或视图的引用与所指定的变量相关。

下面的示例使用 current_month 变量动态指向一个表:

legal_entity/inputs/{current_month}/ledger_values

如需将特定表用作源,请不要选中 Dynamic 框,并使用下拉菜单选择源表。

任何表选择都始终可以使用表资源管理器。单击表选择右侧的“表资源管理器”按钮,将打开表资源管理器窗口。

此表包含您希望为其添加_分配维度_中属性的数据。

基于规则的标记

_标记结果表_将包含来自_源数据表_的数据,以及_分配维度层次结构_中所含的属性。

选中仅将记录匹配到一条规则时,不匹配任何规则的行仍会写入,其标记列为空。匹配的规则留空的标记同样为空,而原本为空的源值仍保持为空。这里的空是指 null,绝不是空字符串,无论是否选中使用 SQL 而非 Pandas 应用规则都是如此,因此之后挑出这些行的步骤应查找 null,而不是 ''。

基于规则的标记

默认情况下,一条记录只采用它匹配的第一条规则。取消选中仅将记录匹配到一条规则后,它会改为采用匹配的每一条规则:该记录会针对每条规则各出现一次,而不匹配任何规则的记录会被排除。

还可以使用类型为排序的分配维度属性将规则拆分为多个迭代,其值是每条规则在其中运行的迭代。取消选中仅将记录匹配到一条规则的步骤无法同时做到这两点:如果要运行的规则分布在多个迭代中,步骤会停止并显示 Cannot apply rules when there are multiple iterations and records can match more than one rule。请选中该选项,或将每个迭代作为单独的步骤运行。

基于规则的标记

分配维度层次结构让用户可以通过点选来筛选源表,从而为标记结果表添加属性。 分配维度层次结构由引用源表的维度组合而成。

要创建分配维度层次结构,必须先创建要用作源表筛选器的维度。以下链接将指导您创建这些维度。

创建维度

加载维度

为源表创建好维度后,下一步是确定源表的哪个维度将作为分配维度层次结构的主层次结构。

复制此维度的方法是:在 PlaidCloud 中转到“维度”选项卡,单击该维度,然后依次选择操作和复制维度。 复制维度时会弹出一个窗口,要求您为复制出的维度输入名称。

打开新创建的分配维度,单击属性旁边的向下箭头,然后选择新建属性。

分配层次结构属性

这将打开属性配置对话框:

配置分配层次结构属性

  • 属性名称:通常是要添加到分配层次结构的维度的名称。

  • 属性显示:应设置为“Tag”。

  • 属性类型:对于_基于规则的标记_,属性类型应设置为_源_。

    • 源:与源表配合使用。
  • 编辑器类型:此下拉列表应设置为Select Dimension。

为要添加到分配层次结构的维度选择好相应属性后,选择“编辑配置”。

配置分配层次结构

  • 维度:使用下拉列表选择维度。
  • 层次结构:如果所选维度具有备用层次结构,它们也会与主层次结构一起显示在此处供选择。
  • Start Node:如果不希望从顶部节点开始显示该维度,可以选择层次结构内的任意节点作为显示该维度的起始节点。
  • 允许多选:选中后,用户可以在层次结构中选择多个节点。
  • 特殊情况:不用于_基于规则的标记_。

分摊源映射

分摊源映射用于映射待分摊值表中将在分摊步骤中使用的列。

检查并填充映射器

使用 检查源 菜单按钮可通过更多方式将列从源映射到目标:

  • 填充两个映射表:将源数据表中的所有值传播到目标数据表。此为默认行为。
  • 仅填充源映射表:仅映射源数据表中的所有值。当源列结构发生变化而需要修改现有工作流时,此选项很有用。
  • 仅填充目标映射表:仅将所有值传播到目标数据表。

如果源列和目标列选项仍不够用,还可以通过以下几种方式向目标数据表添加其他列:

  • 全部传播会将所有源列插入目标数据表,无论这些列是否已存在。
  • 传播所选项仅插入所选的源列。
  • 在目标侧右键单击并选择插入行,即可在当前所选行的正上方插入一行。
  • 在目标侧右键单击并选择追加行,即可在目标数据表底部(最右侧)插入一行。

角色

数据映射器中的每一列都必须指定一个角色:

  • Pass Thought - 这些列将显示在分摊结果表中。
  • 待分摊值 - 此列包含要分摊的值。

删除列

要从目标数据表中删除列,请选择所需的列,然后右键单击并选择删除。

更改列顺序

要重新排列目标数据表中的列,请选择所需的列。您可以使用以下任一方式:

  • 批量移动箭头:使用右上角的箭头选择所需的移动选项
  • 上下文菜单:右键单击并选择移到顶部、上移、下移或移到底部。

将结果缩减为仅非重复记录

要仅返回非重复选项,请选择非重复菜单选项。这会为源中的每一列切换显示一组复选框。只需勾选相应列旁边的复选框,即可仅返回非重复结果。

视情况而定,您也可以考虑改用汇总。

非重复处理会保留找到的第一条唯一记录,并丢弃其余记录。如果需要保证多次运行之间的一致性,建议对数据进行排序。

聚合和分组

要聚合结果,请选择汇总菜单选项。这会为目标数据表中的每一列切换显示一组选择框。请为每一列选择合适的汇总方法。

  • 分组依据
  • 求和
  • 最小值
  • 最大值
  • 第一个
  • 最后一个
  • 计数
  • 计数(含空值)
  • 平均值
  • 标准差
  • 样本标准差
  • 总体标准差
  • 方差
  • 样本方差
  • 总体方差
  • 高级非分组依据

有关表达式、清理和常量等高级数据映射器用法,请参阅高级数据映射器用法

Table Data Filters

为了获得最大的灵活性,源数据和目标数据都可以使用数据筛选器。对于较大的数据集,在源端筛选掉部分行尤其有益,这样后续操作只需处理较小的数据集。

选择数据子集

此筛选器类型用于根据指定条件筛选传入的源数据。

对结果数据应用二次筛选器

此筛选器类型用于根据指定条件对转换后的结果数据应用筛选器。 对转换后的结果应用筛选器,可以基于复杂计算、汇总或窗口函数的结果进行排除。

最终数据表切片(限制)

行切片功能可根据范围和起始点限制结果集中的行数。

筛选器语法

筛选器语法使用 Python SQLAlchemy,与其他表达式的语法相同。

有关示例和表达式函数,请参阅表达式部分。