FastSync
FastSync bypasses Singer JSON for supported bulk transfers and uses native database export, staging, copy, and merge operations. It has two components:
Component |
Selection |
Target effect |
|---|---|---|
FullSync |
Initial load, |
Publishes a complete source-table copy. |
PartialSync |
|
Merges a filtered source range into the existing target. |
FastSync is not a replication method. LOG_BASED, INCREMENTAL, and
FULL_TABLE remain the table’s replication methods.
Supported routes
Source |
Target |
FullSync |
PartialSync |
|---|---|---|---|
MariaDB / MySQL |
Snowflake |
Yes |
Yes |
PostgreSQL |
Snowflake |
Yes |
Yes |
MongoDB |
Snowflake |
Yes |
No |
MariaDB / MySQL |
PostgreSQL |
Yes |
No |
PostgreSQL |
PostgreSQL |
Yes |
No |
MongoDB |
PostgreSQL |
Yes |
No |
The Snowflake rows currently cover native tables only. With explicit
target_table_format: iceberg, FullSync and PartialSync fail before target
mutation and do not fall back to Singer.
Endpoint support status from Connectors still applies. For a
route without a FastSync component, a normal run_tap falls back to Singer.
The explicit fast_sync command instead fails without loading data.
Automatic selection and handover
During run_tap, PipelineWise selects FullSync when:
the table uses
FULL_TABLE;an
INCREMENTALtable has no replication-key bookmark; ora
LOG_BASEDtable has no LSN, binlog, GTID, or change-stream bookmark.
After a successful initial FullSync, PipelineWise writes the captured bookmark
and starts the Singer portion of the same run_tap invocation for incremental
or log-based tables. It does not wait for the next scheduled launch.
If FullSync fails, Singer does not advance that table past an incomplete initial load. Restart the same command after correcting the failure.
Explicit FullSync
fast_sync resyncs every selected table regardless of its current bookmark:
pipelinewise fast_sync \
--tap <tap_id> \
--target <target_id> \
--tables <schema.table>
This operation can replace target data and reset replication bookmarks. Review Resync and repair before running it against a large or actively written table.
Configured PartialSync
sync_start_from makes explicit fast_sync use PartialSync for that table:
tables:
- table_name: "orders"
replication_method: "LOG_BASED"
sync_start_from:
column: "updated_at"
static_value: "2024-01-01"
drop_target_table: false
Setting |
Required |
Behaviour |
|---|---|---|
|
Yes |
Applies |
|
Exactly one value source |
Uses the same literal boundary on every run. |
|
Exactly one value source |
Runs a source query that must return one row and one column. |
|
No; default |
Recreates the target before loading the filtered result. |
Exactly one of static_value and dynamic_value is allowed. Configured
PartialSync is supported only from MariaDB/MySQL or PostgreSQL to Snowflake.
If a dynamic query returns no boundary, PipelineWise treats the partial range as empty and completes successfully. Use a static boundary when an empty result would hide a configuration or source-data problem.