Get started with a free trial today
Already have an account? Sign in
Learn about the methods Stitch uses to load data into your destination and what the impact will be on your destination tables.
In this guide, we’ll cover:
When data is loaded into your destination, Stitch will use one of the following loading behavior types:
When data is loaded using the Upsert behavior, existing rows are updated in tables with defined Primary Keys. Stitch will de-dupe records based on Primary Keys before loading them, meaning that only one version of a record will exist in the table at any given time.
When data is loaded using the Append-Only behavior, records are appended to the end of the table as new rows. Existing rows in the table aren’t updated even if the source has defined Primary Keys. Multiple versions of a row can exist in a table, creating a log of how a record has changed over time.
At a high level, loading behavior is determined by the following:
Upsert loading is used whenall of the following conditions are met:
Note: This is applicable to allReplication Methods.
Append-Only loading is used whenany of the following conditions are met:
In this example:

This example is applicableany of the following are true:

This example is applicable when the source data doesn’t have a defined Primary Key.
When source data that doesn’t have a Primary Key is replicated, Stitch appends an__sdc_primary_key to the data to function as a Primary Key. Data will be loaded using Append-Only loading, regardless of what loading behavior the destination supports or is configured to use.

Note: If a destination supports and is configured to use Upsert loading, Stitch will attempt to use Upsert loading before Append-Only. Allother conditions for Upsert loading must also be met.
| Destination | Version | Default loading behavior | Loading behavior is configurable? |
| Amazon Redshift | v2 | Upsert | |
| Amazon S3 | v1 | Append-Only | |
| data.world | v1 | Upsert | |
| Databricks Delta Lake (AWS) | v1 | Upsert | |
| Google BigQuery | v1 | Append-Only | |
| Google BigQuery | v2 | Selected by you | |
| Microsoft Azure Synapse Analytics | v1 | Upsert | |
| Microsoft SQL Server | v1 | Upsert | |
| MySQL | v1 | Upsert | |
| Panoply | v2 | Upsert | |
| PostgreSQL | v1 | Upsert | |
| Snowflake | v1 | Upsert |
The integrations listed below are pre-configured to use Append-Only loading for all or some tables.
| Integration | Version | Notes |
| Amazon S3 CSV | v1 | Unless Primary Keys are defined for the table, Append-Only loading will be used. |
| Campaign Manager | v1 | All tables use Append-Only loading |
| Google Ads | v2 | All Report tables |
| Google Ads (AdWords) | v1 | All Report tables |
| Microsoft Advertising | v2 | All Report tables |
| SFTP | v1 | Unless Primary Keys are defined for the table, Append-Only loading will be used. |
| Related | Troubleshooting |
Did this article help? If you have questions or feedback, feel free tosubmit a pull request with your suggestions,open an issue on GitHub, orreach out to us.