Create an Incremental Postgres Read Component
This guide walks you through building an Incremental Postgres Read Component that ingests only new or updated records.
Prerequisites​
- Ascend Flow
- Postgres Connection
Create a new Component​
Begin from your workspace Super Graph view. Follow these steps to create your component:
- Using the Component Form
- Using the Files Panel
- Double-click the Flow where you want to create your component
- Right-click anywhere in the Flow Graph
- Hover over Create Component, then over Read in the expanded menu, and click From Scratch
- Complete the form with these details:
- Select your Flow
- Enter a descriptive Component Name like
read_sales
- Select YAML as your file type
- Open the files panel in the top left corner
- Navigate to and select your desired Flow
- Right-click on the components directory and choose New file
- Name your file with a descriptive name like
read_sales.yaml
and press enter
Create your Incremental Postgres Component
Structure your Postgres Incremental Read Component following this pattern:
- Reference your Postgres connection: Specify which connection to read from.
- Add the
postgres
key – specify the table you want to read from. In this example, we use themy_table
table in thepublic
schema. - Add the
replication
key – specify the incremental replication strategy using a column to track changes:strategy:
replication:
incremental:
column_name: updated_at # Column used for tracking incremental updates to the data.tipYour incremental column should be a timestamp or datetime column that updates whenever a row is inserted or modified. Ascend uses this column to fetch only new or changed records since the last run.
- Add the
incremental
key – specify the merge materialization strategy:strategy:
incremental:
merge:
unique_key: id # Column that uniquely identifies each record.
deletion_column: deleted_at # (Optional) Soft-delete timestamp column.noteWhen using merge materialization, specify
deletion_column
to detect and remove rows that have been soft-deleted.
read_postgres_incremental.yaml
component:
read:
postgres:
table:
name: my_table
schema: public
connection: my-postgres-connection
strategy:
incremental:
merge:
unique_key: id # Column or set of columns used as a unique identifier for records.
deletion_column: deleted_at # Column name used for soft-deleting records, if applicable.
on_schema_change: append_new_columns
🎉 Congratulations! You just created an Incremental Postgres Read Component in Ascend.