Skip to main content
The pipeline can pull data directly from relational databases on a schedule. Configure a database source, set a cron expression, and the pipeline handles connection management, incremental extraction, and secret retrieval from Vault.

Supported Databases

Configuration

Database sources are configured in the databaseAttributes section of a pipeline configuration. Connection credentials (JDBC URL, username, password) are stored in Vault — not in the pipeline config itself.

Configuration Reference

Secrets in Vault

Database credentials are never stored in the pipeline configuration. Instead, the pipeline reads them from HashiCorp Vault using the secret name configured above. The Vault secret must contain username, password, and jdbcUrl keys:
Store the credentials in Vault using the CLI:

Cron-Based Scheduling

The cronExpression field accepts a Quartz cron string with six fields (seconds, minutes, hours, day-of-month, month, day-of-week):

Incremental Pulls

Incremental extraction relies on timestampFieldName, which is effectively required: the generated SELECT always appends that column to the projection and orders the result by it (ORDER BY {timestampFieldName}). After each pull, the pipeline records the value of that column from the last (highest-ordered) row returned — this is the high-water mark. It is not computed with a MAX() aggregate; it is simply the timestamp of the final row in the ordered result set. On the next execution, the pipeline adds a WHERE {timestampFieldName} > {lastValue} clause to fetch only new or updated rows. The high-water mark is stored in MongoDB in the {environment}-data-pull collection.

Custom SQL

Set sqlOverride to run an arbitrary query instead of a simple SELECT ... FROM table:

Field Filtering

Use includeFields to select a subset of columns from the source table:
When sqlOverride is set, includeFields is ignored because the SQL query already defines the column list.

Troubleshooting