注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
搭建是Foundry中用于计算数据集新版本的机制。搭建提供计算的编排和协调,确保读取适当的输入数据,并将输出数据写入适当的位置。
一个搭建由多个任务组成,每个任务是一个由共享逻辑定义的工作单元,计算一个或多个输出数据集。请注意,如果一个任务定义了多个输出数据集,它们将始终一起更新,无法在不运行完整任务的情况下仅搭建某些数据集。任务规范或JobSpec是关于如何构建任务的定义。当Foundry中的数据变换逻辑发生更改时,例如当数据工程师在代码仓库中提交新的变换代码时,会发布JobSpecs。
运行一次搭建会导致一组输出数据集的一次性计算。为了保持数据在系统中的流动,使用调度来随时间运行搭建。
您可以使用搭建应用程序在Foundry中探索搭建。
一个任务封装了从一组输入数据集的数据中计算一个或多个输出数据集的新版本。JobSpec通过详细说明输入数据集依赖关系和应作为任务的一部分执行的逻辑来定义如何构建任务。
输入数据集依赖关系被声明为一组InputSpecs,每个InputSpec指定一个特定的输入数据集。InputSpecs指定要从数据集中读取的视图数据子集。
在Foundry中,可以表示为任务的逻辑类型包括但不限于:
在任何给定时间,任务总是在以下状态之一:
WAITING
:任务的初始状态;任务正在等待其依赖的任务完成且尚未被调用。RUN_PENDING
:任务正在等待运行,但其执行环境尚未确认状态。RUNNING
:任务已被调用并正在计算中。ABORT_PENDING
:任务已被中止,但其执行环境尚未确认中止状态。ABORTED
:任务被用户请求中止或由于依赖任务失败而中止。FAILED
:任务被调用,但计算失败。COMPLETED
:任务被调用,计算成功完成。当一个搭建运行时,会执行几个步骤来验证提交的搭建,确保数据一致性,并仅运行必要的任务以生成新输出。
作为第一步,搭建:
完成上述步骤后,搭建中的任务将被执行。相互不依赖的任务将并行运行。当任务通过任务状态时,整个搭建的状态将相应更新:
请注意,如果搭建中的某个任务失败,先前完成的任务可能仍然已将数据写入其输出数据集。
如果搭建解析步骤确定输入数据集和JobSpec中指定的逻辑自上次构建输出数据集以来没有更改,则输出数据集被认为是新鲜的。如果输出数据集是新鲜的,则不会在后续搭建中重新计算。
要覆盖搭建系统的默认陈旧性行为,您可以运行一个强制搭建,无论数据集是否已更新,都会重新计算所有数据集。
Foundry中的搭建实现了分支以支持数据管道上的协作工作流。要了解有关分支的更多信息:
实时日志提供对运行任务的实时可见性,允许您监控任务的进展并检查长时间运行的任务,例如流或计算模块。
您可以通过搭建应用程序访问实时日志。在查看任务时,选择日志查看器右上角的查看实时按钮以开始生成。
实时日志的一个关键特性是按日志级别内置的颜色编码,使识别和优先处理警告和出错更容易:
此外,安全参数和参数以JSON块形式可见,为您的数据提供结构化和可读格式。
您可以通过从界面右上角选择暂停随时停止实时日志提要,并从同一位置恢复。
请注意,时间范围选择不适用于实时日志,因为它们是从任务中实时流式传输的。
启用后,界面中实时日志可见之前可能会有十秒钟的延迟。