A lightweight, modular, plugin-first ETL platform
Project description
Santiq
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
- Getting Started Guide - Complete beginner's guide
- User Guide - Comprehensive usage instructions
- Configuration Reference - Pipeline configuration options
- CLI Reference - Command-line interface documentation
For Developers
- Plugin Development Guide - Create custom plugins
- API Reference - Core API documentation
- Plugin Examples - Sample plugin implementations
For Administrators
- Installation Guide - Production deployment
- Configuration Management - Environment setup
- Monitoring & Logging - Audit trails and observability
๐ 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d58836365eadddb25adbb0318300cf82916012ed823a0b52814b894d92853c22
|
|
| MD5 |
99d23b2bc50b225eda11cb98ead48e60
|
|
| BLAKE2b-256 |
f6aad570c1a248a148bff878212280de5e7ed0f4136bc714eda7ee866cb99fcc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d222cadfba3a0746574b740d2b957c51a2b5127f0757edd143b4052a4a0a89ac
|
|
| MD5 |
8bd661e7909a2802b9f4e241121c1259
|
|
| BLAKE2b-256 |
7b1cdd9cf2d4286ffb8852efc913e1186a1a85749aed5400168e8bbfe007ea5b
|