2

我注意到Google dataprep中的每个目的地(无论是手动的还是计划的)都会启动一个计算引擎实例。普通帐户的限制配额最多为 8 个实例。

看这个流程: dataprep flow

由于数据整理由多个层组成,您可能希望通过导出实现中间步骤,那么运行数据准备流程的最佳方法/架构是什么?

选项 A

运行 2 个单独的流程并安排它们 15 分钟。差异:

  1. 第一个流程将仅导出最后一步
  2. 其他流程将仅导出中间步骤

这样,您不会达到配额限制,但您仍在多次计算同一流程的早期阶段

选项 B

保持流程不变并请求更多 Compute Engine 配额:计算工作量相同,我只会让更多实例并行而不是顺序运行

选项 C

每个步骤都有自己的流程 + 创建参考数据集:这样每个流程只会运行一个步骤。

例如,当我运行作业“1549_first_repo”时,我将不再计算前面的 3 个步骤,而只计算最后一个:引用的“5912_first”表和“1549_first_repo”之间的转换。

最后一个选项在我看来是最合理的,因为每个转换最多运行一次,我错过了什么吗?

而且,有没有办法运行每个按顺序而不是并行运行每个导出

-- 编辑 30. 五月 --

事实证明,选项 C 不是要走的路,因为“引用”是前一个流程的纯粹延续。您可以将引用数据集之前和引用数据集之后的流想象为单个流。

仍在试图弄清楚如何在不冗余计算相同操作的情况下实现模块化。

4

1 回答 1

1

选项 A 和 B 都不错,区别在于配额增加。如果您希望迟早升级,不妨早点升级。

如果您熟悉 java 或 python 和Dataflow,则其他选项是创建一个管道,该管道包含 numWorkers、workerMachineType 和 maxNumWorkers 的组合,适合您的 8 个内核(或虚拟 CPU)的试用限制。这是管道选项,这是一个可以让您更好地了解产品的教程。

于 2018-07-18T16:18:16.183 回答