Semogram Docs
Tutorials

Quick: pipeline from Postgres to S3

Nightly extract, validated, written to object storage.

Short recipe — the smallest useful cross-system pipeline. Assumes a connected Postgres source and an S3 destination; see Connect data for both setups.

Steps

  1. In Pipeline Studio, describe it: "Every night, extract new orders from Postgres and write them to S3 as a dated file."
  2. Check the proposal graph: source node on the Postgres endpoint in incremental mode, optional transform for shaping, destination node on the S3 endpoint in append mode.
  3. Confirm the read scope on the source node — one table, new rows only. Full rereads every night are the classic first-pipeline waste.
  4. Confirm the write target on the destination node — bucket, prefix, dated filenames — and the append mode.
  5. Put a node-level approval on the destination node. First writes to a new target always pass a human.
  6. Dry-run: inspect the preview rows, then commit and verify the file landed in S3 with the expected shape and count. Check three things at the other end: row count matches the preview, the filename carries today's date, and one spot-checked row matches its source.

Image: S3 target with the dated file beside the preview count it was verified against.

{
  "kind": "destination",
  "dataEndpointName": "s3.order-extracts",
  "source": "new_orders",
  "writeMode": "append"
}

Image: three-node graph (source, optional transform, destination) with the approval gate on the write.

Done means tonight's file lands without you watching. Node detail in Workflow nodes; write rules in Write policies.

On this page