[source-bigquery] BigQuery Incremental Sync with non-granular cursor - expected behavior? #79103
Replies: 1 comment
|
For the current The distinction is source extraction versus destination deduplication:
So after state advances to The reliable fix is to make the cursor strictly increasing at the granularity of your writes, for example:
If late rows with equal cursor values are unavoidable, use a periodic state reset/full refresh or a custom extraction with a lookback window. A primary key helps deduplication after extraction, but does not prevent this gap. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hello,
Question: I'm syncing a BigQuery table to a snowflake table. We have a primary key and cursor in the BigQuery table, which is quite large, so we are using the Incremental - Append + Deduped field. If we have new rows that are added (or modified) after a sync runs that have the same cursor value as the previous max cursor value, will they still be processed on the next sync run?
Example: For example, let's say we have 1 row where the cursor indicates the updated_at is "June 3 2026 at 1 am", and the sync runs with that as the max cursor values. After the sync runs, 6 additional rows (perhaps some net-new rows, and some updated rows of existing data) now have the same updated_at as "June 3 2026 at 1 am". Would those 6 additional rows still be processed on the next sync run?
Context: I'm having trouble understanding what the expectation is for this scenario is, since the documentation mentions the cursor query logic being
select * from table where cursor_field > 'last_sync_max_cursor_field_value'which implies that those 6 rows wouldn't be processed since their cursor value is NOT > 'last_sync_max_cursor_field_value'. However, the Inclusive Cursors section of the documentation seems to suggest that these rows would indeed be processed. Which is correct?Thank you!
All reactions