注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

视图

视图的行为类似于 Foundry 的数据集视图,但它不包含任何数据文件。相反,当视图被读取时,它由其他数据集(称为支撑数据集)的并集组成。视图可以被看作是“指向”它们的支撑数据集。通过添加主键,视图还可以自动执行数据去重。如果视图的任何支撑数据集有新数据,系统将自动触发搭建以确保去重后的最新数据可用。视图的搭建与常规数据集类似,但几乎瞬间完成,因为在搭建过程中实际上没有读取或写入任何数据。

通常,您可以像使用常规数据集一样使用视图。然而,视图不能被指定为有效的变换_输出_;相反,它们可以被指定为有效的变换_输入_。

视图如何搭建的示意图。

视图的一些主要应用案例包括:

  • 自动更新: 创建一个无需执行变换即可始终保持最新的并集数据集。
  • 文件夹组织: 在不同位置复制数据集,而不产生额外的计算和存储成本。
  • 数据唯一性: 自动保证数据具有主键去重功能,无需变换。

创建视图

要创建新的视图,请从左侧工作区导航面板中打开文件,然后找到您想要的项目或文件夹。在那里,选择右上角的新建 > 视图,以在当前项目或文件夹中创建新的视图:

在项目或文件夹中创建新视图。

为视图选择一个名称和位置,然后继续进行配置。当视图创建完成后,系统将在后台自动创建一个搭建计划,任何时候支撑数据集更新时都会重新搭建视图。如果您想在创建或修改视图后立即读取视图,则必须手动搭建视图。

选择支撑数据集

因为视图由其支撑数据集的并集组成,给定视图的每个支撑数据集都必须拥有相同的列名称和类型(尽管列的顺序可以不同)。

构建视图需要一个或多个支撑数据集。初始配置后,可以通过导航到详细信息 > 数据集视图设置来修改视图的支撑数据集。

为视图选择支撑数据集。

添加主键

数据去重是视图的一个关键功能,您可以通过添加主键来启用此功能。一旦配置了主键,视图就保证具有主键唯一性;视图中出现的每个主键仅在一行中出现。添加主键可确保在读取视图时,仅返回每个主键的最新数据。当视图的支撑数据集可能包含不需要的重复行时,这种自动去重特别有用。

一旦设置了主键,就无法在不创建新视图的情况下进行修改。

要添加主键,请选择一个或多个列,组合后将形成主键。这些列中不得包含空值。

为视图添加主键。

如果您在初始配置时没有添加主键,可以稍后通过导航到详细信息 > 数据集视图设置来添加。

解决重复键

要添加主键,您还必须指定一个列(或列的组合)来解决重复的主键。通过保留这些列的值最高的行并丢弃其他行来执行具有相同主键的行的去重。这确保视图中出现的每个主键都是唯一的。

选择删除列

您还可以非必填指定删除列,该列必须包含布尔值。去重后,如果给定主键的最终剩余行在删除列中为 true,则该行将从视图中排除。

实践中的去重和删除

重复主键在使用删除列排除行之前解决。因此,对于给定主键而言,只有“最新”行中删除列的值才重要。

单个支撑数据集的去重和删除示例。

去重和删除在所有支撑数据集中执行:

两个支撑数据集的去重和删除示例。

去重和删除通过以下组合实现:

  • 在视图上自动创建的适当配置的投影
  • 在每次读取时评估的基于窗口的筛选逻辑。

尽管每次读取时评估筛选逻辑,但如果投影是最新的,并且视图的支撑数据集自上次投影搭建以来仅进行了添加更新事务,则评估此逻辑对运行时间和计算成本的影响可忽略不计。

考虑到这种架构,我们建议仅在以下情况下创建具有主键配置的视图。

  • 所有支撑数据集都通过添加或严格增量的更新事务进行更新。
  • 一些支撑数据集通过添加或严格增量的更新事务更新,一些则通过快照事务更新,但以快照事务更新的数据集搭建不频繁。

如果对支撑数据集的更新需要完全重建投影,则会产生相当大的计算成本,因为读者(Contour、变换任务等)必须在没有投影优势的情况下应用筛选逻辑,直到投影重建完成。

使用视图

视图的数据沿袭。

视图在 Foundry 中与常规 Foundry 数据集一样可见,并且可以在常规数据集可以使用的任何地方使用。唯一的例外是视图不是有效的变换输出(尽管它们是有效的变换输入),并且不支持轻量级变换。一个示例应用案例是有效地创建多个数据集的并集,使用主键确保生成的视图具有数据唯一性。