Спрашивайте свою базу PostgreSQL словами, без SQL
Подключите PostgreSQL к ИИ-агенту: список таблиц, колонки и типы, связи и данные. Агент ответит на вопрос по базе аналитическим SELECT без вашего SQL.
Как агент работает с PostgreSQL
Агент подключается к базе напрямую по параметрам — хост, порт, имя базы, пользователь, пароль и режим SSL — и начинает с обзора схемы: список таблиц, их колонки и типы. Дальше SQL он пишет сам: считает выручку, средний чек и конверсию, сопоставляет строки с данными других подключённых сервисов и показывает, из каких таблиц и колонок взята каждая цифра. Тот же запрос можно поставить на расписание и получать результат регулярно.
Особенность именно PostgreSQL, которую агент учитывает: роль с pg_read_all_data не обходит row-level security. Таблица под RLS без политики SELECT вернёт ноль строк — и это не «данных нет», а «доступа нет», о чём агент говорит прямо. Так же он читает и пустой результат обычного запроса: сначала проверяет, есть ли строки вообще, и только потом называет цифру нулём. Схему агент перечитывает перед разбором, поэтому переименованная колонка или новая таблица подхватываются без переподключения.
На запись агент в базу не ходит: коннектор пропускает только SELECT, WITH, SHOW и EXPLAIN, по одному запросу за вызов и с лимитом строк, а INSERT, UPDATE и любые DDL отклоняет до отправки в базу. Это устройство самого коннектора, а не настройка, которую можно снять из чата, поэтому подключение остаётся аналитическим по природе: агент читает, считает и объясняет, из чего сложился результат, но ничего в базе не меняет.
Доступ агент получает не входом через сервис, а логином и паролем отдельной роли, поэтому его границы задаёте вы: агент видит ровно то, что видит эта роль, и расширить их из чата нельзя. Каждый запрос коннектор ограничивает по времени и по числу строк, а слишком тяжёлый обрывает по таймауту, вместо того чтобы висеть на рабочей базе. Если таблицы нет или права не дают её прочитать, агент скажет об этом прямо, а не покажет пустую таблицу.
Сценарии интеграции
Вопрос к базе без SQL
Агент сам разберёт схему — таблицы, колонки и связи — и ответит на вопрос по данным, не требуя от вас ни строчки SQL.
Метрики прямо в базе
Агент посчитает выручку, средний чек и конверсию запросом к вашей базе и покажет, из каких таблиц и колонок взяты цифры.
Регулярная сводка по данным
Агент по расписанию прогонит один и тот же запрос — вчерашние продажи или всплеск отказов — и пришлёт результат.
Сверка с внешними сервисами
Агент сопоставит строки вашей базы с данными подключённых сервисов и покажет расхождения по заказам или платежам.
Что вообще лежит в базе
Агент перечислит таблицы, колонки и типы и объяснит, где какие данные лежат, — первое, что нужно на входе в чужую или давно забытую базу.
Разбор тяжёлого запроса
Агент прогонит EXPLAIN по нужному запросу и покажет, где план уходит в полный перебор таблицы, — до того, как отчёт снова упрётся в таймаут.
Примеры: PostgreSQL
Средний чек за июнь — 4 380 ₽, на 6% выше мая.
Взял из orders и order_items, оплаченные статусы, 12 940 заказов. Отменённые и тестовые исключил — без них картина ровнее на 200 ₽.
Ассистент может ошибаться — проверяйте его работу
Отчёт упирается в полный перебор orders — планировщик ждёт 4,1 млн строк за проход.
- План уходит в Seq Scan: индекса по дате создания заказа нет
- Соединение с order_items строится хешем поверх той же выборки, поэтому цена растёт вместе с ней
- На пробном прогоне запрос упёрся в таймаут раньше, чем вернул первую строку
Смотрел планом, самого запроса не выполнял. Индекс я не заведу: коннектор работает только на чтение, изменения схемы отклоняются до отправки в базу. Оценка строк — из статистики планировщика, а она расходится с фактом, если её давно не пересобирали.
Ассистент может ошибаться — проверяйте его работу
Как подключить
Перед подключением
- Права владельца базы или суперпользователя для SQL-консоли
- PostgreSQL 14 или новее — иначе права выдаются вручную
- Поддержка SSL: подключение идёт в режиме require
- 1
Создайте роль только на чтение
В «SQL Editor» Supabase или Neon, иначе в psql под владельцем: CREATE ROLE analytics_ro LOGIN PASSWORD '…'. Пароль роли станет паролем подключения.
- 2
Выдайте роли право читать данные
GRANT pg_read_all_data TO analytics_ro. Встроенная роль есть с PostgreSQL 14; на старых версиях — GRANT USAGE, GRANT SELECT и ALTER DEFAULT PRIVILEGES.
- 3
Проверьте row-level security
pg_read_all_data не обходит row-level security, а в Supabase она включена почти везде: без политики SELECT такие таблицы вернут ноль строк.
- 4
Откройте базу для внешних подключений
Хост должен быть доступен из интернета: Yandex Managed PostgreSQL — публичный доступ и TCP 6432, RDS — «Publicly accessible: Yes» и порт 5432.
- 5
Соберите параметры подключения
Хост, порт и имя базы: кнопка «Connect» в Supabase и Neon, у Yandex — FQDN хоста и порт 6432. Режим SSL — require.
Частые вопросы
Параметрами подключения, а не входом через сервис: хост, порт, имя базы, пользователь, пароль и режим SSL. Заведите роль только на чтение — CREATE ROLE analytics_ro LOGIN PASSWORD и GRANT pg_read_all_data, — её логин и пароль и вводятся в форме.
Список таблиц, колонки и типы и результаты SELECT в пределах прав роли. Роль pg_read_all_data не обходит row-level security: таблицы под RLS без политики SELECT вернут ноль строк.
Нет. Разрешены только SELECT, WITH, SHOW и EXPLAIN, по одному запросу за вызов и с лимитом строк — INSERT, UPDATE и любые DDL коннектор отклоняет.
Хост должен быть доступен из интернета: в Yandex Managed PostgreSQL включите публичный доступ и откройте TCP 6432, в RDS — publicly accessible и правило на 5432. Supabase и Neon открыты сразу.