Skip to main content

A lightweight, modular, plugin-first ETL platform

Project description

Santiq

Santiq Logo Python 3.11+ License: MIT PyPI version

A lightweight, modular, plugin-first ETL platform designed for individuals, small businesses, and scalable up to enterprise workloads.

Quick Start โ€ข Documentation โ€ข Examples โ€ข Contributing


๐Ÿš€ What is Santiq?

Santiq is a modern ETL (Extract, Transform, Load) platform that makes data processing simple, reliable, and extensible. Built with a plugin-first architecture, Santiq allows you to:

  • Extract data from any source (files, databases, APIs, cloud services)
  • Profile data to automatically detect quality issues
  • Transform data with intelligent cleaning and validation
  • Load data to any destination with full audit trails

โœจ Key Features

  • ๐Ÿ”Œ Plugin-First Architecture: Everything is a plugin, even core functionality
  • ๐Ÿง  Smart Data Profiling: Automatic issue detection with context-aware fix suggestions
  • โšก Multiple Execution Modes: Manual, half-automatic, and controlled-automatic
  • ๐Ÿ“Š Learning System: Remembers your preferences for future pipeline runs
  • ๐Ÿ›ก๏ธ Enterprise Ready: Comprehensive audit logging and error handling
  • ๐Ÿš€ Performance Optimized: Hybrid memory/disk usage based on data size
  • ๐Ÿ”ง Extensible: Easy to create custom plugins for any data source or transformation

๐Ÿƒโ€โ™‚๏ธ Quick Start

Installation

pip install santiq

Your First Pipeline

# Initialize a new pipeline
santiq init my-first-pipeline

# Edit the generated configuration file
# my-first-pipeline.yml

# Run the pipeline
santiq run pipeline my-first-pipeline.yml

Example Pipeline Configuration

name: "Customer Data Cleaning"
description: "Clean and validate customer data from CSV"

extractor:
  plugin: csv_extractor
  params:
    path: "${INPUT_PATH}/customers.csv"
    header: 0

profilers:
  - plugin: basic_profiler
    params: {}

transformers:
  - plugin: basic_cleaner
    params:
      drop_nulls: true
      drop_duplicates: true
      convert_types:
        age: numeric
        signup_date: datetime

loaders:
  - plugin: csv_loader
    params:
      path: "${OUTPUT_PATH}/cleaned_customers.csv"

๐Ÿ“š Documentation

For Users

For Developers

For Administrators

๐Ÿ”Œ Plugin Ecosystem

Santiq comes with built-in plugins and supports a growing ecosystem:

Built-in Plugins

  • Extractors: CSV, JSON, Excel files
  • Profilers: Basic data quality analysis
  • Transformers: Data cleaning, validation, type conversion
  • Loaders: CSV, JSON, Excel files

Community Plugins

# Install community plugins
santiq plugin install <plugin_name>
# Community plugins are currently in developement 

# List available plugins
santiq plugin list --available

๐ŸŽฏ Use Cases

Data Quality Assurance

# Profile data and get quality report
santiq run pipeline data-quality.yml --mode manual

Automated Data Processing

# Run with automatic fix application
santiq run pipeline production.yml --mode controlled-auto

Data Migration

# Migrate data between systems
santiq run pipeline migration.yml --mode half-auto

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Extractors    โ”‚    โ”‚    Profilers     โ”‚    โ”‚  Transformers   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚    CSV    โ”‚  โ”‚    โ”‚  โ”‚   Basic    โ”‚  โ”‚    โ”‚  โ”‚  Cleaner  โ”‚  โ”‚
โ”‚  โ”‚  Database โ”‚  โ”‚โ”€โ”€โ”€โ”€โ”ค  โ”‚  Advanced  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”ค  โ”‚   AI Fix  โ”‚  โ”‚
โ”‚  โ”‚    API    โ”‚  โ”‚    โ”‚  โ”‚   Schema   โ”‚  โ”‚    โ”‚  โ”‚  Custom   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                        โ”‚                        โ”‚
         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                  โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚     Santiq Engine       โ”‚
                    โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
                    โ”‚  โ”‚ Plugin Manager  โ”‚    โ”‚
                    โ”‚  โ”‚ Audit Logger    โ”‚    โ”‚
                    โ”‚  โ”‚ Config Manager  โ”‚    โ”‚
                    โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                  โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚       Loaders           โ”‚
                    โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
                    โ”‚  โ”‚      CSV        โ”‚    โ”‚
                    โ”‚  โ”‚     Excel       โ”‚    โ”‚
                    โ”‚  โ”‚     JSON        โ”‚    โ”‚
                    โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ Development

Setting Up Development Environment

git clone https://github.com/yourusername/santiq.git
cd santiq
pip install -e ".[dev]"
pre-commit install

Running Tests

pytest
pytest --cov=santiq tests/  # With coverage

Creating a Plugin

See Plugin Development Guide for detailed instructions.

๐Ÿค Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Ways to Contribute

  • ๐Ÿ› Report Bugs: Create detailed issue reports
  • ๐Ÿ’ก Suggest Features: Propose new functionality
  • ๐Ÿ”ง Submit Code: Fix bugs or add features
  • ๐Ÿ“š Improve Docs: Help make documentation better
  • ๐Ÿ”Œ Create Plugins: Build plugins for new data sources

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built with Pandas for data manipulation
  • Powered by Typer for CLI
  • Styled with Rich for beautiful output
  • Validated with Pydantic for data validation

Made with โค๏ธ by the Santiq Community

GitHub โ€ข Issues โ€ข Discussions

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

santiq-0.1.5.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

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

santiq-0.1.5-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

Details for the file santiq-0.1.5.tar.gz.

File metadata

  • Download URL: santiq-0.1.5.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for santiq-0.1.5.tar.gz
Algorithm Hash digest
SHA256 9a826a52587b6e3b956ea0639cdf0e220f085ffb336456a5d912111c735900a3
MD5 b80d5cb5842294a860fdf259d6c6342b
BLAKE2b-256 d05afd07f2d99e9c7a5c123267acba19bbadd1cd39fb4becef81d4d76e31687c

See more details on using hashes here.

File details

Details for the file santiq-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: santiq-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for santiq-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d68809a9c91535db7cf0d16380633144b16776496a49dc1267d48d6f422ceaa0
MD5 d4890c070b20f8128d274444786d97f5
BLAKE2b-256 2a678fac0de4677d494bf41133a3371cfb52920ba8a0fda63df1b71ef771e7b7

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