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 santiq-plugin-postgres
santiq plugin install santiq-plugin-elasticsearch

# 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.3.tar.gz (34.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.3-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: santiq-0.1.3.tar.gz
  • Upload date:
  • Size: 34.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.3.tar.gz
Algorithm Hash digest
SHA256 d4ec25272305e4fecc55cc99f1af91321f39163250a76e847f289388180bdabe
MD5 c4989caa72a374018b0c0faa5e2984ad
BLAKE2b-256 4b81687080ea6880f3f3e5fef34a75eca71a295b8879156aafa12e19a7b0afc5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: santiq-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 42.5 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 84353bd8df9bb24483881b475afe7beddc463a56df914b61848b1931e9849db2
MD5 3889939500c3d5fc15c92c1e6350ed4d
BLAKE2b-256 67784a457d70daeabc5d14bbb25e9bee71778eda7ccf5a562cccd46153c756b6

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