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.
Apache Iceberg Loader Stable: Fully supports PostgreSQL catalogs with storage layouts using AWS S3 or Local Filesystem warehouses. Handles schema evolution seamlessly.
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.3.0.tar.gz (24.8 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.3.0-py3-none-any.whl (35.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gojjam-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b6da950e28730343ee2a0c1ffc6e7f1427274efa3e274280d6aa3a6e0fcad979
MD5 f2e7992de34a64b77f44f88b03cce1fa
BLAKE2b-256 ba46126b583a75548a13538c656dc290be868e4551205113f03bcbe797e8108a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gojjam-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 35.6 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b043d00c6de93588ccb189a8aa8ef4b8da632e75b84ea5ce780aa2149b0bab40
MD5 84673eee31aab871438f6b058633cefe
BLAKE2b-256 6bc16dc30a5bf1ba9b04e75be4d81fc620204c1301e3d7feb305dc6bf1a8331f

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