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.2.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.2-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: santiq-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 d58836365eadddb25adbb0318300cf82916012ed823a0b52814b894d92853c22
MD5 99d23b2bc50b225eda11cb98ead48e60
BLAKE2b-256 f6aad570c1a248a148bff878212280de5e7ed0f4136bc714eda7ee866cb99fcc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: santiq-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d222cadfba3a0746574b740d2b957c51a2b5127f0757edd143b4052a4a0a89ac
MD5 8bd661e7909a2802b9f4e241121c1259
BLAKE2b-256 7b1cdd9cf2d4286ffb8852efc913e1186a1a85749aed5400168e8bbfe007ea5b

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