2

在过去的一天里,我一直在努力为这种方式找到一个好的解决方案,并想听听你的想法。

我有一个接收大型动态 JSON 数组(仅包含字符串化对象)的管道,我需要能够为该数组中的每个条目创建一个 ContainerOp(使用 dsl.ParallelFor)。

这适用于小输入。

现在,由于 argo 和 Kubernetes 的管道输入参数大小限制,数组作为文件 http url 出现(或者这是我从当前打开的问题中理解的),但是 - 当我尝试从一个 Op 读取文件以使用作为 ParallelFor 的输入,我遇到了输出大小限制。

对于这种情况,什么是好的和可重用的解决方案?

谢谢!

4

1 回答 1

0

由于 argo 和 Kubernetes 的管道输入参数大小限制,该数组以文件 http url 的形式出现

通常首先将外部数据导入管道(下载和输出)。然后组件使用inputPathoutputPath将大数据片段作为文件传递。大小限制仅适用于您作为值而不是文件使用的数据inputValue

循环按值使用数据,因此大小限制适用于它们。

您可以做的是使这些数据更小。例如,如果您的数据是大对象的 JSON 列表[{obj1}, {obj2}, ... , {objN}],您可以将其转换为索引[1, 2, ... , N]列表,将该列表传递给循环,然后在循环内您可以拥有一个组件,该组件使用索引和数据来选择单个片段。工作N-> {objN}

于 2020-06-20T01:21:48.473 回答