2 votes

KubeFlow, manipulation de grands tableaux dynamiques et ParallelFor avec les limitations actuelles de taille

J'ai eu du mal à trouver une bonne solution pour cela depuis hier et j'aimerais connaître vos réflexions.

J'ai un pipeline qui reçoit un grand JSON array dynamique (ne contenant que des objets stringifiés), j'ai besoin de pouvoir créer un ContainerOp pour chaque entrée de cet array (en utilisant dsl.ParallelFor).

Cela fonctionne bien pour de petits entrées.

Actuellement, l'array arrive en tant que fichier http url en raison des limitations de taille des arguments d'entrée du pipeline d'argo et de Kubernetes (ou c'est du moins ce que j'ai compris des problèmes ouverts actuels), mais - lorsque j'essaie de lire le fichier à partir d'une Op pour l'utiliser en entrée pour le ParallelFor, je rencontre la limitation de la taille de la sortie.

Quelle serait une solution bonne et réutilisable pour un tel scénario?

Merci!

0voto

Ark-kun Points 3098

le tableau arrive sous forme d'un URL de fichier http en raison des limites de taille des arguments d'entrée de pipeline d'argo et de Kubernetes

Généralement, les données externes sont d'abord importées dans le pipeline (téléchargées et produites). Ensuite, les composants utilisent inputPath et outputPath pour transmettre de gros morceaux de données sous forme de fichiers. La limitation de taille s'applique uniquement aux données que vous consommez en tant que valeur au lieu de fichier en utilisant inputValue.

Les boucles consomment les données par valeur, donc la limite de taille s'applique à elles.

Vous pouvez rendre ces données plus petites. Par exemple, si vos données consistent en une liste JSON de gros objets [{obj1}, {obj2}, ... , {objN}], vous pouvez la transformer en une liste d'index [1, 2, ... , N], passer cette liste à la boucle et ensuite à l'intérieur de la boucle, vous pouvez avoir un composant qui utilise l'index et les données pour sélectionner un seul élément sur lequel travailler N -> {objN}.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X