Skip to main content

A decoupled, SQL-first data engine for ingestion and transformation.

Project description

Gojjam

The Lightweight, SQL-First Data Engine for Ingestion and Transformation.

Status Python 3.10+

📖 Documentation: Read the full setup guides and tutorials at gojjam-docs

⚠️ Work in Progress: Gojjam is currently in MVP/Alpha. The core engine is stable, but connector features are limited. Not yet recommended for production-critical workloads.

Gojjam is a data pipeline engine built for analytics engineers. It allows you to build end-to-end data pipelines—from extracting raw data to transforming it—using pure SQL and simple YAML configurations. No Python boilerplate required.

🚀 Why Gojjam?

  1. SQL-Only Extraction Extract data from APIs, databases, or cloud storage (like AWS S3 and Azure Blob Storage) using only SQL. Gojjam treats external data sources like virtual SQL tables. Check out our docs to get up and running.

  2. In-Flight Transformation Flatten nested JSON payloads, rename columns, cast data types, and filter records before the data hits your warehouse. Because this processing happens before loading data, it drastically reduces your downstream data warehouse compute costs.

  3. Complex Declarative Logic Handle complex extraction requirements—like API pagination—entirely within SQL using Calculated Models, eliminating the need for custom python loop scripts.


🛠️ Installation

pip install gojjam

📖 Quick Start

Gojjam includes a built-in scaffolding engine to get you running in seconds. For a detailed walk-through, see the 5-Minute Quickstart Guide.

1. Initialize a Project

gojjam init

This creates a partitioned project structure:

  • gojjam_ingest_sources.yml: Define your data sources.
  • gojjam_ingest_sinks.yml: Define where your data lands.
  • ingest/: Put your raw extraction SQL here.
  • transform/: Put your warehouse transformation SQL here.

2. Run the Pipeline

# Run all ingest and transformation tasks
gojjam run --all

💡 The Gojjam Philosophy

Gojjam treats APIs as virtual SQL tables. Instead of writing complex Python scripts to handle pagination and nested JSON, you define the schema and let the engine handle the heavy lifting. This allows data engineers to focus on the logic of the data rather than the plumbing of the connection.


🔌 Supported Connectors

Gojjam is designed for extensibility. We currently support the following extraction and loading modules:

Connector Type Status / Description
HTTP / REST Extractor Stable: Supports JSON payloads via Basic Auth, JWT authentication, and SQL-based pagination.
PostgreSQL Extractor/Loader Stable: High-speed relational data movement via psycopg2.
CSV / Flat Files Extractor Stable: Local-first data ingestion for quick analysis.
DuckDB Extractor Stable: In-process analytical extraction for fast prototyping.
AWS S3 Extractor Stable: Added support for extracting data from AWS S3 buckets.
Azure Blob Storage Extractor Stable: Added support for extracting data from Azure Blob Storage containers.
Terminal Loader Stable: Debug mode: stream results directly to your console.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gojjam-0.2.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gojjam-0.2.0-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

Details for the file gojjam-0.2.0.tar.gz.

File metadata

  • Download URL: gojjam-0.2.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for gojjam-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c93ed777d667465b1278eb246df72062416434d24a10c3b8f2b3c4f22df42eba
MD5 82aec012c9c472e02f739095e52e3ed1
BLAKE2b-256 d652b79915a9387bb2b205ea220cc651c0fd50988ced667cab51fa452b59626a

See more details on using hashes here.

File details

Details for the file gojjam-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gojjam-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 31.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for gojjam-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cdf8443c4abf7c659d6f97ae253833473a48308331f2aa42ac9cb4bec54442e8
MD5 d801223c0f1d2f3a31eea8b8999571e4
BLAKE2b-256 3772d55c7f3b16ce2643e255bce9be5ad1c59b679f940f4d40cb422da36833d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page