Skip to main content

A declarative data engineering framework - Explicit over implicit, Stories over magic

Project description

Odibi

Declarative data pipelines. YAML in, star schemas out.

CI Python 3.9+ License

Odibi is a framework for building data pipelines. You describe what you want in YAML; Odibi handles how. Every run generates a "Data Story" — an audit report showing exactly what happened to your data.


⚡ Quick Start

pip install odibi

Clone and run the reference example:

git clone https://github.com/henryodibi11/Odibi.git
cd Odibi/docs/examples/canonical/runnable
odibi run 04_fact_table.yaml

This builds a complete star schema in seconds:

  • 3 dimension tables (customer, product, date)
  • 1 fact table with FK lookups and orphan handling
  • HTML audit report

See the full breakdown →


📖 The Canonical Example

pipelines:
  - pipeline: build_dimensions
    nodes:
      - name: dim_customer
        read:
          connection: source
          format: csv
          path: customers.csv
        pattern:
          type: dimension
          params:
            natural_key: customer_id
            surrogate_key: customer_sk
            scd_type: 1
        write:
          connection: gold
          format: parquet
          path: dim_customer

      - name: dim_date
        pattern:
          type: date_dimension
          params:
            start_date: "2025-01-01"
            end_date: "2025-12-31"
        write:
          connection: gold
          format: parquet
          path: dim_date

  - pipeline: build_facts
    nodes:
      - name: fact_sales
        depends_on: [dim_customer, dim_date]
        read:
          connection: source
          format: csv
          path: orders.csv
        pattern:
          type: fact
          params:
            grain: [order_id, line_item_id]
            dimensions:
              - source_column: customer_id
                dimension_table: dim_customer
                dimension_key: customer_id
                surrogate_key: customer_sk
            orphan_handling: unknown
        write:
          connection: gold
          format: parquet
          path: fact_sales

Full runnable example →


🚀 Key Features

Feature Description
Data Stories Every run generates an HTML audit report
Dimensional Patterns SCD1/SCD2, date dimension, fact tables built-in
Validation & Contracts Fail-fast checks, quarantine bad rows
Dual Engine Pandas locally, Spark in production — same config
Production Ready Retry, alerting, secrets, Delta Lake support

📚 Documentation

Goal Link
Get running in 10 minutes Golden Path
Copy THE working example THE_REFERENCE.md
Solve a specific problem Playbook
Understand when to use what Decision Guide
See all config options YAML Schema

📦 Installation

# Standard (Pandas engine)
pip install odibi

# With Spark + Azure support
pip install "odibi[spark,azure]"

🎯 Who is this for?

  • Solo data engineers building pipelines without a team
  • Analytics engineers moving from dbt to Python-based pipelines
  • Anyone tired of writing the same boilerplate for every project

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md.


Maintainer: Henry Odibi (@henryodibi11)
License: Apache 2.0

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

odibi-2.4.0.tar.gz (481.2 kB view details)

Uploaded Source

Built Distribution

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

odibi-2.4.0-py3-none-any.whl (483.7 kB view details)

Uploaded Python 3

File details

Details for the file odibi-2.4.0.tar.gz.

File metadata

  • Download URL: odibi-2.4.0.tar.gz
  • Upload date:
  • Size: 481.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for odibi-2.4.0.tar.gz
Algorithm Hash digest
SHA256 be41fab7c413b68d8af8101c22d555206cc3ee81edac3b9997e004f9b96c7c9d
MD5 c85e79b8c8a66cea177b350de77636fc
BLAKE2b-256 1a42aeb4b22d3f7e79f4d46e004f31132c7cd797be769c1b22b3aaa32cfb086c

See more details on using hashes here.

Provenance

The following attestation bundles were made for odibi-2.4.0.tar.gz:

Publisher: publish.yml on henryodibi11/Odibi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odibi-2.4.0-py3-none-any.whl.

File metadata

  • Download URL: odibi-2.4.0-py3-none-any.whl
  • Upload date:
  • Size: 483.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for odibi-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2983fbe8cf9b79be0e978eb009275f9f062450f9dc3078bd6926f905011d9241
MD5 6875257a020611faf4b89e902915c75d
BLAKE2b-256 5d7fb72523e16d346bee85ad6f27ac5aa414df6a8bdee8c25f23549ed5453d48

See more details on using hashes here.

Provenance

The following attestation bundles were made for odibi-2.4.0-py3-none-any.whl:

Publisher: publish.yml on henryodibi11/Odibi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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