Что произошло
Появился инструмент sqlsure, который проверяет SQL-запросы на семантические ошибки до их выполнения. В отличие от обычных валидаторов синтаксиса, он ловит логические проблемы:
- Двойной подсчёт при соединении таблиц (fan-out)
- Суммирование некорректных метрик (например, средних значений)
- Ошибки в ключах соединения
- Утечку конфиденциальных данных
Инструмент уже нашёл реальные ошибки в эталонных наборах данных BIRD и Spider, которые используются для тестирования ИИ-моделей, генерирующих SQL.
Детали
sqlsure работает по простому принципу:
- Вы описываете правила в JSON или используете готовые конфиги из dbt
- Инструмент анализирует текст SQL-запроса без подключения к БД
- Возвращает список нарушений с готовыми исправлениями
Технические особенности:
- Скорость проверки: 0.1 мс на запрос
- Поддержка dbt (использует существующие тесты unique и relationships)
- Работает оффлайн без доступа к данным
- Детерминированные результаты (одинаковые входные данные → одинаковый вывод)
«Проверка 2568 экспертных запросов выявила 45 проблем без ложных срабатываний»
Почему это важно
Типичные проблемы, которые ловит sqlsure:
- Двойной подсчёт — когда JOIN умножает строки, и SUM() даёт неверный результат
- Некорректные агрегации — например, суммирование средних значений
- Ошибки в ключах соединения — JOIN по полям без реальной связи
- Утечки данных — случайный вывод PHI/PII-полей
Для разработчиков ИИ-решений это особенно ценно — инструмент можно встроить в цикл генерации SQL, чтобы автоматически проверять и исправлять запросы перед выполнением.
- В CI/CD для проверки SQL в PR
- В агентах ИИ как этап проверки перед выполнением
- Для аудита существующих запросов
Что дальше
Проект активно развивается с планами по:
- Поддержке Cube и Snowflake Semantic Views
- Интеграции с GitHub Actions и pre-commit
- Созданию UDF для Snowflake Cortex
Уже сейчас sqlsure можно использовать как:
- Библиотеку в Python-проектах
- Сервер для проверки запросов (MCP-совместимый)
- Командную утилиту для аудита
Инструмент особенно полезен командам, которые:
- Работают с генерацией SQL через ИИ
- Хотят избежать ошибок в отчётах
- Заботятся о защите конфиденциальных данных
Источники
- Оригинал: github.com — © github.com