15 сентября 2026, 11:37
В ClickHouse появились функции для работы с ИИ прямо из SQL

Команда ClickHouse представила набор встроенных ИИ-функций, которые позволяют вызывать большие языковые модели (LLM) и сервисы для создания векторных представлений непосредственно из SQL-запросов. Теперь операции вроде классификации текста, извлечения данных, перевода или генерации можно выполнять внутри базы данных, где уже хранятся исходные данные.
Новые возможности находятся в стадии бета-тестирования. Они появлялись постепенно в нескольких версиях ClickHouse: сначала были добавлены функции для генерации, классификации, извлечения и перевода текста, затем — разработка эмбеддингов, фильтрация, скрытие персональных данных и оценка смысловой близости текстов.
ИИ-функции вместо отдельного конвейера обработки данных
Обычно сценарий с LLM выглядит так: информация выгружаются из базы, передаются во внешний служба или отдельный пайплайн обработки, результаты сохраняются обратно. Такой подход требует дополнительной инфраструктуры и усложняет поддержку.
В ClickHouse предлагают другой вариант: перенести модель ближе к данным. Поскольку ClickHouse уже умеет хранить информация и функционировать с векторами, цельный цикл для задач с генерацией с дополнением контекста (RAG) можно выполнять в одной системе — без отдельной векторной базы и дополнительных слоёв оркестрации.
Например, классификацию текста теперь можно выполнить обычным SQL-запросом:
SELECT aiClassify( 'I love this product!', ['positive', 'negative', 'neutral'] );
В ответ ClickHouse вернёт одну из заданных категорий:
positive
Какие функции доступны
В версии 26.8 доступны следующие функции для работы с текстом:
aiClassify— классифицирует текст по заданным категориям;aiExtract— извлекает структурированные информация из неструктурированного текста;aiGenerate— генерирует текст по заданному запросу;aiTranslate— переводит текст на указанный язык;aiFilter— проверяет текст по условию на естественном языке и возвращает логическое значение;aiRedact— находит и скрывает персональные информация в тексте.
Для работы с векторами добавлены:
aiEmbed— создаёт векторное представление текста;aiSimilarity— оценивает смысловое сходство двух текстов.
Функции вызывают программный интерфейс выбранного ИИ-провайдера и возвращают итог в формате, который можно использовать как обычное значение ClickHouse.
Аналитика данных без отдельного кода
В качестве примера авторы использовали набор данных Hacker News с миллионами публикаций и комментариев.
С помощью aiClassify можно автоматически распределить записи по темам:
SELECT title, aiClassify( title, ['space', 'security', 'databases', 'startups', 'programming', 'other'] ) AS topic FROM hackernews;
Итог можно дальше обрабатывать обычными SQL-операциями: группировать, фильтровать и строить агрегаты.
Раньше подобная задача обычно требовала отдельного скрипта: выгрузить данные, отправить их в модель, обработать ответ и загрузить результаты обратно. Теперь часть таких сценариев можно выполнять непосредственно в запросах ClickHouse.
RAG-цикл внутри ClickHouse
Новые функции равным образом позволяют реализовать основные этапы RAG-подхода в одной системе:
Создать эмбеддинги при загрузке данных с помощью
aiEmbed().Хранить тексты и векторные представления рядом.
Индексировать данные для поиска по близости.
Выполнять поиск похожих объектов.
Передавать найденный контекст в
aiGenerate()для генерации ответа.
Одновременно aiSimilarity() подходит для более простых задач — например, поиска похожих документов или удаления дублей по смыслу.
Контроль расходов на запросы к моделям
В отличие от обычных функций ClickHouse, вызовы ИИ-моделей имеют стоимость в токенах и зависят от количества обращений к внешнему сервису.
Чтобы избежать неожиданных расходов, авторы добавили ограничения на использование ИИ-функций:
максимальное количество входных токенов на запрос;
максимальное количество выходных токенов;
максимальное количество обращений к api модели.
В частности, можно ограничить число вызовов модели:
SELECT title, aiClassify(title, ['space', 'security', 'databases']) FROM hackernews LIMIT 5000 SETTINGS ai_function_max_api_calls_per_query = 100;
Это даёт возможность контролировать расходы при обработке больших объёмов данных.
Что учитывать перед использованием в продакшене
Разработчики отдельно отмечают несколько ограничений:
результаты работы модели могут отличаться при повторных запусках одного и того же запроса;
стоимость и время выполнения растут вместе с количеством обрабатываемых строк;
входные данные для модели требуют осторожного обращения в связи с риска prompt injection;
провайдер модели получает данные после завершения TLS-шифрования, следовательно важно учитывать требования безопасности.
Для рабочих сценариев рекомендуется сначала запускать запросы на небольших объёмах данных и применять ограничения по квотам.
Новые ИИ-функции превращают ClickHouse из аналитической базы данных в средство, где часть задач машинной обработки текста и работы с LLM можно выполнять прямо на уровне SQL.
Подборка бесплатных уроков по разработке, работе с ИИ и БД от преподавателей Otus на сентябрь уже доступна в дайджесте.
Продолжить читать


