Skip to main content

Postgres

This page contains the setup guide and reference information for the Postgres source connector for CDC and non-CDC workflows.

When to use Postgres with CDC

Configure Postgres with CDC if:

  • You need a record of deletions
  • Your table has a primary key but doesn't have a reasonable cursor field for incremental syncing (updated_at). CDC allows you to sync your table incrementally

If your goal is to maintain a snapshot of your table in the destination but the limitations prevent you from using CDC, consider using non-CDC incremental sync and occasionally reset the data and re-sync.

If your dataset is small and you just want a snapshot of your table in the destination, consider using Full Refresh replication for your table instead of CDC.

Prerequisites

  • For Airbyte Open Source users, upgrade your Airbyte platform to version v0.40.0-alpha or newer
  • Use Postgres v9.3.x or above for non-CDC workflows and Postgres v10 or above for CDC workflows
  • For Airbyte Cloud (and optionally for Airbyte Open Source), ensure SSL is enabled in your environment

Setup guide

Step 1: (Optional) Create a dedicated read-only user

We recommend creating a dedicated read-only user for better permission control and auditing. Alternatively, you can use an existing Postgres user in your database.

To create a dedicated user, run the following command:

CREATE USER <user_name> PASSWORD 'your_password_here';

Grant access to the relevant schema:

GRANT USAGE ON SCHEMA <schema_name> TO <user_name>
note

To replicate data from multiple Postgres schemas, re-run the command to grant access to all the relevant schemas. Note that you'll need to set up multiple Airbyte sources connecting to the same Postgres database on multiple schemas.

Grant the user read-only access to the relevant tables:

GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <user_name>;

Allow user to see tables created in the future:

ALTER DEFAULT PRIVILEGES IN SCHEMA <schema_name> GRANT SELECT ON TABLES TO <user_name>;

Additionally, if you plan to configure CDC for the Postgres source connector, grant REPLICATION permissions to the user:

ALTER USER <user_name> REPLICATION;

Syncing a subset of columns​

Currently, there is no way to sync a subset of columns using the Postgres source connector:

  • When setting up a connection, you can only choose which tables to sync, but not columns.
  • If the user can only access a subset of columns, the connection check will pass. However, the data sync will fail with a permission denied exception.

The workaround for partial table syncing is to create a view on the specific columns, and grant the user read access to that view:

CREATE VIEW <view_name> as SELECT <columns> FROM <table>;
GRANT SELECT ON TABLE <view_name> IN SCHEMA <schema_name> to <user_name>;

Note: The workaround works only for non-CDC setups since CDC requires data to be in tables and not views. This issue is tracked in #9771.

Step 2: Set up the Postgres connector in Airbyte

  1. Log into your Airbyte Cloud or Airbyte Open Source account.

  2. Click Sources and then click + New source.

  3. On the Set up the source page, select Postgres from the Source type dropdown.

  4. Enter a name for your source.

  5. For the Host, Port, and DB Name, enter the hostname, port number, and name for your Postgres database.

  6. List the Schemas you want to sync.

    note

    The schema names are case sensitive. The 'public' schema is set by default. Multiple schemas may be used at one time. No schemas set explicitly - will sync all of existing.

  7. For User and Password, enter the username and password you created in Step 1.

  8. To customize the JDBC connection beyond common options, specify additional supported JDBC URL parameters as key-value pairs separated by the symbol & in the JDBC URL Parameters (Advanced) field.

    Example: key1=value1&key2=value2&key3=value3

    These parameters will be added at the end of the JDBC URL that the AirByte will use to connect to your Postgres database.

    The connector now supports connectTimeout and defaults to 60 seconds. Setting connectTimeout to 0 seconds will set the timeout to the longest time available.

    Note: Do not use the following keys in JDBC URL Params field as they will be overwritten by Airbyte: currentSchema, user, password, ssl, and sslmode.

    danger

    This is an advanced configuration option. Users are advised to use it with caution.

  9. For Airbyte Open Source, toggle the switch to connect using SSL. For Airbyte Cloud uses SSL by default.

  10. For SSL Modes, select:

    • disable to disable encrypted communication between Airbyte and the source
    • allow to enable encrypted communication only when required by the source
    • prefer to allow unencrypted communication only when the source doesn't support encryption
    • require to always require encryption. Note: The connection will fail if the source doesn't support encryption.
    • verify-ca to always require encryption and verify that the source has a valid SSL certificate
    • verify-full to always require encryption and verify the identity of the source
  11. For Replication Method, select Standard or Logical CDC from the dropdown. Refer to Configuring Postgres connector with Change Data Capture (CDC) for more information.

  12. For SSH Tunnel Method, select:

    • No Tunnel for a direct connection to the database
    • SSH Key Authentication to use an RSA Private as your secret for establishing the SSH tunnel
    • Password Authentication to use a password as your secret for establishing the SSH tunnel
    danger

    Since Airbyte Cloud requires encrypted communication, select SSH Key Authentication or Password Authentication if you selected disable, allow, or prefer as the SSL Mode; otherwise, the connection will fail.

Refer to Connect via SSH Tunnel for more information. 13. Click Set up source.

Connect via SSH Tunnel​

You can connect to a Postgres instance via an SSH tunnel.

When using an SSH tunnel, you are configuring Airbyte to connect to an intermediate server (also called a bastion or a jump server) that has direct access to the database. Airbyte connects to the bastion and then asks the bastion to connect directly to the server.

To connect to a Postgres instance via an SSH tunnel:

  1. While setting up the Postgres source connector, from the SSH tunnel dropdown, select:
    • SSH Key Authentication to use a private as your secret for establishing the SSH tunnel
    • Password Authentication to use a password as your secret for establishing the SSH Tunnel
  2. For SSH Tunnel Jump Server Host, enter the hostname or IP address for the intermediate (bastion) server that Airbyte will connect to.
  3. For SSH Connection Port, enter the port on the bastion server. The default port for SSH connections is 22.
  4. For SSH Login Username, enter the username to use when connecting to the bastion server. Note: This is the operating system username and not the Postgres username.
  5. For authentication:
    • If you selected SSH Key Authentication, set the SSH Private Key to the private Key that you are using to create the SSH connection.
    • If you selected Password Authentication, enter the password for the operating system user to connect to the bastion server. Note: This is the operating system password and not the Postgres password.

Generating a private Key​

The connector supports any SSH compatible key format such as RSA or Ed25519. To generate an RSA key, for example, run:

ssh-keygen -t rsa -m PEM -f myuser_rsa

The command produces the private key in PEM format and the public key remains in the standard format used by the authorized_keys file on your bastion server. Add the public key to your bastion host to the user you want to use with Airbyte. The private key is provided via copy-and-paste to the Airbyte connector configuration screen to allow it to log into the bastion server.

Configuring Postgres connector with Change Data Capture (CDC)

Airbyte uses logical replication of the Postgres write-ahead log (WAL) to incrementally capture deletes using a replication plugin. To learn more how Airbyte implements CDC, refer to Change Data Capture (CDC)

CDC Considerations

  • Incremental sync is only supported for tables with primary keys. For tables without primary keys, use Full Refresh sync.
  • Data must be in tables and not views. If you require data synchronization from a view, you would need to create a new connection with Standard as Replication Method.
  • The modifications you want to capture must be made using DELETE/INSERT/UPDATE. For example, changes made using TRUNCATE/ALTER will not appear in logs and therefore in your destination.
  • Schema changes are not supported automatically for CDC sources. Reset and resync data if you make a schema change.
  • The records produced by DELETE statements only contain primary keys. All other data fields are unset.
  • Log-based replication only works for master instances of Postgres. CDC cannot be run from a read-replica of your primary database.
  • An Airbyte database source using CDC replication can only be used with a single Airbyte destination. This is due to how Postgres CDC is implemented - each destination would recieve only part of the data available in the replication slot.
  • Using logical replication increases disk space used on the database server. The additional data is stored until it is consumed.
    • Set frequent syncs for CDC to ensure that the data doesn't fill up your disk space.
    • If you stop syncing a CDC-configured Postgres instance with Airbyte, delete the replication slot. Otherwise, it may fill up your disk space.
Connector configuration are supported only on primary/master db host/servers. Do not point connector configuration to replica db hosts, it will not work.. :::

Setting up CDC for Postgres​

Airbyte requires a replication slot configured only for its use. Only one source should be configured that uses this replication slot. See Setting up CDC for Postgres for instructions.

Step 1: Enable logical replication​

To enable logical replication on bare metal, VMs (EC2/GCE/etc), or Docker, configure the following parameters in the postgresql.conf file for your Postgres database:

ParameterDescriptionSet value to
wal_levelType of coding used within the Postgres write-ahead loglogical
max_wal_sendersThe maximum number of processes used for handling WAL changesMin: 1
max_replication_slotsThe maximum number of replication slots that are allowed to stream WAL changes1 (if Airbyte is the only service reading subscribing to WAL changes. More than 1 if other services are also reading from the WAL)

To enable logical replication on AWS Postgres RDS or Aurora​:

  1. Go to the Configuration tab for your DB cluster.
  2. Find your cluster parameter group. Either edit the parameters for this group or create a copy of this parameter group to edit. If you create a copy, change your cluster's parameter group before restarting.
  3. Within the parameter group page, search for rds.logical_replication. Select this row and click Edit parameters. Set this value to 1.
  4. Wait for a maintenance window to automatically restart the instance or restart it manually.

To enable logical replication on Azure Database for Postgres​:

Change the replication mode of your Postgres DB on Azure to logical using the Replication menu of your PostgreSQL instance in the Azure Portal. Alternatively, use the Azure CLI to run the following command:

az postgres server configuration set --resource-group group --server-name server --name azure.replication_support --value logical
az postgres server restart --resource-group group --name server

Step 2: Create replication slot​

Airbyte currently supports pgoutput plugin only. To create a replication slot called airbyte_slot using pgoutput, run:

SELECT pg_create_logical_replication_slot('airbyte_slot', 'pgoutput');

Step 3: Create publications and replication identities for tables​

For each table you want to replicate with CDC, add the replication identity (the method of distinguishing between rows) first:

To use primary keys to distinguish between rows for tables that don't have a large amount of data per row, run:

ALTER TABLE tbl1 REPLICA IDENTITY DEFAULT;

In case your tables use data types that support TOAST and have very large field values, use:

ALTER TABLE tbl1 REPLICA IDENTITY FULL;

After setting the replication identity, run:

CREATE PUBLICATION airbyte_publication FOR TABLE <tbl1, tbl2, tbl3>;`

The publication name is customizable. Refer to the Postgres docs if you need to add or remove tables from your publication in the future.

You must add the replication identity before creating the publication. Otherwise, ALTER/UPDATE/DELETE statements may fail if Postgres cannot determine how to uniquely identify rows. Also, the publication should include all the tables and only the tables that need to be synced. Otherwise, data from these tables may not be replicated correctly. :::

danger

The Airbyte UI currently allows selecting any tables for CDC. If a table is selected that is not part of the publication, it will not be replicated even though it is selected. If a table is part of the publication but does not have a replication identity, that replication identity will be created automatically on the first run if the Airbyte user has the necessary permissions.

Step 4: [Optional] Set up initial waiting time

danger

This is an advanced feature. Use it if absolutely necessary.

The Postgres connector may need some time to start processing the data in the CDC mode in the following scenarios:

  • When the connection is set up for the first time and a snapshot is needed
  • When the connector has a lot of change logs to process

The connector waits for the default initial wait time of 5 minutes (300 seconds). Setting the parameter to a longer duration will result in slower syncs, while setting it to a shorter duration may cause the connector to not have enough time to create the initial snapshot or read through the change logs. The valid range is 120 seconds to 1200 seconds.

If you know there are database changes to be synced, but the connector cannot read those changes, the root cause may be insufficient waiting time. In that case, you can increase the waiting time (example: set to 600 seconds) to test if it is indeed the root cause. On the other hand, if you know there are no database changes, you can decrease the wait time to speed up the zero record syncs.

Step 5: Set up the Postgres source connector

In Step 2 of the connector setup guide, enter the replication slot and publication you just created.

Xmin replication mode

Xmin replication is a new cursor-less replication method for Postgres. Cursorless syncs enable syncing new or updated rows without explicitly choosing a cursor field. The xmin system column which is available in all Postgres databases is used to track inserts and updates to your source data.

This is a good solution if:

  • There is not a well-defined cursor candidate to use for Standard incremental mode.
  • You want to replace a previously configured full-refresh sync.
  • You are replicating Postgres tables less than 500GB.

Supported sync modes

The Postgres source connector supports the following sync modes:

Supported cursors

  • TIMESTAMP
  • TIMESTAMP_WITH_TIMEZONE
  • TIME
  • TIME_WITH_TIMEZONE
  • DATE
  • BIT
  • BOOLEAN
  • TINYINT/SMALLINT
  • INTEGER
  • BIGINT
  • FLOAT/DOUBLE
  • REAL
  • NUMERIC/DECIMAL
  • CHAR/NCHAR/NVARCHAR/VARCHAR/LONGVARCHAR
  • BINARY/BLOB

Data type mapping

According to Postgres documentation, Postgres data types are mapped to the following data types when synchronizing data. You can check the test values examples here. If you can't find the data type you are looking for or have any problems feel free to add a new test!

Postgres TypeResulting TypeNotes
bigintnumber
bigserial, serial8number
bitstringFixed-length bit string (e.g. "0100").
bit varying, varbitstringVariable-length bit string (e.g. "0100").
boolean, boolboolean
boxstring
byteastringVariable length binary string with hex output format prefixed with "\x" (e.g. "\x6b707a").
character, charstring
character varying, varcharstring
cidrstring
circlestring
datestringParsed as ISO8601 date time at midnight. CDC mode doesn't support era indicators. Issue: #14590
double precision, float, float8numberInfinity, -Infinity, and NaN are not supported and converted to null. Issue: #8902.
hstorestring
inetstring
integer, int, int4number
intervalstring
jsonstring
jsonbstring
linestring
lsegstring
macaddrstring
macaddr8string
moneynumber
numeric, decimalnumberInfinity, -Infinity, and NaN are not supported and converted to null. Issue: #8902.
pathstring
pg_lsnstring
pointstring
polygonstring
real, float4number
smallint, int2number
smallserial, serial2number
serial, serial4number
textstring
timestringParsed as a time string without a time-zone in the ISO-8601 calendar system.
timetzstringParsed as a time string with time-zone in the ISO-8601 calendar system.
timestampstringParsed as a date-time string without a time-zone in the ISO-8601 calendar system.
timestamptzstringParsed as a date-time string with time-zone in the ISO-8601 calendar system.
tsquerystring
tsvectorstring
uuidstring
xmlstring
enumstring
tsrangestring
arrayarrayE.g. "[\"10001\",\"10002\",\"10003\",\"10004\"]".
composite typestring

Limitations

  • The Postgres source connector currently does not handle schemas larger than 4MB.
  • The Postgres source connector does not alter the schema present in your database. Depending on the destination connected to this source, however, the schema may be altered. See the destination's documentation for more details.
  • The following two schema evolution actions are currently supported:
    • Adding/removing tables without resetting the entire connection at the destination Caveat: In the CDC mode, adding a new table to a connection may become a temporary bottleneck. When a new table is added, the next sync job takes a full snapshot of the new table before it proceeds to handle any changes.
    • Resetting a single table within the connection without resetting the rest of the destination tables in that connection
  • Changing a column data type or removing a column might break connections.

Troubleshooting

Sync data from Postgres hot standby server

When the connector is reading from a Postgres replica that is configured as a Hot Standby, any update from the primary server will terminate queries on the replica after a certain amount of time, default to 30 seconds. This default waiting time is not enough to sync any meaning amount of data. See the Handling Query Conflicts section in the Postgres documentation for detailed explanation.

Here is the typical exception:

Caused by: org.postgresql.util.PSQLException: FATAL: terminating connection due to conflict with recovery
Detail: User query might have needed to see row versions that must be removed.
Hint: In a moment you should be able to reconnect to the database and repeat your command.

Possible solutions include:

  • [Recommended] Set hot_standby_feedback to true on the replica server. This parameter will prevent the primary server from deleting the write-ahead logs when the replica is busy serving user queries. However, the downside is that the write-ahead log will increase in size.
  • [Recommended] Sync data when there is no update running in the primary server, or sync data from the primary server.
  • [Not Recommended] Increase max_standby_archive_delay and max_standby_streaming_delay to be larger than the amount of time needed to complete the data sync. However, it is usually hard to tell how much time it will take to sync all the data. This approach is not very practical.

Under CDC incremental mode, there are still full refresh syncs

Normally under the CDC mode, the Postgres source will first run a full refresh sync to read the snapshot of all the existing data, and all subsequent runs will only be incremental syncs reading from the write-ahead logs (WAL). However, occasionally, you may see full refresh syncs after the initial run. When this happens, you will see the following log:

Saved offset is before Replication slot's confirmed_flush_lsn, Airbyte will trigger sync from scratch

The root causes is that the WALs needed for the incremental sync has been removed by Postgres. This can occur under the following scenarios:

  • When there are lots of database updates resulting in more WAL files than allowed in the pg_wal directory, Postgres will purge or archive the WAL files. This scenario is preventable. Possible solutions include:
    • Sync the data source more frequently. The downside is that more computation resources will be consumed, leading to a higher Airbyte bill.
    • Set a higher wal_keep_size. If no unit is provided, it is in megabytes, and the default is 0. See detailed documentation here. The downside of this approach is that more disk space will be needed.
  • When the Postgres connector successfully reads the WAL and acknowledges it to Postgres, but the destination connector fails to consume the data, the Postgres connector will try to read the same WAL again, which may have been removed by Postgres, since the WAL record is already acknowledged. This scenario is rare, because it can happen, and currently there is no way to prevent it. The correct behavior is to perform a full refresh.

Temporary File Size Limit

Some larger tables may encounter an error related to the temporary file size limit such as temporary file size exceeds temp_file_limit. To correct this error increase the temp_file_limit.

Changelog

VersionDatePull RequestSubject
3.0.22023-07-1828336Add full-refresh mode back to Xmin syncs.
3.0.12023-07-1428345Increment patch to trigger a rebuild
3.0.02023-07-1227442Set _ab_cdc_lsn as the source defined cursor for CDC mode to prepare for Destination v2 normalization
2.1.12023-07-0626723Add new xmin replication method.
2.1.02023-06-2627737License Update: Elv2
2.0.342023-06-2027212Fix silent exception swallowing in StreamingJdbcDatabase
2.0.332023-06-0126873Add prepareThreshold=0 to JDBC url to mitigate PGBouncer prepared statement [X] already exists.
2.0.322023-05-3126810Remove incremental sync estimate from Postgres to increase performance.
2.0.312023-05-2526633Collect and log information related to full vacuum operation in db
2.0.302023-05-2526473CDC : Limit queue size
2.0.292023-05-1825898Translate Numeric values without decimal, e.g: NUMERIC(38,0), as BigInt instead of Double
2.0.282023-04-2725401CDC : Upgrade Debezium to version 2.2.0
2.0.272023-04-2624971Emit stream status updates
2.0.262023-04-2625560Revert some logging changes
2.0.252023-04-2425459Better logging formatting
2.0.242023-04-1925345Logging : Log database indexes per stream
2.0.232023-04-1924582CDC : Enable frequent state emission during incremental syncs + refactor for performance improvement
2.0.222023-04-1725220Logging changes : Log additional metadata & clean up noisy logs
2.0.212023-04-1225131Make Client Certificate and Client Key always show
2.0.202023-04-1124859Removed SSL toggle and rely on SSL mode dropdown to enable/disable SSL
2.0.192023-04-1124656CDC minor refactor
2.0.182023-04-0624820Fix data loss bug during an initial failed non-CDC incremental sync
2.0.172023-04-0524622Allow streams not in CDC publication to be synced in Full-refresh mode
2.0.162023-04-0524895Fix spec for cloud
2.0.152023-04-0424833Fix Debezium retry policy configuration
2.0.142023-04-0324609Disallow the "disable" SSL Modes
2.0.132023-03-2824166Fix InterruptedException bug during Debezium shutdown
2.0.122023-03-2724529Add CDC checkpoint state messages
2.0.112023-03-2324446Set default SSL Mode to require in strict-encrypt
2.0.102023-03-2324417Add field groups and titles to improve display of connector setup form
2.0.92023-03-2220760Removed redundant date-time datatypes formatting
2.0.82023-03-2224255Add field groups and titles to improve display of connector setup form
2.0.72023-03-2124207Fix incorrect schema change warning in CDC mode
2.0.62023-03-2124271Fix NPE in CDC mode
2.0.52023-03-2121533Add integration with datadog
2.0.42023-03-2124147Fix error with CDC checkpointing
2.0.32023-03-1424000Removed check method call on read.
2.0.22023-03-1323112Add state checkpointing for CDC sync.
2.0.02023-03-0623112Upgrade Debezium version to 2.1.2
1.0.512023-03-0223642Revert : Support JSONB datatype for Standard sync mode
1.0.502023-02-2721695Support JSONB datatype for Standard sync mode
1.0.492023-02-2423383Fixed bug with non readable double-quoted values within a database name or column name
1.0.482023-02-2322623Increase max fetch size of JDBC streaming mode
1.0.472023-02-2222221Fix previous versions which doesn't verify privileges correctly, preventing CDC syncs to run.
1.0.462023-02-2123105Include log levels and location information (class, method and line number) with source connector logs published to Airbyte Platform.
1.0.452023-02-0922221Ensures that user has required privileges for CDC syncs.
2023-02-1523028
1.0.442023-02-0622221Exclude new set of system tables when using pg_stat_statements extension.
1.0.432023-02-0621634Improve Standard sync performance by caching objects.
1.0.422023-01-2321523Check for null in cursor values before replacing.
1.0.412023-01-2520939Adjust batch selection memory limits databases.
1.0.402023-01-2421825Put back the original change that will cause an incremental sync to error if table contains a NULL value in cursor column.
1.0.392023-01-2021683Speed up esmtimates for trace messages in non-CDC mode.
1.0.382023-01-1720436Consolidate date/time values mapping for JDBC sources
1.0.372023-01-1720783Emit estimate trace messages for non-CDC mode.
1.0.362023-01-1121003Handle null values for array data types in CDC mode gracefully.
1.0.352023-01-0420469Introduce feature to make LSN commit behaviour configurable.
1.0.342022-12-1320378Improve descriptions
1.0.332022-12-1218959CDC : Don't timeout if snapshot is not complete.
1.0.322022-12-1220192Only throw a warning if cursor column contains null values.
1.0.312022-12-0219889Check before each sync and stop if an incremental sync cursor column contains a null value.
2022-12-0219985Reenable incorrectly-disabled wal2json CDC plugin
1.0.302022-11-2919024Skip tables from schema where user do not have Usage permission during discovery.
1.0.292022-11-2919623Mark PSQLException related to using replica that is configured as a hot standby server as config error.
1.0.282022-11-2819514Adjust batch selection memory limits databases.
1.0.272022-11-2816990Handle arrays data types
1.0.262022-11-1819551Fixes bug with ssl modes
1.0.252022-11-1619004Use Debezium heartbeats to improve CDC replication of large databases.
1.0.242022-11-0719291Default timeout is reduced from 1 min to 10sec
1.0.232022-11-0719025Stop enforce SSL if ssl mode is disabled
1.0.222022-10-3118538Encode database name
1.0.212022-10-2518256Disable allow and prefer ssl modes in CDC mode
1.0.202022-10-2518383Better SSH error handling + messages
1.0.192022-10-2118263Fixes bug introduced in 15833 and adds better error messaging for SSH tunnel in Destinations
1.0.182022-10-1918087Better error messaging for configuration errors (SSH configs, choosing an invalid cursor)
1.0.172022-10-1718041Fixes bug introduced 2022-09-12 with SshTunnel, handles iterator exception properly
1.0.162022-10-1315535Update incremental query to avoid data missing when new data is inserted at the same time as a sync starts under non-CDC incremental mode
1.0.152022-10-1117782Handle 24:00:00 value for Time column
1.0.142022-10-0317515Fix an issue preventing connection using client certificate
1.0.132022-10-0117459Upgrade debezium version to 1.9.6 from 1.9.2
1.0.122022-09-2717299Improve error handling for strict-encrypt postgres source
1.0.112022-09-2617131Allow nullable columns to be used as cursor
1.0.102022-09-1415668Wrap logs in AirbyteLogMessage
1.0.92022-09-1316657Improve CDC record queueing performance
1.0.82022-09-0816202Adds error messaging factory to UI
1.0.72022-08-3016114Prevent traffic going on an unsecured channel in strict-encryption version of source postgres
1.0.62022-08-3016138Remove unnecessary logging
1.0.52022-08-2515993Add support for connection over SSL in CDC mode
1.0.42022-08-2315877Fix temporal data type bug which was causing failure in CDC mode
1.0.32022-08-1814356DB Sources: only show a table can sync incrementally if at least one column can be used as a cursor field
1.0.22022-08-1115538Allow additional properties in db stream state
1.0.12022-08-1015496Fix state emission in incremental sync
2022-08-1015481Fix data handling from WAL logs in CDC mode
1.0.02022-08-0515380Change connector label to generally_available (requires upgrading your Airbyte platform to v0.40.0-alpha)
0.4.442022-08-0515342Adjust titles and descriptions in spec.json
0.4.432022-08-0315226Make connectionTimeoutMs configurable through JDBC url parameters
0.4.422022-08-0315273Fix a bug in 0.4.36 and correctly parse the CDC initial record waiting time
0.4.412022-08-0315077Sync data from beginning if the LSN is no longer valid in CDC
2022-08-0314903Emit state messages more frequently (⛔ this version has a bug; use 1.0.1 instead
0.4.402022-08-0315187Add support for BCE dates/timestamps
2022-08-0314534Align regular and CDC integration tests and data mappers
0.4.392022-08-0214801Fix multiple log bindings
0.4.382022-07-2614362Integral columns are now discovered as int64 fields.
0.4.372022-07-2214714Clarified error message when invalid cursor column selected
0.4.362022-07-2114451Make initial CDC waiting time configurable (⛔ this version has a bug and will not work; use 0.4.42 instead)
0.4.352022-07-1414574Removed additionalProperties:false from JDBC source connectors
0.4.342022-07-1713840Added the ability to connect using different SSL modes and SSL certificates.
0.4.332022-07-1414586Validate source JDBC url parameters
0.4.322022-07-0714694Force to produce LEGACY state if the use stream capable feature flag is set to false
0.4.312022-07-0714447Under CDC mode, retrieve only those tables included in the publications
0.4.302022-06-3014251Use more simple and comprehensive query to get selectable tables
0.4.292022-06-2914265Upgrade postgresql JDBC version to 42.3.5
0.4.282022-06-2314077Use the new state management
0.4.262022-06-1713864Updated stacktrace format for any trace message errors
0.4.252022-06-1513823Publish adaptive postgres source that enforces ssl on cloud + Debezium version upgrade to 1.9.2 from 1.4.2
0.4.242022-06-1413549Fixed truncated precision if the value of microseconds or seconds is 0
0.4.232022-06-1313655Fixed handling datetime cursors when upgrading from older versions of the connector
0.4.222022-06-0913655Fixed bug with unsupported date-time datatypes during incremental sync
0.4.212022-06-0613435Adjust JDBC fetch size based on max memory and max row size
0.4.202022-06-0213367Added convertion hstore to json format
0.4.192022-05-2513166Added timezone awareness and handle BC dates
0.4.182022-05-2513083Add support for tsquey type
0.4.172022-05-1913016CDC modify schema to allow null values
0.4.162022-05-1412840Added custom JDBC parameters field
0.4.152022-05-1312834Fix the bug that the connector returns empty catalog for Azure Postgres database
0.4.142022-05-0812689Add table retrieval according to role-based SELECT privilege
0.4.132022-05-0510230Explicitly set null value for field in json
0.4.122022-04-2912480Query tables with adaptive fetch size to optimize JDBC memory consumption
0.4.112022-04-1111729Bump mina-sshd from 2.7.0 to 2.8.0
0.4.102022-04-0811798Fixed roles for fetching materialized view processing
0.4.82022-02-2110242Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats
0.4.72022-02-1810242Updated timestamp transformation with microseconds
0.4.62022-02-1410256(unpublished) Add -XX:+ExitOnOutOfMemoryError JVM option
0.4.52022-02-0810173Improved discovering tables in case if user does not have permissions to any table
0.4.42022-01-269807Update connector fields title/description
0.4.32022-01-249554Allow handling of java sql date in CDC
0.4.22022-01-139360Added schema selection
0.4.12022-01-059116Added materialized views processing
0.4.02021-12-138726Support all Postgres types
0.3.172021-12-018371Fixed incorrect handling "\n" in ssh key
0.3.162021-11-287995Fixed money type with amount > 1000
0.3.152021-11-268066Fixed the case, when Views are not listed during schema discovery
0.3.142021-11-178010Added checking of privileges before table internal discovery
0.3.132021-10-267339Support or improve support for Interval, Money, Date, various geometric data types, inventory_items, and others
0.3.122021-09-306585Improved SSH Tunnel key generation steps
0.3.112021-09-025742Add SSH Tunnel support
0.3.92021-08-175304Fix CDC OOM issue
0.3.82021-08-134699Added json config validator
0.3.42021-06-093973Add AIRBYTE_ENTRYPOINT for Kubernetes support
0.3.32021-06-083960Add method field in specification parameters
0.3.22021-05-263179Remove isCDC logging
0.3.12021-04-212878Set defined cursor for CDC
0.3.02021-04-212990Support namespaces
0.2.72021-04-162923SSL spec as optional
0.2.62021-04-162757Support SSL connection
0.2.52021-04-122859CDC bugfix
0.2.42021-04-092548Support CDC
0.2.32021-03-282600Add NCHAR and NVCHAR support to DB and cursor type casting
0.2.22021-03-262460Destination supports destination sync mode
0.2.12021-03-182488Sources support primary keys
0.2.02021-03-092238Protocol allows future/unknown properties
0.1.132021-02-021887Migrate AbstractJdbcSource to use iterators
0.1.122021-01-251746Fix NPE in State Decorator
0.1.112021-01-251765Add field titles to specification
0.1.102021-01-191724Fix JdbcSource handling of tables with same names in different schemas
0.1.92021-01-141655Fix JdbcSource OOM
0.1.82021-01-131588Handle invalid numeric values in JDBC source
0.1.72021-01-081307Migrate Postgres and MySql to use new JdbcSource
0.1.62020-12-091172Support incremental sync
0.1.52020-11-301038Change JDBC sources to discover more than standard schemas
0.1.42020-11-301046Add connectors using an index YAML file