注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
视图的行为类似于 Foundry 的数据集视图,但它不包含任何数据文件。相反,当视图被读取时,它由其他数据集(称为支撑数据集)的并集组成。视图可以被看作是“指向”它们的支撑数据集。通过添加主键,视图还可以自动执行数据去重。如果视图的任何支撑数据集有新数据,系统将自动触发搭建以确保去重后的最新数据可用。视图的搭建与常规数据集类似,但几乎瞬间完成,因为在搭建过程中实际上没有读取或写入任何数据。
通常,您可以像使用常规数据集一样使用视图。然而,视图不能被指定为有效的变换_输出_;相反,它们可以被指定为有效的变换_输入_。
视图的一些主要应用案例包括:
要创建新的视图,请从左侧工作区导航面板中打开文件,然后找到您想要的项目或文件夹。在那里,选择右上角的新建 > 视图,以在当前项目或文件夹中创建新的视图:
为视图选择一个名称和位置,然后继续进行配置。当视图创建完成后,系统将在后台自动创建一个搭建计划,任何时候支撑数据集更新时都会重新搭建视图。如果您想在创建或修改视图后立即读取视图,则必须手动搭建视图。
因为视图由其支撑数据集的并集组成,给定视图的每个支撑数据集都必须拥有相同的列名称和类型(尽管列的顺序可以不同)。
构建视图需要一个或多个支撑数据集。初始配置后,可以通过导航到详细信息 > 数据集视图设置来修改视图的支撑数据集。
数据去重是视图的一个关键功能,您可以通过添加主键来启用此功能。一旦配置了主键,视图就保证具有主键唯一性;视图中出现的每个主键仅在一行中出现。添加主键可确保在读取视图时,仅返回每个主键的最新数据。当视图的支撑数据集可能包含不需要的重复行时,这种自动去重特别有用。
一旦设置了主键,就无法在不创建新视图的情况下进行修改。
要添加主键,请选择一个或多个列,组合后将形成主键。这些列中不得包含空值。
如果您在初始配置时没有添加主键,可以稍后通过导航到详细信息 > 数据集视图设置来添加。
要添加主键,您还必须指定一个列(或列的组合)来解决重复的主键。通过保留这些列的值最高的行并丢弃其他行来执行具有相同主键的行的去重。这确保视图中出现的每个主键都是唯一的。
您还可以非必填指定删除列,该列必须包含布尔值。去重后,如果给定主键的最终剩余行在删除列中为 true
,则该行将从视图中排除。
重复主键在使用删除列排除行之前解决。因此,对于给定主键而言,只有“最新”行中删除列的值才重要。
去重和删除在所有支撑数据集中执行:
去重和删除通过以下组合实现:
尽管每次读取时评估筛选逻辑,但如果投影是最新的,并且视图的支撑数据集自上次投影搭建以来仅进行了添加
或更新
事务,则评估此逻辑对运行时间和计算成本的影响可忽略不计。
考虑到这种架构,我们建议仅在以下情况下创建具有主键配置的视图。
添加
或严格增量的更新
事务进行更新。添加
或严格增量的更新
事务更新,一些则通过快照
事务更新,但以快照
事务更新的数据集搭建不频繁。如果对支撑数据集的更新需要完全重建投影,则会产生相当大的计算成本,因为读者(Contour、变换任务等)必须在没有投影优势的情况下应用筛选逻辑,直到投影重建完成。
视图在 Foundry 中与常规 Foundry 数据集一样可见,并且可以在常规数据集可以使用的任何地方使用。唯一的例外是视图不是有效的变换输出(尽管它们是有效的变换输入),并且不支持轻量级变换。一个示例应用案例是有效地创建多个数据集的并集,使用主键确保生成的视图具有数据唯一性。