Incremental windows and cursors

An incremental load reads only part of its source: the rows inside a date window. This page explains how that window is built, how the loop type steps through it, and what a stream's cursor must be. To set the fields, see Configure a table; for the sync types themselves, see Choose a sync type.

How a run builds its window

Step through the window with the loop type

Incremental Reload Loop (Truncate Insert) covers the same window as a plain incremental load, but walks it in steps of Loop Increment days.

Cursors for API streams

For a table on a Connect Any API source, the window runs on the stream's cursor, not on any date column you choose.

Month, quarter and year cursors

Questions, answered

How far back does one run read, and where do I change it?

The run reads the last Synchronize Days set on its table, ending on the date the run is for. The day count is subtracted from that date to find where the window starts, so a larger value reaches further back. Change it on Table > General; see Configure a table.

Do two runs read the same days?

Yes, where their windows overlap: each window ends on its own run's date, so the days both windows hold are read again. Rows outside the window are never read. For what a run does to those days in storage, see Reloads and partitions.

Can I pick a different date column for an API table?

No. A Connect Any API table can sync incrementally only on the datetime cursor its recipe declares, so the table's Date Column is that cursor. If the recipe declares no datetime cursor, the table has no incremental type at all. See Connect any API.

My API run says the incremental column must be a datetime/date column. What now?

The stream's cursor is not a datetime or date value, so the run stops instead of loading an empty window. Give a string cursor the date-time format in the stream schema, or use a datetime cursor; integer cursors cannot drive incremental loads. The full message is under Cursors for API streams.

Why does my monthly run start on the first of the month?

The stream's recipe declares its cursor to step in whole calendar periods, and a period cursor moves the window's first day to the first day of the period. Whether a stream steps in months, quarters or years comes from its recipe, not from the table's settings; see Connect any API.

Does an incremental file table read every file?

Not when its window follows _file_date: only files whose date falls inside the window are read, and a file whose name has no readable date stays outside it. See Load files.

Which date does the window end on?

The date the run is for: for a manual run, the date you pick in Synchronize Table, which the Sync Log records as Current Date. A scheduled run has its own date. See Run, stop and troubleshoot loads.

How do I set the step size of the loop type?

With Loop Increment on Table > General; it is shown only for the loop type. It sets how many days each step loads, while Synchronize Days still sets how deep the whole window is. See Configure a table.