Unexpected and inconsistent Incremental | Append behavior for MSSQL Source -> MSSQL Destination #37444
Unanswered
cohenj20
asked this question in
Connector Questions
Replies: 1 comment
-
Maybe is because of this: |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
TL:DR
I'm using airbyte to replicate data between two sql systems. I'm pulling four tables and using a cursor column in each table to achieve
Incremental - Append
syncs. When I run the first sync all records are extracted and loaded as expected. Without modifying any data in the source tables, I run another sync. All tables but one extract and load 0 records as expected. One table however extract and loads one row from the source, even though the value in the cursor column was not changed.Overview
I'm building out an Airbyte demo for my company. I'm using an instance of the Microsoft AdventureWorks2019 SQL Server database as the source system and a SQL Server Database called Raw on the same server as the destination. I had no trouble configuring the source and destination connectors and creating the connection. However, I'm observing some inconsistently unexpected behavior with the
Incremental | Append + Deduped
andIncremental | Append
replication strategies. Below I review the connector information and the details regarding the behavior I'm seeing.Connector Information
Source: AdventureWorks2019
MS SQL Server (Certified Connector)
Destination: Raw
MS SQL Server (Community Connector)
Source Table Schemas
Customer Table

Person Table

SalesOrderDetail Table

SalesOrderHeader Table

As seen in the screenshots, each table has a replication method of
Incremental | Append + Deduped
. The cursor columns are all the field ModifiedDate, which is present in every table in the AdventureWorks2019 DB.First Sync
Expectations: No state exists for these streams, so a full-refresh is expected where all records are extracted and loaded.
Observations: Sync completes without error and all records are extracted and loaded to the destination.
Important Log snippets:
Second Sync (No change to source data)
Expectations: Now state exists for these streams. Because source tables did not change, it is expected that no rows would be extracted and loaded.
Observations: Sync completes without error, however, one stream exhibits unexpected behavior: it extracts and loads the one record in the table whose cursor column value = saved state for the cursor column.
Important Log snippets:
Third Sync (One row changed in source data)
I decided to run a test where I modified the cursor value in one of the rows in one of the source tables.
Expectations: Because one row in the source tables did change, it is expected that that one rows would be extracted and loaded.
Observations: Sync completes without error, and the one modified row is successfully extracted and loaded into the destination. The problematic stream, however, still extracts and loads the one record in the table whose cursor column value = saved state for the cursor column.
Important Log snippets:
Please let me know if anyone has questions or requires further clarification. Hope you guys can help!
Beta Was this translation helpful? Give feedback.
All reactions