Обновить
8K+
2
Руслан@laenij

Студент 4 курса

6,9
Рейтинг
4
Подписчики
Отправить сообщение

Вы абсолютно правы, данные нельзя молча искажать в продакшене, но никакого сознательного умалчивания ошибок в коде нет: замена на NaN - это стандартное базовое поведение библиотеки Pandas при встрече с пустыми ячейками или некорректными форматами, и любой разработчик, использующий этот стек, знаком с такой логикой. Скрипт закрывает стандартную часть автоматизации рутины, и на практике никаких сбоев с типами данных при его работе не возникало. При этом никто не говорит, что автоматизация должна быть слепой панацеей, на которую нужно исключительно опираться - в любом случае финальные данные всегда можно подправить . Но наличие двух подходов в арсенале всегда лучше, чем один. Что касается идеи "надавать менеджеру по шее за халтуру" - всегда существует банальный человеческий фактор, кто-то где-то мог просто не доглядеть в файле, и это нормальный рабочий процесс. Я только учусь, развиваюсь в бэкенде, код открыт, поэтому любые подобные шероховатости с типами или логированием легко дорабатываются и исправляются в следующих коммитах. Это просто локальный, легковесный скрипт для отработки навыков и быстрой подстраховки

Вы правы насчет стандартов в CSV, но на практике менеджеры присылают файлы из Excel, где ломаются переносы строк внутри ячеек, слетают длинные id в непонятный вид вроде 1E+11 или каверкаются даты. Из-за этого плоский формат требует постоянной ручной доработки. Процедура импорта действительно может быть разовой, но перекладывание логики парсинга файлов на сторону СУБД нарушает главный принцип разработки - разделение обязанностей. База должна быстро хранить и отдавать данные, а обрабатывать файлы должно легковесное приложение на Python, не забивая процессор MySQL лишней работой.

Что касается мелких погрешностей в файле: под скриптом стоит библиотека pandas. Если в файле будут пропуски или мелкие косяки, скрипт не упадет, а просто автоматически заменит проблемные места на NaN и спокойно зальет таблицу дальше. Чтобы добиться такой же стабильности внутри хранимой процедуры на SQL, придется писать обработчик ошибок, который займет гораздо больше строчек, чем весь скрипт. В конце концов, это просто еще один готовый вариант автоматизации, который экономит время, и хуже от его наличия не будет.

Спасибо за взгляд из двухтысячных. Ручные манипуляции с CSV ломают структуру данных на первом же текстовом поле, где внутри ячейки окажутся обычные запятые или кавычки. Заставлять Linux-сервер бд тратить процессорное время на парсинг внутри хранимых процедур - значит положить СУБД при росте нагрузок. В 2026 году выполнить pip install и развернуть окружение на Python - это секундная задача для любого бэкендера, библиотеки весят копейки, а утилита работает автономно в фоне по cron без необходимости держать открытым графический интерфейс Excel для работы макросов. инструмент создан для нормальной автоматизации, чтобы инженеры не заставляли менеджеров вручную возиться с форматами. Мне кажется странным, экономить 20мб на легковесных библиотеках

Спасибо за разбор. Безусловно, независимые таблицы-справочники без связей попадут в этот отчет, так как цель инструмента - не заблокировать деплой вслепую, а обратить внимание на структуру, при этом проверка связанных между собой «островов» таблиц, изолированных от основного графа, является отличной идеей для расширения логики, которую уже зафиксировал у себя в планах на доработку. Про временные таблицы замечание справедливое, термин использован некорректно в контексте СУБД, поскольку встроенные Temporary Tables в MySQL живут в рамках сессии и удаляются сами, а в статье имелись в виду статические таблицы, которые создавались руками разработчиков для ручных тестов или бэкапа данных на коленке перед миграцией вроде условных users_backup, которые часто очищают, но забывают дропнуть саму пустую схему. Изначально инструмент создавался для тех, кто проверяет учебные работы, когда нужно массово и быстро прогнать десятки проектов на базовые несостыковки.

Информация

В рейтинге
1 272-й
Откуда
Краснодарский край, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Аналитик по данным
Ведущий
MySQL
Базы данных
SQL