Аналитическое расширение, реализующее базовые алгоритмы машинного обучения в среде PostgreSQL
Мы представляем вашему вниманию доклад о разработке аналитического пакета для реализации базовых алгоритмов машинного обучения непосредственно в среде СУБД PostgreSQL. Тема выступления может показаться не совсем типичной для конференции, посвященной базам данных. Однако современные реалии таковы, что для полноценного анализа данных стандартных инструментов SQL уже недостаточно, и сегодня любая компания, работающая с данными, рано или поздно задаётся вопросом: как начать использовать машинное обучение? Это вполне логичная идея, однако ее реализации в текущем варианте далеки от идеала. Классический подход — выгрузить данные из SQL в Python/R, обработать их, обучить модель, а затем результаты каким-то образом загрузить обратно в базу или использовать отдельно. Этот конвейер порождает четыре фундаментальные проблемы. Первая — перемещение данных: мы тратим время на экспорт/импорт, платим за сетевой трафик. Вторая — безопасность: как только чувствительные данные покидают контур СУБД, мы теряем над ними контроль. Третья — сложность инфраструктуры: нужно поддерживать отдельные сервера для аналитики, управлять версиями библиотек. И четвёртая — временные затраты: время от запроса до получения предсказания может исчисляться секундами. Наш проект предлагает иной путь: мы реализуем алгоритмы машинного обучения там, где данные уже лежат — непосредственно внутри PostgreSQL, на чистом PL/pgSQL используя эффективные алгоритмы вычислений (в частности, градиентный спуск). Это позволяет производить вычисления вблизи данных, обеспечивая безопасность и минимальную задержку.