SQL Агент
Об агенте
SQL Агент – это один из компонентов сервиса Visiology Cortex, предназначенный для генерации SQL-преобразований данных с помощью обычных текстовых запросов. Пользователь описывает желаемую трансформацию на естественном языке, а агент автоматически формирует корректный SQL-код и предлагает его для применения в качестве шага ETL-преобразования.
Аналитикам не нужно вручную писать сложные SQL-запросы для операций в случаях, когда стандартных кнопок Self-Service ETL недостаточно: CASE WHEN, оконные функции, PIVOT/UNPIVOT, сложные JOIN, разбор строк (split) и т.д. – достаточно описать задачу словами, и SQL Агент сам сгенерирует нужный код.
Агент работает на уровне подготовки данных. Он учитывает схему текущей таблицы (DDL), корректно сопоставляет русскоязычные описания с реальными названиями колонок и никогда не выдумывает несуществующие.
Возможности агента
SQL Агент помогает на всех этапах работы с данными:
Генерация SQL по описанию – опишите трансформацию словами, агент создаст готовый SQL-запрос.
Исправление некорректного SQL – если запрос не работает или возвращает неправильные данные, попросите агента исправить его.
Объяснение SQL – получите понятное описание того, что делает готовый SQL-запрос (полезно, когда вы разбираете чужой код).
Работа с англоязычными колонками – описывайте задачу на русском, агент сам сопоставит её с реальными именами колонок.
Конвертация кода – преобразуйте код Power Query M в SQL, а также переводите запросы между разными диалектами SQL (например, из MS SQL в PostgreSQL).
Агент поддерживает генерацию только SELECT-запросов (безопасные операции чтения и преобразования данных).
Работа с агентом
Для того чтобы воспользоваться SQL Агентом, необходимо выполнить следующие шаги:
Откройте дизайнер дашбордов и выберите требуемый дашборд или набор данных. В нашем примере мы открыли набор данных:
В боковой панели платформы нажмите Cortex:
В открывшемся окне перейдите на вкладку SQL:
В верхней панели окна платформы нажмите Преобразование данных:
В открывшемся окне нажмите кнопку Данные и выберите новый или существующий источник данных:
Мы загрузили таблицу “Клиенты“:
В поле ввода окна Cortex напишите запрос на естественном языке и нажмите кнопку Отправить. Например: «Разбей столбец "ФИО" на три отдельных столбца: Фамилия, Имя, Отчество. Разделитель – пробел.»:
Агент проанализирует запрос, сгенерирует SQL-код и отобразит его для предварительного просмотра. Перед выдачей результата агент проверяет корректность SQL-кода:
После получения результата вы можете:
Применить его как шаг ETL-преобразования, нажав Применить SQL.
Уточнить запрос и отправить его снова для итеративной доработки.
Попросить агента объяснить SQL, если вы не до конца понимаете, что он делает.
Попросить исправить некорректный SQL, если что-то пошло не так.
Мы нажали Применить SQL и получили следующий результат:
Для добавления преобразованной таблицы в модель данных нажмите кнопку Добавить запрос.
Редактирование запроса
При необходимости вы можете отредактировать полученный шаг ETL-преобразования. Для этого выполните следующие шаги:
Наведите на него курсор мыши и нажмите кнопку с изображением карандаша:
В открывшемся окне вы можете изменить SQL-запрос одним из двух способов:
Ручное редактирование – внесите правки непосредственно в текст запроса.
Использование SQL Агента – нажмите кнопку SQL в правом верхнем углу. Откроется стандартное окно агента, где можно описать нужные изменения – агент автоматически скорректирует запрос:
Примеры запросов
Что вы хотите сделать | Пример запроса |
|---|---|
Условная колонка | «Добавь колонку "Категория", которая будет содержать слово "Высокие", если значение колонки "Продажи" больше 100 000, "Средние" – если значение от 50 000 до 100 000 включительно, и "Низкие" – если значение меньше 50 000.» |
Разбор строки | «Разбей столбец "Дата_время" на отдельные колонки: дата (в формате ГГГГ-ММ-ДД) и время (ЧЧ:ММ).» |
Оконная функция | «Для каждого продавца посчитай его долю продаж в общем объёме по региону. Результат округли до 2 знаков.» |
PIVOT / UNPIVOT | «Разверни строки из столбца "Месяц" в отдельные колонки для каждого месяца, значениями будут суммы продаж.» |
Объяснение SQL | «Объясни, что делает этот запрос: SELECT region, AVG(sales) FROM t GROUP BY region» |
Исправление SQL | «Мой запрос не работает: SELECT * FROM orders WHERE date > '2024-01-01'. Ошибка: column "date" does not exist. Исправь, пожалуйста.» |
Ограничения и особенности
При работе с SQL Агентом следует учитывать ряд ограничений и особенностей:
Зависимость качества SQL от именования в БД заказчика
В текущей версии (MVP) агент не использует семантический слой. Качество генерируемого SQL напрямую зависит от того, насколько понятно и однозначно названы таблицы и колонки в исходной базе данных. Пользователям рекомендуется поддерживать осмысленные имена (например,sales_amount, а неcol1), а в запросах к агенту указывать точные названия полей, если они отличаются от интуитивно ожидаемых.Генерация запросов
Агент обучен генерироватьSELECT-запросы (чтение и преобразование данных).
Смотрите также
На этой странице
Время чтения: 2 мин.
Нужна дополнительная помощь?