View All Docs
Product overview
Account overview
Integrations
Transforms
Security
Hide Navigation
Product overview
Account overview
Integrations
Transforms
Security

Pull from PostgreSQL

The Pull from PostgreSQL step connects to and pulls from a PostgreSQL database. PostgreSQL is an open-source object-relational database management system.

Connect your PostgreSQL database

Double-click on the Pull from PostgreSQL step and click Authorize. These are the following fields required to connect:

  • Hostname
  • Username
  • Password
  • Database
  • Port (Optional)

If no port is specified during authorization, this step will default to port 5439.

You can leave fields blank (like password) if they are not needed for the database to authorize connection.

Custom settings

Once you are successfully connected to your PostgreSQL server, you'll first see a dropdown option to select a table from your server. By default, Parabola pulls the whole table using the query:

select *

If you'd like to be able to pull in more specific, relevant data by writing your own SQL statement, you can do so by clicking into "Advanced Settings" and input your query into the Query (optional) field.

Related Recipes

Send to PostgreSQL

The Send to PostgreSQL step can insert and update rows in a remote PostgreSQL server. PostgreSQL is an open source relational database management system.

Connect your PostgreSQL server

Double-click on the Pull from PostgreSQL step and click Authorize. These are the following fields required to connect:

  • Hostname
  • Username
  • Password
  • Database
  • Port (Optional)

You should be able to find these fields by viewing your PostgreSQL profile.

If no port is specified during authorization, this step will default to port 5432.

You can leave fields blank (like "Password") if they are not needed for the database to authorize connection.

Custom settings

Once you are successfully connected to your server, you'll first see a dropdown option to select the table you'd like to send data to.

Maximum Connections

By default, this field is set to 20, which should be safe for most databases. This setting controls how many connections Parabola generates to your database in order to write your changes faster. The number of rows you are trying to export will be divided across the connections pool, allowing for concurrent and fast updates.

Be aware, every database has its own maximum number of connections that it will accept. It is not advisable to set the Maximum Connections field in Parabola to the same number of connections that your database max is set at. If you do that, you will be using every connection when the flow runs, and nothing else will be able to connect to your database. 50% - 60% of the total available connections is as high as you should go. Talk to the whoever runs, manages, or set up your database to find out how many connections it can handle.

If you set this field to less than 1 or more than the total number allowed by your database, the step will error.

Operations

Next, you'll select an Operation. The available Operation options are:

  • Insert: Inserts new rows in the database
  • Upsert: Updates rows if possible, and inserts new rows if not
  • Update: Only updates rows

Insert

The Insert option will insert new rows in the database. Once you select the "Insert" operation, you'll be asked to map your columns in Parabola to columns from your selected PostgreSQL table. You can leave some column mappings blank. If you're using the Insert operation, make sure that it's okay that Parabola create these new rows in your table. For example, you may want to check for possible duplicates.

Upsert

The Upsert option will updates rows if possible, and inserts new rows if not. The Upsert operation requires you to specify the primary key of the database table ("Unique Identifier Column in Database"), or the column that contains unique values in Parabola ("Unique Identifier Column in Results"). Mapping these columns is important so Parabola can use to figure out which rows to update versus insert new rows. A primary key / unique identifier must be configured on the database table in order for this dropdown to show any options.

Then, you need to map your columns in Parabola to columns from your selected PostgreSQL table.

Update

The Update option will only update rows. It will not insert any new rows. The Update operation requires you to specify the primary key of the database table ("Unique Identifier Column in Database"), or the column that contains unique values in Parabola ("Unique Identifier Column in Results"). Mapping these columns is important so Parabola can use to figure out which rows to update. A primary key / unique identifier must be configured on the database table in order for this dropdown to show any options.

Then, you need to map your columns in Parabola to columns from your selected PostgreSQL table.

How this step deals with errors

The Send to PostgreSQL step handles errors in a different way than other steps. When the flow runs, the step attempts to export each row, starting at the top of the table and processing down until every row has been attempted. Most exports in Parabola will halt all execution if a row fails, but this export will not halt. In the event that a row fails to export, this step will log the error, but will skip past the row and continue to attempt all rows. When the step finishes attempting every row, it will either be in a normal (successful) state if every row succeeded, or it will be in a error (failure) state if at least 1 row was skipped due to errors.

Helpful tips

  • The Send to PostgreSQL step can only send strings. All values will be sent as a string. If you encounter an error when running the Send to PostgreSQL step, please double-check that the field in PostgreSQL is set to accept string values.
  • Null (blank) values will create empty strings - meaning this step will not be able to send null values to your PostgreSQL database
  • The names of your columns in Parabola must match the names of the fields in your database. Use a Rename columns step to accomplish this before sending.
  • We recommend having all of your columns mapped. Any unmapped columns may cause issues during your export. If you need to remove any unmapped columns, you can utilize the Select Columns step.

Related Recipes