SQL Агент

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 Агентом, необходимо выполнить следующие шаги:

  1. Откройте дизайнер дашбордов и выберите требуемый дашборд или набор данных. В нашем примере мы открыли набор данных:

    dataset.png
  2. В боковой панели платформы нажмите Cortex:

    button.png

     

  3. В открывшемся окне перейдите на вкладку SQL:

    sql.png

     

  4. В верхней панели окна платформы нажмите Преобразование данных:

    change-data.png

     

  5. В открывшемся окне нажмите кнопку Данные и выберите новый или существующий источник данных:

    new-existing.png

     

  6. Мы загрузили таблицу “Клиенты“:

    table.png

     

  7. В поле ввода окна Cortex напишите запрос на естественном языке и нажмите кнопку Отправить. Например: «Разбей столбец "ФИО" на три отдельных столбца: Фамилия, Имя, Отчество. Разделитель – пробел.»:

    request.png

     

  8. Агент проанализирует запрос, сгенерирует SQL-код и отобразит его для предварительного просмотра. Перед выдачей результата агент проверяет корректность SQL-кода:

    result.png

    После получения результата вы можете:

    • Применить его как шаг ETL-преобразования, нажав Применить SQL.

    • Уточнить запрос и отправить его снова для итеративной доработки.

    • Попросить агента объяснить SQL, если вы не до конца понимаете, что он делает.

    • Попросить исправить некорректный SQL, если что-то пошло не так.

  9. Мы нажали Применить SQL и получили следующий результат:

    result2.png

     

  10. Для добавления преобразованной таблицы в модель данных нажмите кнопку Добавить запрос.

Редактирование запроса

При необходимости вы можете отредактировать полученный шаг ETL-преобразования. Для этого выполните следующие шаги:

  1. Наведите на него курсор мыши и нажмите кнопку с изображением карандаша:

    edit-button.png
  2. В открывшемся окне вы можете изменить SQL-запрос одним из двух способов:

    • Ручное редактирование – внесите правки непосредственно в текст запроса.

    • Использование SQL Агента – нажмите кнопку SQL в правом верхнем углу. Откроется стандартное окно агента, где можно описать нужные изменения – агент автоматически скорректирует запрос:

      edit-window.png

Примеры запросов

Что вы хотите сделать

Пример запроса

Что вы хотите сделать

Пример запроса

Условная колонка

«Добавь колонку "Категория", которая будет содержать слово "Высокие", если значение колонки "Продажи" больше 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-запросы (чтение и преобразование данных).


Смотрите также

Visiology Cortex
Преобразование данных (Self-Service ETL)