> For the complete documentation index, see [llms.txt](https://academy.pentaho.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.pentaho.com/pipeline-designer/concepts-and-terminology.md).

# Concepts & Terminology

{% hint style="info" %}

#### Concepts & Terminology

{% endhint %}

{% tabs %}
{% tab title="Projects" %}

{% endtab %}

{% tab title="Transformations" %}
{% hint style="info" %}

#### Transformations

Transformations are data flows built from interconnected nodes that process and transform data. These files use a .ktr extension and represent a directed graph of data transformation logic.

**Nodes** are the core building blocks that perform specific tasks like reading files, filtering rows, or writing to databases. Pipeline Designer provides numerous nodes organized by function (Big Data, Input, Output, Transform, etc.). You can add nodes to the canvas by dragging them from the Design pane or double-clicking. Each node runs in its own thread when the transformation executes.
{% endhint %}

<figure><img src="/files/ZfzJxLfQ3Njtbm1h28uP" alt=""><figcaption><p>Transformation</p></figcaption></figure>
{% endtab %}

{% tab title="Hops" %}
{% hint style="info" %}

#### Hops

**Hops** are the pathways connecting nodes together, shown as arrows in the interface. They define data flow direction and allow schema metadata to pass between steps. While hops may appear to create a sequence, all nodes in transformations are actually start in parallel - as a result, you cannot reliably set a variable in one node and use it in a subsequent downstream node within the same transformation. When data reaches a node with multiple outputs, it can either be copied to all destinations or distributed among them see [Data Movement](#data-movement).
{% endhint %}

**Transformations**

<figure><img src="/files/tatoFqWZkgYopKPsAWq9" alt=""><figcaption><p>Draw a Hop between Nodes</p></figcaption></figure>

<figure><img src="/files/ZEGjAdrJ8HKtlKIw3xo2" alt=""><figcaption><p>Delete or Disable Hop</p></figcaption></figure>

**Jobs**

{% hint style="info" %}
**Job Hops** in jobs behave differently than in transformations - they control execution order and specify conditions determining which node runs next based on previous results. This creates a sequential flow of control rather than parallel data processing.
{% endhint %}

<figure><img src="/files/VuPg6b1UhsTGnA6pHW4F" alt=""><figcaption><p>Always begin with 'Start' node</p></figcaption></figure>

Job hop conditions are specified in the following table:

<table><thead><tr><th width="226">Condition</th><th>Description</th></tr></thead><tbody><tr><td><strong>Unconditional</strong></td><td>Specifies that the next job entry will be executed regardless of the result of the originating job entry</td></tr><tr><td><strong>Follow when result is true</strong></td><td>Specifies that the next job entry will be executed only when the result of the originating job entry is true; this means a successful execution such as, file found, table found, without error, and so on</td></tr><tr><td><strong>Follow when result is false</strong></td><td>Specifies that the next job entry will only be executed when the result of the originating job entry was false, meaning unsuccessful execution, file not found, table not found, error(s) occurred, and so on</td></tr></tbody></table>
{% endtab %}

{% tab title="Jobs" %}
{% hint style="info" %}

#### Jobs

Jobs are workflow models that coordinate ETL activities, resources, and dependencies. Unlike transformations that focus on data flow, jobs orchestrate entire processes. A typical job might download FTP files, verify database tables exist, execute transformations to load data, and send error notifications if issues occur.

**Job Nodes** are the building blocks of jobs. The same job node can be reused multiple times with different configurations. Jobs use a .kjb extension.
{% endhint %}

<figure><img src="/files/BL2PPg2OmiS36a81pE65" alt=""><figcaption><p>Jobs</p></figcaption></figure>

1.

{% endtab %}

{% tab title="Notes" %}
{% hint style="info" %}

## Adding Notes to Transformations and Jobs

Notes help document your transformations and jobs by explaining structure, design decisions, business rules, dependencies, and other important aspects for yourself and your team.
{% endhint %}

x

{% hint style="info" %}
**Working with Notes**

**Adding a note:** Click the Add Note icon in the canvas toolbar. Enter your note content in the dialog box, optionally customize the font, color, and shadow styling, then click Save to place it on the canvas.

**Editing a note:** Hover over any note to reveal Delete and Edit icons. Click Edit to modify the note's content or formatting, then save your changes.

**Repositioning a note:** Simply click and drag the note to any location on the canvas.

**Deleting a note:** Hover over the note and click the Delete icon that appears above it.

Notes are a simple but effective way to maintain clear documentation directly within your PDI workflows, making them easier to understand and maintain over time.
{% endhint %}
{% endtab %}

{% tab title="Data Movement" %}
{% hint style="info" %}

#### Data Movement

Hops connect nodes in transformations & jobs, with arrows indicating the direction of data flow.&#x20;

**Important Constraints**

**Loops:** Transformations do not allow loops because Spoon relies on previous steps to determine field values, which could cause endless loops. Jobs do allow loops since they execute sequentially, but you must avoid creating endless loops.

**Mixed row layouts:** Transformations cannot mix rows with different layouts (such as combining table inputs with varying field counts). Mixed layouts cause failures when fields are missing or data types change unexpectedly. The trap detector warns you at design time when steps receive mixed layouts.

**Managing Hop Behavior**

Click on the three dots that appear when you hover over a node. Select "Data Movement" to specify how data is handled across multiple outgoing hops- either copied, distributed, or load balanced. You can also enable or disable individual hops, useful for testing purposes.
{% endhint %}

1. Hover over the node > click on the 3 dots.

<figure><img src="/files/cb6ZZoFxeoaB9Gffia2T" alt=""><figcaption><p>Data Movement</p></figcaption></figure>

2. From here you can Change the Number of Copies & set Data Movement.

<figure><img src="/files/GMdskDRU0fhdgMFmH8Qn" alt=""><figcaption><p>Set Numbr of Copies &#x26; Data Movement</p></figcaption></figure>
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://academy.pentaho.com/pipeline-designer/concepts-and-terminology.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
