Ich habe einen Workflow, in dem ich große Datenmengen (fast 48MB) verarbeiten muss, die ich von einem Sub-Workflow erhalte, aber n8n gibt einen Verbindungsfehler im Hauptworkflow aus. Ich denke, er stürzt ab und es gibt keine Möglichkeit, die Daten zu reduzieren, da ich alle Daten für die weitere Verarbeitung benötige. Wir nutzen den Enterprise-Plan. Könntet ihr mich bitte beraten, was sonst noch getan werden kann
Sieht so aus, als hättest du das Speicherlimit erreicht, @mylearnings_abu
Das könnte dir helfen
Willkommen @mylearnings_abu in unserer Community! Ich bin Jay und bin ein verifizierter n8n Creator.
Das Kernproblem ist, dass n8n alle Elemente auf einmal in den Speicher lädt – 48MB Rohdaten werden das Limit leicht überschreiten. Anstatt den vollständigen Datensatz durch die Sub-Workflow-Ausgabe zu übergeben, strukturiere es so um, dass der Sub-Workflow nur IDs oder Referenzen zurückgibt. Verarbeite dann die eigentlichen Daten in Batches im Hauptworkflow mit einem Split in Batches Node (Batch-Größe 50–100). Wenn du die Daten pro Datensatz abrufen musst, mache das innerhalb der Batch-Schleife mit einem HTTP Request oder Database Node. Das hält die Speichernutzung konstant, unabhängig von der Gesamtgröße des Datensatzes.
Hallo @mylearnings_abu
Das könnte dir helfen:
Eigentlich gibt es in meinem Fall einen Subworkflow, der Daten aus der Datenbank zurückgibt, und all diese Daten sind notwendig und werden dann weitergeleitet, um eine weitere Manipulation durchzuführen, die wiederum ein Subworkflow ist. Es gibt also keine Möglichkeit, irgendetwas bei 48 MB zu reduzieren.
Ich habe auch noch eine weitere Frage: Wenn wir eine JSON-Datei in S3 haben (Array von Objekten), wie können wir die Daten in Batches auslesen? Ist es so, dass wir die komplette Datei abrufen (GET) und dann das Batching durchführen?
Hi @mylearnings_abu du hast recht, du kannst die JSON einfach vom AWS S3 Node herunterladen, und sobald die Datei dort ist, kannst du ihren JSON-Inhalt mit dem Extract from File Node extrahieren, und sobald du die JSON extrahiert hast, kannst du entweder eine Loop hinzufügen, was ganz einfach ist, oder einen Code Node einrichten, wenn du bestimmte Operationen auf den Daten ausführen möchtest. Ein Problem, das ich sofort sehe, ist, dass die Datei, die du erhalten würdest, sehr groß wäre, da n8n derzeit kein Streaming-Partial-Reading unterstützt. Also pass auf den Speicherverbrauch auf.
Es ist besser, deinen Workflow so zu überarbeiten, dass er in Batches funktioniert (einige Daten abrufen, verarbeiten, umschreiben/ändern), anstatt alle Daten abzurufen und dann zu verarbeiten