# Pushdown Mode

The *Pushdown* *Mode* or ELT (Extract, Load, and Transform) mode in Astera lets users execute pipelines in pushdown on the database level when the source and target database reside on the same server.

This eliminates unnecessary movement of data into the Integration Server, reduces network latency by delivering agile results, and improves the overall performance as compared to the normal job execution mode of ETL (Extract, Transform, and Load).

In this article, we will be looking at how you can activate and use the Pushdown Mode option in Astera.

For further information on how the *Pushdown Mode* works, [click here](https://www.astera.com/type/blog/pushdown-optimization-mode-in-centerprise-2/).

## **Starting a Job in Pushdown Mode**

To start a job in Pushdown Mode, click the *Start Job in Pushdown Mode* icon on the main *Toolbar*.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FHIz2Segd9bYOVREbdAp0%2F0.png?alt=media)

## **Use Case**

We have two database tables, one containing details for *Customers*, and the other containing information on the *Orders* placed by the customers. Both the tables have a million records each.

The dataflow proceeds as follows:

* Extracts customer data and the information on orders they have placed using [*Database Table Source*](https://documentation.astera.com/astera-data-stack-v9/dataflows/sources/database-table-source) objects.
* It then combines them using a [*Join* *Transformation*](https://documentation.astera.com/astera-data-stack-v9/dataflows/transformations/join-transformation).
* Further, the data is then filtered by the *Company Name* field such that orders that are being delivered only by Company-6 and Company–11 are processed using the [*Filter* *Transformation*](https://documentation.astera.com/astera-data-stack-v9/dataflows/transformations/filter-transformation).
* The dataflow then assigns the port cities to each order using the [*ListLookUp* *Transformation*](https://documentation.astera.com/astera-data-stack-v9/dataflows/transformations/list-lookup-transformation).
* Lastly, the processed records are written to a database table using the [*Database Table Destination*](https://documentation.astera.com/astera-data-stack-v9/dataflows/destinations/database-table-destination) object.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FceIlxHYs5TaCbCZg8CZH%2F1.png?alt=media)

As the source files are quite large, running the job in normal ETL can take substantially more time. In this use case, we will try both the normal Job Run *Start Dataflow* and the *Run Job in Pushdown mode* options.

## **Running Job in Normal ETL Mode**

1. After setting up the dataflow, verify the dataflow and then run it.
2. To verify a dataflow, click the *Start verification* icon on the main toolbar. Verification results will be displayed in the *Verify* Window.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FXUyhkncAgM5FPhEjfvY1%2F2.png?alt=media)

3. To run the dataflow, click the *Start Dataflow* icon on the main toolbar next to the *Start Verification* icon.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FBtIyKT5GEsf6IPB5vw1D%2F3.png?alt=media)

4. Once the job is executed, you can see the progress of the job in the *Job Progress* window:

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FJvQ89OPxFSYmuMTPvVoq%2F4.png?alt=media)

The job was completed successfully, and we can see that it took a minute and thirty-seven seconds.

## **Running Job in Pushdown Mode**

Now we will run the same dataflow in Pushdown Mode and see the difference.

1. First, verify the job for Pushdown. Click on the *Verify Pushdown Job* icon on the main toolbar.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FWnVsdzZoAsjXEQHHi6Hj%2F5.png?alt=media)

2. To run the job in *Pushdown Mode*, click the *Start Job in Pushdown Mode* icon on the main *Toolbar*.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FmGFzsqy5lNFoo5VwEUC1%2F6.png?alt=media)

3. Once executed, you can see the progress of the job in the *Job Progress* window.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2Ff0bS7Z4zxSSTrs4NfUZ6%2F7.png?alt=media)

The job was completed and we can see it took only about one and a half seconds to complete the job, which is substantially less compared to the job run without the pushdown mode.

## **Viewing the SQL Queries**

When a job is run in the *Pushdown Mode*, the SQL queries generated for the job can be viewed in the *Job Progress* bar.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2F9rxxTL5Q4XmQ7EMptca1%2F8.png?alt=media)

Click on the *S* in the *Job Progress* window to view the query applicable to a particular step in the process.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FKEuWPvIEU33HUjAGfqFN%2F9.png?alt=media)

A window with the query will appear.

![](https://3891069449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F28dJIkGHacXhBlux3efx%2Fuploads%2FZG0QUuWOzZmCouhvCcCA%2F10.png?alt=media)

In the query, you can see (highlighted) the commands for the transformations specified in the dataflow.

The Pushdown Mode allows for efficient processing which becomes more useful with large databases and complex dataflows.

This concludes our discussion on how to run a job in Pushdown Mode.
