增量管道的资源分配

Resource Allocation for Incremental Pipelines

有时必须将 Palantir Foundry 中的增量管道构建为快照。如果数据量很大,则会增加 运行 构建的资源以减少 运行 时间,然后在第一个快照 运行 后删除配置。有没有办法设置条件配置?就像管道在增量模式下 运行ning 一样,使用资源分配的默认配置,如果不是指定的资源集。

示例: 如果管道 运行s 作为快照事务,则必须应用以下配置

@configure(profile=["NUM_EXECUTORS_8", "EXECUTOR_MEMORY_MEDIUM", "DRIVER_MEMORY_MEDIUM"]) 

如果增量,则默认一个。

@configure@incremental 在 CI 执行期间设置,而由 @transform_df 或 `@transform 注释的函数内的实际代码发生在构建时.

这意味着您无法在 CI 过去后以编程方式在它们之间切换。但是,您可以做的是在您的回购协议中有一个常量或配置,并在您想要切换这些时在代码级别切换。在尝试此操作之前,请确保您了解语义版本控制的工作原理,即:

IS_INCREMENTAL = true
SEMANTIC_VERSION=1

def mytransform(input1, input2,...)
   return input1.join(input2, "foo", left)


if IS_INCREMENTAL:
   @incremental(semantic_version=SEMANTIC_VERSION)
   @transform_df(
     Output("foo"),
     input1=Input("bar"),
     input2=Input("foobar"))
   def compute(input1, input2):
      return mytransform(input1, input2)
else:
   @configure(profile=["NUM_EXECUTORS_8", "EXECUTOR_MEMORY_MEDIUM", "DRIVER_MEMORY_MEDIUM"]) 
   @transform_df(
     Output("foo"),
     input1=Input("bar"),
     input2=Input("foobar"))
   def compute(input1, input2):
      return mytransform(input1, input2)