优化工作流
优化会检查高级工作流,并提出能让其运行更快的更改。在任何操作发生之前,您都可以看到每项更改,选择需要的更改,之后还可以撤消结果。
优化适用于高级(DAG)工作流。对于标准工作流,请先选择转换为高级…;参见高级工作流。
- 在工作流列表中,右键单击高级工作流,然后选择优化…。该工作流不能处于运行或暂停状态,并且您需要拥有它的写入权限。
- 优化工作流窗口会显示一条概要,例如 34 个步骤 → 30 个步骤 · 12 个步骤可并行运行。如果工作流有运行历史,还会补充 每次运行约快 11 秒。
- 概要下方每项更改占一行,包含复选框、涉及的步骤、对工作流的影响,以及节省的时间(以挂钟运行时间的变化衡量)。所有项默认勾选,请取消勾选不需要的更改。
- 无法优化列表会列出优化未处理的步骤及各自的具体原因;参见步骤无法优化的原因。
- 选择应用 N 项更改。
如果工作流已没有可改进之处,窗口会予以说明。
根据数据血缘重建依赖关系
Section titled “根据数据血缘重建依赖关系”优化会读取每个步骤读取和写入的表,并重新绘制连接,使步骤只等待其所用表对应的步骤。没有共用表的步骤会并行运行。
- 步骤不再等待无关步骤,因此也不会因无关步骤失败而停止。失败会沿新的依赖关系级联。
- 按步骤范围进行的部分运行(例如从此处运行)会遵循新的依赖关系。
- 服务器仍会限制同时运行的步骤数量。
- 按名称或路径指定表的步骤,与使用表 ID 的步骤同样可以被识别。名称必须与项目中恰好一个表匹配;匹配多个表的名称、使用变量的引用,以及位于其他项目中的表都无法追踪。
- 已禁用的步骤从不带有顺序约束,也不计入可并行运行的步骤。
- 当计划或其他工作流正在运行此工作流的某个步骤范围时,优化会跳过此项更改。
将提取步骤链合并为一个步骤
Section titled “将提取步骤链合并为一个步骤”由 Extract Data 步骤构成的链(每个步骤读取前一个步骤写入的表)会变成单个步骤,它读取第一个源并写入最后的结果。
每次合并在应用之前都会经过验证。优化会基于您当前的数据运行原始步骤和合并后的步骤,将结果写入临时暂存表,并逐行比较两份结果。只有两者完全一致时才会应用合并。验证期间不会触及您的工作流及其表。
- 重命名后接筛选(例如 Select 步骤后接筛选器)可以合并为一个步骤。
- 整条链无法合并时,优化会提供其中可合并的最长部分。
- 合并后链中间的表不再由工作流写入。它们会被保留而不会被删除,并且更改中会列出它们。
- 结果不同或无法验证的合并不会被应用,结果中会说明原因。合并需要有数据的源表。
步骤无法优化的原因
Section titled “步骤无法优化的原因”无法优化中的每一行都会列出各自的原因:
| 原因 | 含义 |
|---|---|
| 聚合 | 该步骤对行进行汇总,因此无法并入相邻步骤。 |
| 两个筛选器 | 含有两个筛选器的链无法变成一个步骤。 |
| 可能舍入的浮点数上的筛选器 | 合并可能会改变哪些行通过筛选,因此筛选器保持原位。 |
| 运行用户代码的步骤 | 表达式、脚本及类似步骤无法验证是否等效。 |
| 被多个步骤读取的表 | 链中间的表在其他位置也需要用到。 |
| 已禁用的步骤 | 已禁用的步骤不会被合并,也不带有顺序约束。 |
| 执行容器的成员 | 执行容器中的步骤作为一个整体运行。 |
| 无可用行数 | 即使实时读取也无法获取源表的行数,因此无法为验证估算合并规模。 |
| 无法识别表 | 步骤的表名不匹配任何表或匹配多个表、使用了变量,或指向其他项目。 |
| 行级安全或表过大 | 该表受行级安全管控,或过大而无法自动验证。 |
仅用于在画布上对步骤分组的可视化容器不会阻止合并。当合并从其中移除步骤时,合并后的步骤会取代它们的位置,变空的容器会被丢弃。撤消会精确还原布局。
应用之后,正在优化工作流会显示当前阶段:正在验证(第 3 次,共 6 次运行)…、正在比较结果… 和 正在应用…。完成后,结果会列出已应用的内容(包括每次合并在多少行上得到验证),以及未应用的内容(并说明各自的原因)。
如果工作流在优化验证期间发生了变化,受影响的更改会被跳过,窗口会说明跳过了多少项。如果应用失败,工作流会恢复到之前的状态。
在提交更改期间启动的运行会短暂延迟,而不会被丢弃。
右键单击工作流并选择撤消优化…,或在结果中使用撤消优化。确认后,工作流的步骤、设置和布局会恢复到优化之前的状态。此后您对工作流所做的更改将会丢失。
撤消需要还原点,但并非所有租户都提供。没有还原点的租户无法应用优化。
通过 API 和 AI 助手进行优化
Section titled “通过 API 和 AI 助手进行优化”优化也可通过 REST API 和面向 AI 助手的 workflow_optimize 工具使用,预览、应用和撤消步骤均相同。