Connectors
PostgreSQL CDC source
Capture changes from selected PostgreSQL tables into SQIP
Use the PostgreSQL CDC source to continuously capture inserts, updates, and deletes from an approved list of PostgreSQL tables.
Before you begin
Ask your database administrator for:
- The PostgreSQL hostname, port, and database name.
- A username and password with access to the selected tables and change stream.
- The table names in
schema.tableformat. - The required TLS mode.
- Confirmation that change data capture is enabled for the database.
Warning
Creating this connector usually requires help from a database administrator. SQIP validates the connection but cannot enable change data capture on the database for you.
Install the connector
Select the connector
In Connectors, find PostgreSQL CDC Source and select Select and install.
Choose the output
Enter an installation name, select the tenant, cluster, and namespace, and choose the output topic for captured changes.
Configure PostgreSQL
Enter the database and table details from the table below.
Add credentials
Enter or select the PostgreSQL username and password in SQIP's credential section.
Install and verify
Select Install connector and wait for Running. Insert or update a test row in an included table and confirm that a change record appears in SQIP.
Configuration fields
| Field | What to enter | Example | Required |
|---|---|---|---|
| Hostname | The PostgreSQL server hostname | postgres.example.com | Yes |
| Port | The PostgreSQL server port | 5432 | No |
| Database | The database containing the selected tables | orders | Yes |
| TLS Mode | verify-full, verify-ca, or require | verify-full | No |
| Table Include List | One or more exact table names in schema.table format | sales.orders, sales.order_items | Yes |
| Topic Prefix | A short, unique prefix used to identify this database's change records | orders-db | Yes |
| Slot Name | A unique lowercase name supplied by your database administrator; leave blank to let SQIP choose one | Leave blank | No |
| Publication Name | A unique lowercase name supplied by your database administrator; leave blank to let SQIP choose one | Leave blank | No |
| Snapshot Mode | How SQIP handles rows already in the tables | initial | No |
| Parallelism | Number of connector instances | 1 | Yes; fixed at 1 |
Enter the database Username and Password under One-time credentials. If your administrator supplied a prepared secret name, expand Use an existing secret reference instead and enter that name. Do not use both approaches.
TLS modes
| TLS Mode | Meaning | Recommendation |
|---|---|---|
verify-full | Encrypts the connection and verifies the certificate and hostname | Recommended |
verify-ca | Encrypts the connection and verifies the certificate authority | Use only when required by your database setup |
require | Encrypts the connection without full identity verification | Use only when approved by your administrator |
Snapshot modes
| Snapshot Mode | What happens |
|---|---|
initial | Imports current rows once, then continues capturing new changes |
initial_only | Imports current rows once and then stops capturing new changes |
never | Captures only new changes and does not import existing rows |
Tip
Use initial for most new connectors. Choose never only when existing rows have already been loaded another way.
Complete example
| Field | Input |
|---|---|
| Hostname | postgres.example.com |
| Port | 5432 |
| Database | orders |
| TLS Mode | verify-full |
| Table Include List | sales.orders, sales.order_items |
| Topic Prefix | orders-db |
| Slot Name | Leave empty |
| Publication Name | Leave empty |
| Snapshot Mode | initial |
| One-time username and password | Enter the database credential, or use an existing secret reference |
If installation fails
- Confirm that each table uses the exact
schema.tableformat, such assales.orders. - Confirm that the username can read every selected table.
- Ask the database administrator to confirm that change data capture is enabled and the account has the required permissions.
- Leave Slot Name and Publication Name blank unless the database administrator supplied specific values.
- If the database is private, ask your SQIP administrator to approve access.