data-pipeline

Ingest, transform, and load API data into PostgreSQL with idempotent upserts.

Updated Mar 14, 2026
One-click install
npx skills add https://github.com/Vivekmano27/agent-orchestrator --skill data-pipeline-vivekmano27
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: data-pipeline
Source: https://github.com/Vivekmano27/agent-orchestrator/tree/main/plugins/project-orchestrator/skills/data-pipeline
Command: npx skills add https://github.com/Vivekmano27/agent-orchestrator --skill data-pipeline-vivekmano27

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Integrate and automate large-scale data flows by extracting from APIs, transforming with model validation, and loading into PostgreSQL with idempotent upserts for reliable batch processing.

Core Features & Use Cases

  • End-to-end ETL/ELT base pattern with batching and checkpointing
  • Pydantic v2 validation for transformed records
  • Django management command for batch processing and monitoring
  • Upsert loading into PostgreSQL with conflict handling
  • API pagination and streaming for scalable data ingestion

Quick Start

Configure your data source (API, CSV, or S3) and run the Django management command to start the pipeline.

Frequently Asked Questions about data-pipeline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build an ETL pipeline to ingest API data into PostgreSQL with idempotent upserts?

To build an ETL pipeline into PostgreSQL, you extract data from APIs, transform it with Pydantic v2 validation, and load it using SQL ON CONFLICT for idempotent upserts. This ensures reliable batch processing without duplicating records during pipeline reruns.

How does Pydantic v2 validation work in a batch ETL pipeline?

Pydantic v2 validation in a batch ETL pipeline works by enforcing strict schema rules on transformed records before loading. This guarantees that only structurally valid data reaches PostgreSQL, preventing corrupt data from entering your database.

Does this data pipeline support API pagination and checkpointing for large-scale ingestion?

Yes, the data pipeline supports API pagination and checkpointing for large-scale ingestion. It streams paginated API responses and saves progress, allowing scalable data ingestion to resume safely from the last checkpoint if interrupted.

Can I run batch ETL processing in a Django environment using a management command?

Yes, you can run batch ETL processing in a Django environment using a built-in management command. This allows you to execute, monitor, and schedule data pipelines directly within your existing Django application infrastructure.

What is the best way to handle batch sizing when loading API data into PostgreSQL?

The best way to handle batch sizing when loading API data into PostgreSQL is to process records in configured batch sizes. Batching controls memory usage during data ingestion and optimizes the upsert loading performance for large datasets.

Why use idempotent upserts for API data ingestion into PostgreSQL?

You use idempotent upserts for API data ingestion to ensure data consistency when rerunning failed pipelines. By utilizing SQL ON CONFLICT handling, the pipeline updates existing records or inserts new ones without creating duplicates.