Choose a sync type

A sync type sets how a Lake table loads from its source, and what happens to rows that change or disappear there. Use this page to choose one, or to check that the type a table uses still fits.

Compare the load patterns

Match your source to a sync type. A new table starts on Full Reload (Truncate Insert).

PatternSync TypeEach run pullsRows deleted in the sourceNeeds a date column
Full reloadFull Reload (Truncate Insert)The entire tableRemoved from the LakeNo
Incremental reloadIncremental Reload (Truncate Insert)The last Synchronize DaysRemoved inside the window onlyYes
Incremental reload loopIncremental Reload Loop (Truncate Insert)The last Synchronize Days, in steps of Loop IncrementRemoved inside the window onlyYes
Full reload · upsertFull Reload (Upsert)The entire table, merged by keyKeptNo
Incremental · upsertIncremental (Upsert)The last Synchronize Days, merged by keyKeptYes
Full snapshotFull SnapshotThe entire table, saved as a new versionKept in the versions where they existedNo
Incremental snapshotIncremental SnapshotThe last Synchronize Days, saved as a new versionKept in the versions where they existedYes
OnetimeOnetimeThe whole table, once, while the Lake table is emptyNot applicableNo

As a rule of thumb:

Set the sync type of a table

You need Add/Modify Lake Objects to change a sync type. See Who can do what in the Lake.

  1. Right-click the table in the Lake tree and choose Edit, then open Table > General.
  2. In the Synchronization section, open Sync Type and choose a type. The list is grouped as Truncate Insert, Upsert, Snapshot and Onetime, and a greyed-out type cannot be used for this table. Point at it to see the reason.
  3. For an incremental type, choose a Date Column, then set Synchronize Days.
  4. For Incremental Reload Loop (Truncate Insert), set Loop Increment.
  5. Click Apply. Revert discards your unsaved changes.

To compare the patterns while you choose, click Sync patterns guide in the Synchronization section, then open the Compare tab.

Settings for incremental types

The incremental settings appear only for incremental types.

SettingWhat it doesDefault
Date ColumnSets the column that decides which rows fall inside the window. The list shows columns whose type or name contains date or timestamp.None, you choose one
Synchronize DaysSets how many days each run covers, including the current day. Whole number from 0 to 9999.10
Loop IncrementSets how many days each step of the loop type loads. Whole number from 1 to 9999. Shown only for the loop type. 100 days in steps of 10 takes ten steps.1
Full Reload When EmptyOff means incremental sync only. On means that when the Lake table is empty, the first load covers all history, or the period from Full Reload Start Date. The switch reads Full reload on empty table or Incremental sync only.Off
Full Reload Start DateSets the first day of that first load. Shown for Incremental Reload (Truncate Insert) and the loop type when Full Reload When Empty is on. Must fall between 1970-01-01 and 2106-02-07. Empty means all history on Incremental Reload (Truncate Insert); on the loop type the field marks it Required for Loop.Empty
Note

Full Reload When Empty is off by default. Until you turn it on, an empty table is loaded only for the Synchronize Days window.

Limits and behaviour

Warning

On a deployed table, moving between the upsert, snapshot and truncate-insert groups, for example from Full Reload (Truncate Insert) to Full Reload (Upsert), drops and recreates the table. The confirmation warns that all existing data will be permanently lost. Changing the Date Column of a deployed table also drops and recreates it.

Questions, answered

My source deletes rows. Which type keeps them?

Use Full Reload (Upsert) or Incremental (Upsert). Both merge by key, so rows deleted in the source stay in the Lake. Incremental (Upsert) reads only the window, so it is lighter on large tables.

Can I see the table as it looked last month?

Yes, with a snapshot type. Filter the rows where the date you need falls between Snapshot From and Snapshot To. Use Full Snapshot for small and medium tables, and Incremental Snapshot for large tables where only recent records change.

Late corrections older than my window are missing. What do I do?

Increase Synchronize Days so the window covers how far back the source changes. Incremental types never read rows outside the window. If older rows can change at any time, use a full type.

How do I backfill a year of history without one huge load?

Use Incremental Reload Loop (Truncate Insert). Turn on Full Reload When Empty, set Full Reload Start Date to the first day you need, and set Loop Increment. The field tip reads "Required. On an empty table the first load walks from this date to today, Loop Increment days per iteration." After that, each run covers the Synchronize Days window.

Why are the incremental types greyed out?

The table has no column with a date or datetime type, or, for an API stream, its recipe declares no cursor. Point at the greyed-out type to see the reason. Use a full type for that table.

I picked the loop type. Why can't I save it?

Two checks apply. The table must belong to a workflow, and with Full Reload When Empty on you must set Full Reload Start Date. Without the date, the save is refused with "Full Reload Start Date is required for the Loop sync type when Full Reload When Empty is on". Set the date, turn the switch off, or choose another type.

Why can't I choose Replication?

Lake tables accumulate history, they do not replicate. Replication is never offered, and a request that asks for it is refused with Sync type "Replication" is never stored on a lake table: an analytical system accumulates history, it does not replicate. Use "Full Reload (Truncate Insert)", "Incremental Reload (Truncate Insert)", "Incremental Reload Loop (Truncate Insert)", "Incremental (Upsert)", "Onetime". Choose one of those types instead.

How do I load a Onetime table again?

Truncate the Lake table. The next run sees an empty table and loads it again. See Run, stop and troubleshoot loads.

Does a full snapshot use a lot of storage?

Yes. Each run adds a full copy of the table, so storage grows by the size of the table on every run. For large tables, use Incremental Snapshot, which adds only the window.

What does Full Reload When Empty change?

It matters only while the Lake table has no rows. When it is off, the first load reads the Synchronize Days window only. When it is on, the first load reads all history, or the period from Full Reload Start Date if you set one. Later runs go back to the window.