跳转到内容

同步依赖项

在高级工作流中,画布上的连接线决定步骤的运行顺序。读取某个表的步骤应当在写入该表的步骤之后运行,但没有任何机制强制您绘制这条连接线。没有它时,这两个步骤可能同时运行,第二个步骤可能在第一个步骤写完之前就读取了该表。这种情况在转换、复制或由其他工作流组装而成的工作流中很常见。

同步依赖项通过读取每个步骤读写的表来找出这些步骤,并建议能使它们按顺序运行的连接线。您需要审核每一条建议,在您选择添加连接线之前不会有任何更改。

同步依赖项只会添加连接线。它绝不会删除或移动连接线,也绝不会更改任何步骤。

  1. 在高级工作流画布上打开工作流。
  2. 在工具栏上选择同步依赖项,它位于检查旁边。当 Weave 已有建议时,工具栏下方的横幅会提示,例如 Weave 建议添加 3 条连接线,使每个步骤都在写入其所读取表的步骤之后运行。 选择横幅上的审核… 即可打开同一窗口。
  3. 同步依赖项窗口每行列出一条建议,例如 在读取“sales”的“Report”之前运行“Load Sales”。每行都有一个复选框。
  4. 勾选您想要的连接线,并取消勾选不想要的。
  5. 选择添加连接线。

连接线会立即出现在画布上。撤消可一次性移除所有这些连接线,重做可将它们恢复。

如果您可以编辑该工作流并读取其表,就会看到同步依赖项按钮。

当两个步骤都是表:提取、表:复制、表:融合(列转行)、表:透视(行转列) 或表:构建特征时,该建议会被勾选。这些步骤读取一个表,并在每次运行时替换其目标,因此顺序是明确的。

其他所有建议都会列出,但不会勾选。它们涉及追加(表:追加)、导入、联接或查找的步骤,或读取多个表的步骤,例如提取 SQL。如果该步骤应当等待另一个步骤,请勾选相应建议。

  • 顺序已经错误的步骤。 如果某条连接线已使某个步骤在写入其所读取表的步骤之前运行,窗口会说明有多少个。同步依赖项不会重新排列步骤;请在画布上检查这些连接线。
  • 您无法打开的步骤。 涉及您的角色所隐藏步骤的建议只会计数,不会列出。
  • Weave 无法检查的工作流。 如果某个步骤运行另一个工作流,或使用了 Weave 无法追踪的表,或连接线形成了循环,窗口会提示 Weave 无法检查该工作流的步骤顺序,并且不给出任何建议。
  • 无需添加。 如果每个步骤都已在写入其所读取表的步骤之后运行,窗口会这样说明。

只有在顺序确定时,Weave 才会建议连接线。它不会判断以下情况:

  • 由工作流中多个步骤写入、或同时由其他工作流写入的表,因为某个步骤可能本来就是要读取其他工作流的输出。既读取又写入某个表、而另一个步骤也写入该表的步骤,同样按此处理。
  • 步骤通过变量选取的表、多个表共用的名称、视图,或来自其他项目的表。
  • 工作流中某个步骤清空、从中删除行或将其删除的表,因为在加载表之前先清空它属于有意安排的顺序。
  • 执行容器内的步骤。
  • 已禁用的步骤,以及已禁用容器中的步骤。经过已禁用步骤的连接线路径仍然有效,因为工作流会直接穿过该步骤。

Weave 检查的是步骤的运行顺序,而不是它们产生的数据。

如果窗口打开期间有人更改了工作流,或某条建议不再适用,当您选择添加连接线时会出现工作流已更改提示,并重新加载画布。再次选择同步依赖项即可查看 Weave 现在的建议。

对于已锁定的工作流,请先解锁,再添加连接线或撤消。

无需打开画布也能找到这些步骤。Weave 会在后台检查每个高级工作流(包括从未运行过的工作流),并在 Weave 选项卡中报告可能在所读表写入之前运行的步骤。当缺少连接线时,该发现项上的修复会在工作流画布上打开此窗口。请参阅 Weave 发现项。