> ## Documentation Index
> Fetch the complete documentation index at: https://support.entegrata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Collection Settings

> Configure schedules, load types, unique keys, and filters for resources

## Overview

Resource collection settings control how and when individual resources collect data. These settings can override connection-level defaults, allowing fine-grained control over each table, view, or endpoint.

<Steps>
  <Step title="Open Settings">
    Click the **Config** button (three dots) in the last column for the resource

    Select **Collection Settings** from the dropdown menu
  </Step>

  <Step title="Configure Schedule">
    The Collection Settings modal has multiple tabs:

    ### Schedule Tab

    **Interval-Based Schedule**

    Set a specific collection interval:

    * Time-based intervals (e.g., "Every 6 hours")
    * Cron expressions for custom schedules
    * Specific times (e.g., "Daily at 3:00 AM")

    <Frame>
      <img src="https://mintcdn.com/entegrata/514kJn1kETJv_yXN/data/collector/resources/images/resource-interval-schedule.png?fit=max&auto=format&n=514kJn1kETJv_yXN&q=85&s=3089afbdab5010d28ce97c7310a420ed" alt="Resource interval schedule configuration" style={{ width:"100%" }} width="1256" height="62" data-path="data/collector/resources/images/resource-interval-schedule.png" />
    </Frame>

    **Timing (Static vs Rolling)**

    For sub-daily intervals, choose **Rolling** (default — the next run starts one interval after the previous collection finishes) or **Static** (runs at a consistent clock time anchored to a start time you set). See [Timing: Static vs Rolling](/data/collector/connections/collection-settings#timing-static-vs-rolling) for details.

    **Active Status Toggle**

    Enable or disable collection for this resource
  </Step>

  <Step title="Configure Settings (Config Tab)">
    ### Load Type

    Choose how data is collected:

    **Full Load**

    * Copies all data every time
    * Best for small datasets or when you need complete snapshots
    * No special source requirements

    **Incremental Load**

    * Copies only new or changed data
    * Requires an incremental load field, also called a cursor field (like `modified_date` or `updated_at`)
    * Much faster for large datasets

    **Time-Window Incremental Load**

    * Like Incremental Load, but re-scans a bounded time window on the cursor field every run instead of picking up where the last run left off
    * Best when the cursor field exists but isn't fully reliable (e.g., `modified_date` doesn't always update) — re-scanning the window catches records the cursor would otherwise miss
    * Requires both a cursor field and a configured time window (see below)

    **Change Data Load** (SQL sources only)

    * Detects and collects only records that have truly changed by comparing source and Entegrata
    * Used when a table does not have a reliable cursor field for incremental loads but has a stable date field (e.g., `created_date`, `transaction_date`)
    * More expensive than Incremental Load — choose Incremental whenever a reliable cursor field is available
    * See [Sync Operation](/data/collector/resources/sync-operations) for a full explanation

    <Frame>
      <img src="https://mintcdn.com/entegrata/FZ7uPvdDC2XYN2d6/data/collector/resources/images/load-type-selector.png?fit=max&auto=format&n=FZ7uPvdDC2XYN2d6&q=85&s=e01227bd6cc10613d06cdf7888f8fc9a" alt="Load type selector" width="616" height="43" data-path="data/collector/resources/images/load-type-selector.png" />
    </Frame>

    ### Incremental Load Field

    If you select Incremental or Time-Window Incremental load type, choose the field that tracks when records were last updated:

    <Frame>
      <img src="https://mintcdn.com/entegrata/FZ7uPvdDC2XYN2d6/data/collector/resources/images/incremental-field-selector.png?fit=max&auto=format&n=FZ7uPvdDC2XYN2d6&q=85&s=a9e973ea9c428812e4faa5c946364830" alt="Incremental load field selector" width="616" height="43" data-path="data/collector/resources/images/incremental-field-selector.png" />
    </Frame>

    <Warning>
      The incremental load field must:

      * Exist in the source data
      * Update whenever a record changes
      * Be a date, datetime, or timestamp type
    </Warning>

    ### Time Window

    If you select Time-Window Incremental load type, configure the window that bounds each collection run:

    **Relative window**

    A sliding window anchored to "now", such as the last 3 months or last 30 days. The window moves forward with each run, so collection always covers the most recent period.

    **Absolute window**

    A fixed start and end date (e.g., `2025-01-01` to `2025-06-30`). The same range is scanned on every run — useful for backfilling a specific historical period.

    <Tip>
      Use a relative window for ongoing collection of recent activity; use an absolute window when you're targeting a defined past period.
    </Tip>

    ### Unique Key(s)

    Specify which field(s) uniquely identify each record:

    <Frame>
      <img src="https://mintcdn.com/entegrata/FZ7uPvdDC2XYN2d6/data/collector/resources/images/unique-keys-selector.png?fit=max&auto=format&n=FZ7uPvdDC2XYN2d6&q=85&s=fc546d8e0c5da04bc17f5f7f88b5cdca" alt="Unique keys selector" width="616" height="41" data-path="data/collector/resources/images/unique-keys-selector.png" />
    </Frame>

    **Source-Managed Keys**

    If the source system manages primary keys (e.g., database tables with PRIMARY KEY constraints), Entegrata uses those automatically and they cannot be changed.

    <Info>
      You'll see: "Primary keys are managed by the source and cannot be changed"
    </Info>

    **User-Defined Keys**

    For sources without explicit primary keys (e.g., views, API endpoints, files), select one or more fields that uniquely identify records:

    * Single field (e.g., `id`, `email`)
    * Multiple fields (composite key, e.g., `customer_id` + `order_date`)

    <Tip>
      Unique keys are used to:

      * Detect duplicate records
      * Merge updates in incremental loads
      * Ensure data quality
    </Tip>
  </Step>

  <Step title="Configure Filters (Filters Tab)">
    Add filters to limit what data is collected from this resource.

    ### Creating Filters

    1. Select a field from the resource
    2. Choose an operator (equals, greater than, contains, etc.)
    3. Provide a value to filter on
    4. Combine multiple filters with AND/OR logic

    ### Example Filters

    * Collect only active records: `status = 'active'`
    * Collect recent data: `created_date >= '2024-01-01'`
    * Exclude test data: `email NOT LIKE '%@test.com'`

    <Note>
      Filters are applied at the source before data is transferred, reducing collection time and storage costs.
    </Note>
  </Step>

  <Step title="Save Configuration">
    Click **Save** to apply the resource collection settings
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="Enabling Resources" icon="toggle-on" href="/data/collector/resources/enabling-resources">
    Turn on data collection for specific resources
  </Card>

  <Card title="Triggering Collection" icon="play" href="/data/collector/resources/triggering-collection">
    Manually start collection for testing
  </Card>

  <Card title="Monitoring Jobs" icon="chart-line" href="/data/collector/jobs/overview">
    Track collection execution and performance
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/data/collector/resources/troubleshooting">
    Resolve resource collection issues
  </Card>
</CardGroup>
