Metadata-Version: 2.4
Name: insert-tools
Version: 1.0.0
Summary: 🧩 Безопасная вставка SELECT-запросов в ClickHouse с валидацией схемы
Author-email: castengine <k.n.gorelov@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/castengine/insert-tools
Project-URL: Issues, https://github.com/castengine/insert-tools/issues
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: clickhouse-connect>=0.6.5
Requires-Dist: pydantic>=1.10.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pyyaml>=6.0

# 🚀 Insert Tools

🔗 [GitHub: castengine/insert-tools](https://github.com/castengine/insert-tools)
![Python](https://img.shields.io/badge/python-3.8%2B-blue)
![License](https://img.shields.io/badge/license-MIT-green)

**Проблема:**

Вы сталкивались с проблемами при вставке данных в базы данных? Постоянные ошибки соответствия схем, неправильные типы данных, потеря времени на ручные проверки и риск случайного повреждения данных — всё это знакомо каждому, кто регулярно работает с большими ETL-процессами и базами данных.

**Решение:**

Insert Tools — это мощный и гибко настраиваемый инструмент, специально разработанный для безопасной и быстрой вставки данных в различные базы данных, начиная с ClickHouse. Он автоматически проверяет соответствие схем по названиям столбцов, выполняет приведение типов данных и позволяет проводить предварительную проверку в режиме dry-run, полностью исключая ошибки перед реальной вставкой данных. Особенно полезен инструмент для крупных ETL-процессов, где важно, чтобы обновления схемы целевой таблицы не приводили к падениям системы.

## 🔥 Почему это стоит попробовать:

- ✅ **Безопасность данных:** Автоматическая проверка схемы данных по именам столбцов перед вставкой.
- ⚙️ **Автоприведение типов:** Легко преобразует данные к нужному типу без вашего вмешательства.
- 🚧 **Dry-run режим:** Тестируйте вставку без рисков.
- 🐳 **Docker-ready:** Простое развертывание и интеграционные тесты в Docker.
- 🔧 **Гибкая настройка:** Полностью контролируемый процесс вставки под ваши задачи.
- 🔥 **Экономия времени:** Забудьте о ручных проверках и ускорьте ваш рабочий процесс.

## 🎯 Ключевые возможности:

- 🖥️ Удобный CLI и Python API.
- 🛡️ Поддержка строгого режима (strict mode) для полного контроля.
- 📌 Детализированные логи и расширенный вывод для диагностики.
- 🔄 Поддержка интеграции с CI/CD процессами.

## 📦 Быстрая установка:

```bash
pip install insert-tools
```

или для разработки:

```bash
pip install -e .[dev]
```

## 🚀 Запуск и примеры:

Использование через CLI:

```bash
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:

```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)
```

## 🧪 Тестирование и интеграция:

```bash
pytest -v --cov=insert_tools tests/
```

Поддержка интеграционных тестов через Docker (см. `docker-compose.yml`).

## 📈 Планы на развитие:

В ближайших планах — поддержка дополнительных популярных баз данных, что сделает Insert Tools универсальным решением для управления ETL-процессами в вашей организации.

## 🤝 Вклад и поддержка проекта:

Ваши идеи, баг-репорты и pull-реквесты всегда приветствуются! Присоединяйтесь к сообществу и помогите сделать инструмент лучше.

> С Insert Tools вставка данных становится простой, быстрой и безопасной. Экономьте время и нервы уже сегодня!

---

**Готовы начать? Установите инструмент прямо сейчас и почувствуйте разницу!**
