> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ELT/CDC: ELT & CDC Features and Requirements

> Review the features, supported sources, destinations, and system requirements for Integrate.io ELT & CDC data replication and sync pipelines.

## Features

* Full/Historical Sync
* Incremental Sync (CDC/Binlog Replication and some SaaS connectors)
* Append Only
* Excluding of Columns
* Renaming of Columns
* Setting of Custom Primary Keys
* Record Transformations (Can be requested from [support@integrate.io](mailto:support@integrate.io))
  * RegEx Find and Replace/Masking
    * Replace in Field
    * Toggle Case
* Use of own S3 bucket (Can be requested from support)

## CDC/Binlog Replication Sources

### MySQL

**Version**

* \>= 5.7

**Variants**

* AWS RDS
* GCP Cloud SQL
* Azure
* MariaDB
* Self Hosted

**MySQL System Constraints**

* Table events with `CASCADING DELETES` and `CASCADING UPDATES` (Not supported by MySQL Binlog replication).
* Configuration `binlog_row_value_options=PARTIAL_JSON` is not supported as it makes the Binlog replication records not full or complete.

*Columns with spaces or starts with digits (Please contact [support@integrate.io](mailto:support@integrate.io) to override this manually)*

### PostgreSQL

**Versions**

* \>= 10

**Variants**

* AWS PostgreSQL
* Azure Single Node PostgreSQL
* Self Hosted
* GCP Cloud Postgres

**PostgreSQL System Constraints**

* Heroku PostgreSQL (Heroku doesn’t support `logical` replication)
* PostgreSQL (\<10)
* Table with generated column
* `TRUNCATE CASCADE` and `TRUNCATE`

*Columns with spaces or starts with digits (Please contact [support@integrate.io](mailto:support@integrate.io) to override this manually)*

### SQL Server

<Note>
  ***Note***:

  When adding new column to a CDC-Enabled table, disabling/enabling CDC is required to capture the change. Customer can also opt to create another capture instance for a table (to a maximum of two capture instances per table). Reference [here](https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc987538\(v=msdn.10\)?redirectedfrom=MSDN).
</Note>

##### **SQL Server System Constraints**

* [Computed columns](https://learn.microsoft.com/en-us/sql/relational-databases/system-tables/cdc-capture-instance-ct-transact-sql?view=sql-server-2017#large-object-data-types) that are included in a capture instance always have a value of NULL.

*Columns with spaces or starts with digits (Please contact [support@integrate.io](mailto:support@integrate.io) to override this manually)*

## SaaS Connectors

Features per connector listed [here](/cdc/category/sources)

## Destinations

### Redshift

Supported

### Snowflake

Supported

<Note>
  ***Note***:

  * The maximum allowed VARCHAR/TEXT length of single-byte characters is 16,777,216 and  4,194,304 for 4 byte characters (per [snowflake's documentation](https://docs.snowflake.com/en/sql-reference/data-types-text.html)).
  * The maximum length of a [VARIANT](https://docs.snowflake.com/en/sql-reference/data-types-semistructured.html#variant) is 16 MB.
</Note>

### S3

Supported

* Authorization
  * IAM Role and not AWS AccessKey / Secret
* File format
  * Avro

### BigQuery

Supported

<Note>
  *Note*:

  * BigQuery doesn’t support deduplication. Instead, the following columns are added to the destination table for future deduplication on the customer’s side.

    **\_\_offset** - Offset column. Keeps track of the offset in incremental order to determine which existing row is the latest.\
    **\_\_op** - Operation column. Tells what kind of operation is performed for a particular row (0 - Created, 1 - Inserted, 2 - Updated, 3 - Deleted)
</Note>
