# Jobs

{% hint style="info" %}
**Jobs**

In most ETL tasks you need to be able to perform maintenance tasks, orchestrate the execution of the transformations, and handle errors and retries. These tasks are handled by Jobs.\
A job consists of one or more job entry that are executed in a specific order. The order of the execution is determined by the job hops between the job entries as well as the executions themselves. Job entries differ in several ways:

* You can create shadow copies of a job entry. This allows to place the same job entry in a job on multiple locations.
* A job entry passes a results object between job entries. This means that once a job entry has been completed all rows are transferred at once, rather than in a streaming fashion.
* Job entries are executed in a certain sequence (except if set to parallel execution)
  {% endhint %}

<figure><img src="https://3680356391-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZpCSy6Skj215f4oWypdc%2Fuploads%2Fgit-blob-55fa256e0026c7cad304560e9d1f1bacee861e74%2Fjobs.jpg?alt=media" alt="" width="563"><figcaption><p>Jobs</p></figcaption></figure>

{% hint style="info" %}
Besides the execution order, a hop also specifies the condition on which the next job entry will be executed. You can specify the Evaluation mode by right clicking on the job hop. A job hop is just a flow of control. Hops link to job entries and, based on the results of the previous job entry, determine what happens next.
{% endhint %}

***

{% hint style="info" %}
**Workshops**

x
{% endhint %}

{% tabs %}
{% tab title="Jobs" %}
{% hint style="info" %}
Start off with an overview of the components that define a Job.

Create a Job that executes the 'hello world' transformation.

* START
* Job Entry
  {% endhint %}

<figure><img src="https://3680356391-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZpCSy6Skj215f4oWypdc%2Fuploads%2Fgit-blob-17bad42469eeae8e68e7cf4255a0ed19f964bd3a%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

{% content-ref url="jobs/job-hello-world" %}
[job-hello-world](https://academy.pentaho.com/pentaho-data-integration/data-integration/enterprise-solution/jobs/job-hello-world)
{% endcontent-ref %}
{% endtab %}

{% tab title="Backward Chaining" %}
{% hint style="info" %}
In Pentaho, a job is a sequence of steps that can be executed in a specific order. A job can contain one or more transformations, which are executed in parallel or sequentially.

Backward chaining is a technique used to execute a job in which the execution of a transformation depends on the successful execution of another transformation. In other words, it is a technique used to execute transformations in reverse order.
{% endhint %}

<figure><img src="https://3680356391-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZpCSy6Skj215f4oWypdc%2Fuploads%2Fgit-blob-edb54ca1f92b2447d874ea1845df0cb4aa879223%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

{% content-ref url="jobs/backward-chaining" %}
[backward-chaining](https://academy.pentaho.com/pentaho-data-integration/data-integration/enterprise-solution/jobs/backward-chaining)
{% endcontent-ref %}
{% endtab %}

{% tab title="Parallel" %}
{% hint style="info" %}
Running Pentaho jobs in parallel can help improve performance and efficiency in data integration and ETL processes.
{% endhint %}

<figure><img src="https://3680356391-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZpCSy6Skj215f4oWypdc%2Fuploads%2Fgit-blob-7b660574070e61a13530af028169164780e88f24%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

{% content-ref url="jobs/parallel" %}
[parallel](https://academy.pentaho.com/pentaho-data-integration/data-integration/enterprise-solution/jobs/parallel)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}
