Skip to main content

🧩 Безопасная вставка SELECT-запросов в ClickHouse с валидацией схемы

Project description

🚀 Insert Tools

🔗 GitHub: castengine/insert-tools Python License

Проблема:

Вы сталкивались с проблемами при вставке данных в базы данных? Постоянные ошибки соответствия схем, неправильные типы данных, потеря времени на ручные проверки и риск случайного повреждения данных — всё это знакомо каждому, кто регулярно работает с большими 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

insert_tools-1.0.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

insert_tools-1.0.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for insert_tools-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a7e0e6a9555e6ba9425db265598429499d6c754a933ec88d9020963bcd8dc0d2
MD5 de589b50a7d92dc1be59075c086babdd
BLAKE2b-256 404a8005394fbea7894fd2e1fe45998a3a25de7e0c60cdfe23882356a297038e

See more details on using hashes here.

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

Hashes for insert_tools-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab63b583f46a3e6359f159ee795ff10dde5706f21554597d06002651b1e00e7f
MD5 3b0352ea6287fa0bd4e4884f7d836c7c
BLAKE2b-256 bf9831c77966a3d479a7a75378f02122603228c12ec53b7becd02832636a1bb4

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