PostgreSQL setup guide

Follow these steps to use PostgreSQL as your source.

Prerequisite - Configure PostgreSQL for CDC

Upsolver supports ingesting CDC data from relational databases including PostgreSQL. Upsolver provides CDC capabilities by running a Debezium Engine under the hood. Connectors detect and ingest changes automatically.

Prerequisite: Follow the linked guide to prepare PostgreSQL for CDC.

Step 1 - Connect to PostgreSQL

Select an existing PostgreSQL connection, or create a new one.

Create a new PostgreSQL connection

Connection String

Enter your connection string in the following format:

jdbc:postgresql://HOST:PORT/DB_NAME 

where:

  • HOST - hostname (e.g. database instance endpoint in AWS RDS)

  • PORT - port number

  • DB_NAME - database name

Username and Password

Provide the username and password to authenticate to the database.

Publication Name

Upsolver requires the publication of replicated tables in order to subscribe to change events. Select the publication created as part of the PostgreSQL prerequisite setup.

Heartbeat Table

Upsolver uses a Heartbeat table to protect your database server from high disk usage. Although this is an optional setting, it is best practice to include a Heartbeat table, especially when the source database does not contain at least one frequently changing table. To learn more, and get the commands to create the Heartbeat table, see the PostgreSQL prerequisite setup.

Step 2 - Select schemas, tables, and columns to ingest

There are two ways to replicate objects to the target:

  1. Manually select the schemas, tables, and columns.

  2. Use regular expressions to specify which tables are included and which columns are excluded.

The following examples show how to use a regular expression to include specific tables:

ExpressionResults

db_name.*

Select all tables in the db_name database

db_name.users, db_name.items

Select users and items tables in the db_name database

db1.items_.*

Select all tables in the db1 database that start with items_

By default, Upsolver ingests all columns in the tables that match the regular expression. Below are examples of regular expressions to exclude columns from included tables:

ExpressionResults

db.users.address_.*

Select all columns starting with address_ in the users table in the db database.

db.*.(.*_pii)

Select all columns ending in _pii across all tables in the db database.

Schema evolution

By default, new schemas, tables, and columns added after the job is launched, will be replicated to the target.

You can overwrite the default behavior and set specific behavior for newly created schemas, tables in a specific schema, or columns in a specific table.

Last updated