🧩 Безопасная вставка SELECT-запросов в ClickHouse с валидацией схемы
Project description
🚀 Insert Tools
🔗 GitHub: castengine/insert-tools
Проблема:
Вы сталкивались с проблемами при вставке данных в базы данных? Постоянные ошибки соответствия схем, неправильные типы данных, потеря времени на ручные проверки и риск случайного повреждения данных — всё это знакомо каждому, кто регулярно работает с большими ETL-процессами и базами данных.
Решение:
Insert Tools — это мощный и гибко настраиваемый инструмент, специально разработанный для безопасной и быстрой вставки данных в различные базы данных, начиная с ClickHouse. Он автоматически проверяет соответствие схем по названиям столбцов, выполняет приведение типов данных и позволяет проводить предварительную проверку в режиме dry-run, полностью исключая ошибки перед реальной вставкой данных. Особенно полезен инструмент для крупных ETL-процессов, где важно, чтобы обновления схемы целевой таблицы не приводили к падениям системы.
🔥 Почему это стоит попробовать:
- ✅ Безопасность данных: Автоматическая проверка схемы данных по именам столбцов перед вставкой.
- ⚙️ Автоприведение типов: Легко преобразует данные к нужному типу без вашего вмешательства.
- 🚧 Dry-run режим: Тестируйте вставку без рисков.
- 🐳 Docker-ready: Простое развертывание и интеграционные тесты в Docker.
- 🔧 Гибкая настройка: Полностью контролируемый процесс вставки под ваши задачи.
- 🔥 Экономия времени: Забудьте о ручных проверках и ускорьте ваш рабочий процесс.
🎯 Ключевые возможности:
- 🖥️ Удобный CLI и Python API.
- 🛡️ Поддержка строгого режима (strict mode) для полного контроля.
- 📌 Детализированные логи и расширенный вывод для диагностики.
- 🔄 Поддержка интеграции с CI/CD процессами.
📦 Быстрая установка:
pip install insert-tools
или для разработки:
pip install -e .[dev]
🚀 Запуск и примеры:
Использование через CLI:
insert-tools \
--host localhost \
--port 8123 \
--user default \
--password admin123 \
--database default \
--target_table my_table \
--select_sql "SELECT * FROM source_table" \
--allow_type_cast \
--strict \
--dry-run \
--verbose
Использование через Python:
from insert_tools.runner import InsertConfig, run_insert
config = InsertConfig(
host="localhost",
database="default",
target_table="my_table",
select_sql="SELECT * FROM source_table",
user="default",
password="admin123",
allow_type_cast=True,
strict_column_match=True
)
run_insert(config)
🧪 Тестирование и интеграция:
pytest -v --cov=insert_tools tests/
Поддержка интеграционных тестов через Docker (см. docker-compose.yml).
📈 Планы на развитие:
В ближайших планах — поддержка дополнительных популярных баз данных, что сделает Insert Tools универсальным решением для управления ETL-процессами в вашей организации.
🤝 Вклад и поддержка проекта:
Ваши идеи, баг-репорты и pull-реквесты всегда приветствуются! Присоединяйтесь к сообществу и помогите сделать инструмент лучше.
С Insert Tools вставка данных становится простой, быстрой и безопасной. Экономьте время и нервы уже сегодня!
Готовы начать? Установите инструмент прямо сейчас и почувствуйте разницу!
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 insert_tools-1.0.0.tar.gz.
File metadata
- Download URL: insert_tools-1.0.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7e0e6a9555e6ba9425db265598429499d6c754a933ec88d9020963bcd8dc0d2
|
|
| MD5 |
de589b50a7d92dc1be59075c086babdd
|
|
| BLAKE2b-256 |
404a8005394fbea7894fd2e1fe45998a3a25de7e0c60cdfe23882356a297038e
|
File details
Details for the file insert_tools-1.0.0-py3-none-any.whl.
File metadata
- Download URL: insert_tools-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab63b583f46a3e6359f159ee795ff10dde5706f21554597d06002651b1e00e7f
|
|
| MD5 |
3b0352ea6287fa0bd4e4884f7d836c7c
|
|
| BLAKE2b-256 |
bf9831c77966a3d479a7a75378f02122603228c12ec53b7becd02832636a1bb4
|