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, database outputs

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        โ”‚    โ”‚
                    โ”‚  โ”‚    Database     โ”‚    โ”‚
                    โ”‚  โ”‚   Cloud Storage โ”‚    โ”‚
                    โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ 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.4.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.4-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: santiq-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 3ebe8b828e4cf0e554e7d3dd37823f8c59164edf342df93abfd723c8597efd42
MD5 23ff7c9ee155926455d821cb5404327a
BLAKE2b-256 3a3a167373195d71073d5bf898e5341224eac052020491e2b1da489b5ffd7874

See more details on using hashes here.

File details

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

File metadata

  • Download URL: santiq-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 52.6 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 49d21d30b742406b320a1a76f949a808f0ac2c74f11fbf54d1fcc8a1921c543c
MD5 f61b13cc06fb7d00e8544eae1f31f8b0
BLAKE2b-256 7dd8b4bcb81917a452bd208b0d33bd60bf78ae9f2fb9cde8b626d4104ee8a020

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