增量管道的资源分配
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)
有时必须将 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)