Skip to content

Data Storage Node

Data Storage consumes incoming tabular rows and keeps the accumulated dataset across later runs of the same workflow. You wire an upstream node such as File Input or Operation into Data Storage. Incoming wires consolidate on Ports the same way they do on other nodes. You set Replace, Append, or Upsert on the Ports Stored dataset row. The first run writes the incoming rows into the store. Later runs apply that consume mode against the stored rows, then expose the merged table on output.

This is a different persist class from Static Data (a grid you edit in workflow config) and File Input (files for this run only).

You set the mode on Ports, on the Stored dataset row. New nodes default to Append. Clear store stays on Settings.

  • Append: incoming rows are added after the stored rows. Columns are unioned by name. Missing values become null. The same column name with two different types fails the run.
  • Replace: incoming rows become the entire store, including the incoming schema. Empty or missing incoming data fails the run so you cannot wipe the store by accident. Use Clear store to empty the dataset.
  • Upsert: incoming rows match stored rows on one or more key columns (every selected column must match). A match replaces the stored row. No match inserts a new row. Zero keys is invalid. A missing, empty, or null value on any key part fails the run.

Clear store empties the stored dataset immediately after you confirm. The next run starts from zero rows. The same inputs without Clear do not append twice; the engine skips an unchanged node.

Deleting the node deletes its store. Duplicate or copy-paste creates a new node with an empty store. Copying a workflow also starts empty, because the store is keyed by this workflow and this node.

Open Daily Trade Blotter from Explore, under Financial. Monday Fills is already wired. After the first run, you disconnect Monday and wire Tuesday Fills so the ledger grows. Downstream Save File reads the stored dataset, not only today’s file.

Canvas agents can create and update Data Storage nodes (canvas_createDataStorageNode / canvas_updateDataStorageNode) and set consume mode and upsert keys.

The card shows the consume mode and the stored row count from the last successful run.