Skip to main content

Add and connect nodes

We explain how to add nodes that make up a workflow and connect data flows.

How to add nodes

1. Quick Add

Add Node

From the Quick Add section on the left panel, drag and drop the desired nodes onto the canvas. This node list (palette) is grouped into dataset (Delta, Kafka, REST), ontology (entity, relationship), and code (Python, SQL).

2. Import from collection

In the Collection tree on the left panel, find and drag the Dataset·Code you have already created. This is the best way to rewrite existing resources, and even the object dataset that is not available in Quick Add is imported here. Ontological entities and relationships are added through quick addition, not through the collection tree.

3. Right-mouse menu

If you right-click on an empty space on the canvas, you can add nodes with the following items.

Menu ItemsDescription
Add datasetSelect from Delta/Kafka/REST submenu
Add codePython/SQL
Add entity / Add relationshipOntology entity/relationship node
Auto SortNode automatic placement

When you right-click on a node, the following options are available:

Menu ItemsDescription
EditOpen the Properties panel
Duplicatenode replication
Add result dataset(Code Node) Create and connect an output dataset node
Deletedelete node

4. Keyboard shortcuts

  • Add dataset node: Ctrl(Cmd) + Shift + D
  • Add code node: Ctrl(Cmd) + Shift + C

Code Node Reference and Save-As Model

Code nodes operate by loading common code assets stored in collections from the pipeline. This allows the same code to be rewritten in multiple pipelines. When editing code in the Properties panel, follow these rules:

  1. If you open the loaded code node and modify its contents, Select save method will appear in the properties panel.
  2. Select Overwrite Original if you have permission to edit the original, or Save As if you do not have permission to edit the original to create a copy just for this pipeline.
  3. Saving as a copy leaves the original code assets intact and does not affect other pipelines.

Splitting into copies like this does not happen automatically. The user decides when to separate.

Node type

Dataset Node

It acts as a source or sink for data. Use the appropriate connection method depending on the subtype of the dataset (type: delta / kafka / rest / object).

subtypeDescriptionUse
deltaversion control tableBatch data processing, version control
kafkamessage streamReal-time streaming data
restHTTP endpointExternal API call
objectFile/Object StorageUnstructured file input/output

The properties panel of a dataset node shows Schema and Data as read-only. Dataset connection (input/output) and read mode/write mode are set in the option tab of the connected code node, not in the dataset node (see Connect nodes below).

Code Node

Performs logic to convert and process data. The execution engine is selected according to type (python or sql) in the code resource.

TypeUse
PythonGeneral-purpose data processing, ML model application, external API call
SQLTransform, aggregate, join, filter data

The code execution contract is:

Python — Define the function run(input, *, options=None, contexts=None) and return it in format {"output": DataFrame} (the input is a Polars DataFrame). options is an option passed to the step, and contexts is a value shared between steps and is always passed, so it is accepted as an argument even if it is not used.

import polars as pl

def run(input, *, options=None, contexts=None):
output = input.filter(pl.col("total") > 1000)
return {"output": output}

SQLinput is used as the input table name, and the query results are output.

SELECT category, SUM(amount) AS total_amount, COUNT(*) AS order_count
FROM input
GROUP BY category
ORDER BY total_amount DESC

Entity / Relation node (ontology resource)

Entity and Relationship defined by ontology can also be used as input and output of a step.

Input/Output Mapping of Code Node Options Tab — Entity Input/Relationship Output and Write Mode (Increment/Append/Merge)

  • PK Required: Entities and relationships must have identity keys. If the key is empty, a warning icon is displayed on the node.
  • backing dataset: Nodes are connected to the underlying dataset that the entity/relationship actually points to. You can check which column/key it is connected to in the Property tab of the property panel.
  • Display Column: This is the column that will be displayed on behalf of each instance.

Connect nodes

  • Dataset / Entity / Relation node → Code node: Read data (source)
  • Code node → Dataset / Entity / Relation node: Write data (sink)
  • Code Node → Code Node: Passing intermediate results
  • Dataset → Dataset direct connection is not allowed (requires a code node in the middle).

After placing nodes, see Connect nodes to configure direction, allowed combinations, and read and write modes.

Node management

  • Move: Drag the node to change its position.
  • Duplicate: Select a node and use Duplicate or Ctrl(Cmd)+D in the right-click menu.
  • Delete: Select the node and press the Delete key or select Delete from the right-click menu.
  • Auto-Arrange: Select a layout from the Auto-Arrange dropdown in the canvas control.
LayoutDescription
Left → Right (LR)From left to right
Top → Bottom (TB)From top to bottom
Pipeline DAGArranged in the form of a node flow diagram (directed acyclic graph)
Force-DirectedForce-based automatic alignment
CircularCircular Layout
GridGrid Layout
  • Group selection: Shift + Select multiple nodes at once by dragging.

Name and alias, clone

Each node has a name and alias. The name is an identifier (table name) that must be unique among the same type within the pipeline, and the alias is a name for display on the screen. Aliases can be freely changed in the Overview tab, but the name is a resource identifier and is therefore usually read-only (only newly added dataset drafts can edit the name).

  • Clone Name Rule: When a node is cloned, its name is followed by _copy (e.g. ordersorders_copy). If the same name already exists, numbers follow, such as _copy_2, _copy_3 (_copy_1 is not used).
  • Inducing duplication when reusing existing resources: If you reselect a dataset/entity/relationship already in the pipeline with the same type/name in the input/output selector of the Options tab of the code node, the Save As New Name window opens to create a copy of the new name and connect it to avoid name conflicts (for more information, see Node Connection).