Kubernetes KubeFlow,处理具有当前大小限制的大型动态阵列和并行

Kubernetes KubeFlow,处理具有当前大小限制的大型动态阵列和并行,kubernetes,kubeflow,argo-workflows,argoproj,Kubernetes,Kubeflow,Argo Workflows,Argoproj,在过去的一天里,我一直在努力为这种方式找到一个好的解决方案,我想听听你的想法 我有一个接收大型动态JSON数组(只包含字符串化对象)的管道, 我需要能够为该数组中的每个条目创建一个ContainerOp(使用dsl.ParallelFor) 对于小的输入,这很好 现在,由于argo和Kubernetes的管道输入参数大小限制(或者这是我从当前公开问题中了解到的),数组以文件http url的形式出现,但是-当我尝试从一个Op读取文件以用作ParallelFor的输入时,我遇到了输出大小限制 对于

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

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

对于小的输入,这很好

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

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

谢谢

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

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

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

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