Стандартный анализ данных в Excel хорош для простых вопросов: “Какова выручка за месяц?” или “Топ-5 товаров”. Но что если вам нужен сложный анализ: “Какие регионы растут быстрее всех в последний квартал, исключая выбросы?” Здесь нужен SQL, но не каждый умеет его писать. Pro режим аналитики решает эту проблему: вы задаёте вопрос на русском, ИИ пишет SQL, и вы получаете точный ответ. Разберёмся, как это работает.
Традиционный анализ vs Pro режим
Традиционный подход (статистический анализ)
Excel файл (продажи):
Дата | Товар | Регион | Сумма
01.01 | A | Москва | 10000
01.01 | B | СПб | 5000
...
Стандартный анализ (Excel):
- Сумма выручки: 1.5M (используется SUM)
- Средняя сумма заказа: 15000 (используется AVERAGE)
- Максимальный заказ: 100000 (используется MAX)
- Самый популярный товар: A (используется MODE или COUNTIF)
Результат: базовая статистика, но нет глубины
Pro режим (SQL агент)
Вопрос: "Какие регионы показали рост выручки
> 20% в апреле по сравнению с марте? Исключи Москву."
SQL запрос (написан ИИ автоматически):
SELECT
march.region,
SUM(march.amount) as march_total,
SUM(april.amount) as april_total,
ROUND(100.0 * (SUM(april.amount) - SUM(march.amount)) /
SUM(march.amount), 2) as growth_percent
FROM sales march
JOIN sales april
ON march.region = april.region
WHERE march.month = 3 AND april.month = 4
AND march.region != 'Москва'
GROUP BY march.region
HAVING growth_percent > 20
ORDER BY growth_percent DESC
Результат: точный анализ с выявлением растущих регионов
Архитектура Pro режима
Компоненты системы
-
Загрузчик данных (DuckDB):
- Загружает Excel в памяти в виде SQL таблиц
- DuckDB — это встроенная база данных, не нужен отдельный сервер
- Скорость: даже 100K строк обрабатываются за миллисекунды
-
SQL агент (Claude tool_use):
- Получает вопрос на русском языке
- Анализирует структуру данных (какие столбцы есть, типы)
- Пишет SQL запрос самостоятельно
- Может пересчитать и уточнить запрос, если нужно
-
Executor (безопасное выполнение):
- Запускает SQL запрос с ограничениями:
- Только SELECT (не DELETE, UPDATE)
- Блокированы опасные команды
- Таймаут: запрос не может работать > 30 сек
- Возвращает результаты
- Запускает SQL запрос с ограничениями:
-
Интерпретатор результатов:
- ИИ переводит результаты SQL в понятные выводы
- Генерирует графики
- Оформляет в отчёт
Процесс в диаграмме
┌──────────────┐
│ Excel файл │
│ (200K строк) │
└──────┬───────┘
│
v
┌──────────────────────┐
│ Загрузка в DuckDB │
│ (создаёт таблицы) │
└──────┬───────────────┘
│ Вопрос: "Топ регионы по выручке?"
v
┌──────────────────────┐
│ SQL агент (Claude) │
│ Анализирует схему │
│ Пишет SQL запрос │
└──────┬───────────────┘
│
v SELECT region, SUM(amount) ...
┌──────────────────────┐
│ DuckDB executor │
│ Выполняет запрос │
│ (< 1 сек для 200K) │
└──────┬───────────────┘
│ Результат: таблица 10x2 (10 регионов + суммы)
v
┌──────────────────────┐
│ Интерпретатор │
│ Пишет выводы │
│ Создаёт графики │
└──────┬───────────────┘
│
v
┌──────────────────────┐
│ Готовый отчёт │
│ (таблица + график) │
└──────────────────────┘
Как ИИ пишет SQL запросы
Шаг 1: Анализ схемы данных
Система показывает агенту структуру таблицы:
Таблица "sales" содержит:
- id (INTEGER) - уникальный ID
- date (DATE) - дата продажи
- product_name (TEXT) - название товара
- category (TEXT) - категория товара
- region (TEXT) - регион
- quantity (INTEGER) - количество
- unit_price (NUMERIC) - цена за единицу
- total_amount (NUMERIC) - сумма
- manager_id (INTEGER) - ID менеджера
- is_returned (BOOLEAN) - возвращён ли товар
Пример строк:
1, 2026-04-01, Товар A, Электроника, Москва, 5, 1000, 5000, 101, false
2, 2026-04-01, Товар B, Мебель, СПб, 2, 50000, 100000, 102, false
Шаг 2: Интерпретация вопроса
Вопрос: “Какие товары в категории ‘Электроника’ наиболее популярны в Москве?”
Агент понимает:
- WHERE clause: category = ‘Электроника’ AND region = ‘Москва’
- SELECT: product_name и какой-то метрика популярности (COUNT или SUM quantity)
- ORDER BY: по убыванию популярности
- LIMIT: топ-N
Шаг 3: Формирование SQL
SELECT
product_name,
COUNT(*) as order_count,
SUM(quantity) as total_quantity,
SUM(total_amount) as total_revenue
FROM sales
WHERE category = 'Электроника'
AND region = 'Москва'
AND is_returned = false
GROUP BY product_name
ORDER BY total_quantity DESC
LIMIT 10
Шаг 4: Выполнение и интерпретация
Результат SQL:
product_name | order_count | total_quantity | total_revenue
Товар A | 25 | 125 | 125000
Товар B | 18 | 90 | 90000
Товар C | 12 | 60 | 60000
Агент пишет вывод: “В категории Электроника в Москве самый популярный Товар A (125 единиц, 125K выручки). За ним следует Товар B (90 ед, 90K). На эти два товара приходится 71% всех продаж категории в регионе.”
Примеры сложных вопросов, которые решает Pro режим
Пример 1: Анализ с условиями
Вопрос: “Какой регион показал самый быстрый рост выручки за последние 3 месяца?”
SQL (написан ИИ):
WITH monthly_revenue AS (
SELECT
region,
DATE_TRUNC('month', date) as month,
SUM(total_amount) as monthly_total
FROM sales
WHERE date >= NOW() - INTERVAL '3 months'
GROUP BY region, DATE_TRUNC('month', date)
),
growth AS (
SELECT
region,
LAG(monthly_total) OVER (PARTITION BY region ORDER BY month) as prev_month,
monthly_total as curr_month,
ROUND(100 * (monthly_total - LAG(monthly_total)
OVER (PARTITION BY region ORDER BY month)) /
LAG(monthly_total) OVER (PARTITION BY region ORDER BY month), 2) as growth_percent
FROM monthly_revenue
)
SELECT region, AVG(growth_percent) as avg_growth
FROM growth
GROUP BY region
ORDER BY avg_growth DESC
LIMIT 1
Результат: “Регион X показал среднегодовой рост 25% в последние 3 месяца”
Пример 2: Выявление аномалий
Вопрос: “Найди товары, которые продаются странно: их выручка выше обычного более чем на 50% в этом месяце”
SQL (написан ИИ):
WITH monthly_average AS (
SELECT
product_name,
AVG(SUM(total_amount)) as avg_monthly_revenue
FROM sales
WHERE date < DATE('2026-04-01')
GROUP BY product_name, DATE_TRUNC('month', date)
),
current_month AS (
SELECT
product_name,
SUM(total_amount) as current_revenue
FROM sales
WHERE DATE_TRUNC('month', date) = DATE('2026-04-01')
GROUP BY product_name
)
SELECT
c.product_name,
m.avg_monthly_revenue,
c.current_revenue,
ROUND(100 * (c.current_revenue - m.avg_monthly_revenue) / m.avg_monthly_revenue, 2) as anomaly_percent
FROM current_month c
JOIN monthly_average m ON c.product_name = m.product_name
WHERE c.current_revenue > m.avg_monthly_revenue * 1.5
ORDER BY anomaly_percent DESC
Результат: “Товар Y — аномально высокие продажи (+75%), возможно скопились заказы или ошибка в данных”
Пример 3: Анализ поведения клиентов
Вопрос: “Какие менеджеры работают с самыми дорогими товарами и как долго они удерживают клиентов?”
SQL (написан ИИ):
WITH manager_stats AS (
SELECT
manager_id,
AVG(total_amount) as avg_deal_value,
COUNT(DISTINCT customer_id) as customer_count,
MAX(date) - MIN(date) as tenure_days
FROM sales
GROUP BY manager_id
)
SELECT
manager_id,
ROUND(avg_deal_value, 2) as avg_deal,
customer_count,
tenure_days,
ROUND(customer_count / (tenure_days + 1) * 365, 2) as customers_per_year
FROM manager_stats
ORDER BY avg_deal DESC
Результат: “Менеджер 101 работает с самыми дорогими сделками (средний чек 25K), при этом удерживает среднего клиента 180 дней”
Безопасность и ограничения
Что может делать Pro режим
- ✓ SELECT с любыми условиями
- ✓ JOIN таблицы (если есть связь)
- ✓ Агрегирующие функции (SUM, COUNT, AVG и т.д.)
- ✓ Сортировка, группировка, фильтрация
- ✓ Подзапросы и CTE (WITH … AS)
- ✓ Временные функции (DATE_TRUNC, NOW и т.д.)
- ✓ Строковые функции (UPPER, LOWER, SUBSTRING и т.д.)
Что нельзя делать (ограничено)
- ✗ DELETE, UPDATE, INSERT (только SELECT)
- ✗ DROP TABLE (удалить таблицу)
- ✗ EXEC, EVAL (исполнить код)
- ✗ Большие JOINS на миллион строк (будет заблокирован таймаутом)
- ✗ Обращение к системным переменным
- ✗ Запросы дольше 30 сек
Уровни доступа
В реальных системах Pro режим может работать с разными уровнями доступа:
| Уровень | Доступ | Примеры |
|---|---|---|
| Public | Только агрегированные данные | ”Всего выручка за месяц” |
| Team | Данные своего отдела | Менеджер видит только свои сделки |
| Admin | Все данные | Финансовый директор видит всё |
Когда Pro режим экономит больше всего времени
Сценарий 1: Аналитик без SQL знаний
Без Pro режима:
- “Покажи выручку по товарам за последний месяц” → просит SQL-специалиста → ждёт → получает результат → час потеряно
С Pro режимом:
- Загружает Excel, задаёт вопрос на русском → система напрямую генерирует отчёт → 5 минут
Экономия: 55 минут на запрос
Сценарий 2: Быстрые ad-hoc запросы
Без Pro режима:
- Руководитель просит “Кто мой топ-5 клиентов за последний квартал?” → нужно создавать отчёт → 2-3 часа
С Pro режимом:
- Аналитик вводит вопрос → 3 минуты → готов отчёт
Экономия: 2 часа 55 минут на запрос
Сценарий 3: Исследовательский анализ
Без Pro режима:
- “Давайте посмотрим, как меняется поведение клиентов” → нужно написать 5-10 разных запросов → день работы
С Pro режимом:
- Задаёт несколько вопросов через интерфейс → каждый ответ за 5 минут → день исследования ≈ несколько часов
Экономия: 6+ часов на день исследования
Настройка Pro режима для вашего датасета
Шаг 1: Подготовка данных
Хорошие данные для Pro режима:
- ✓ Чистые названия столбцов (region, не "Рег" или "Р")
- ✓ Правильные типы данных (дата — DATE, не TEXT)
- ✓ Нет пропусков в ключевых столбцах
- ✓ Уникальные ID для сущностей
Шаг 2: Описание контекста
Система лучше работает если вы объясняете данные:
Таблица продаж содержит:
- Заказы наших клиентов
- Включает только завершённые транзакции (не возвраты)
- Менеджер ID связан с таблицей employees
- Дата в формате YYYY-MM-DD
Шаг 3: Примеры хороших вопросов
- “Какая категория товаров приносит больше всего выручки?”
- “Какие менеджеры показывают лучший результат по среднему чеку?”
- “Какой регион растёт быстрее всех?”
- “Найди товары с самым высоким retention клиентов”
Ограничения Pro режима
Когда он работает плохо:
- Очень большие файлы (> 1GB): DuckDB загрузит, но запросы будут медленными
- Сложные вопросы требующие контекста: “Какие клиенты уходят?” нужно определить, что значит “уход”
- Когда ИИ галлюцинирует: может ошибиться в интерпретации вопроса
- Нестандартные данные: если столбцы непонятны (col_1, col_2 вместо normal names)
Как справиться:
- Дайте системе контекст и примеры
- Задавайте конкретные вопросы вместо расплывчатых
- Проверяйте результаты (сравнивайте с ручным подсчётом первый раз)
- Если система ошибается, переформулируйте вопрос точнее
Практический пример: используем Pro режим в AI Reports
Допустим, вы загружаете файл с продажами на AI Reports и включаете Pro режим:
1. Система загружает Excel в DuckDB
2. Вы видите интерфейс с вопросами
3. Задаёте: "Какие товары в категории 'Электроника'
наиболее популярны в Москве последний месяц?"
4. Система за 2-3 сек:
- Пишет SQL (SELECT ... WHERE category='Электроника' ...)
- Выполняет запрос
- Получает результат (таблица 5x3)
- Генерирует столбчатую диаграмму
- Пишет вывод: "Товар A лидирует (150 ед, 150K выручки)..."
5. Вы получаете готовый отчёт в Word/PDF
Всё это за 5 минут вместо часа ручного анализа.
Заключение
Pro режим аналитики — это революция для тех, кто работает с данными но не владеет SQL:
- Сложные вопросы теперь можно задавать на русском
- Точный анализ без статистических приближений
- Скорость — от часов к минутам
- Доступность — не нужен SQL-специалист
Это особенно полезно для:
- Аналитиков без технической подготовки
- Быстрых ad-hoc запросов и исследований
- Исследовательского анализа данных
- Работы с большими датасетами где ручной подсчёт невозможен
Минусы:
- Может работать неправильно на очень нестандартных данных
- Требует чистого датасета с нормальными названиями столбцов
- Всё ещё нужно проверять результаты (ИИ может ошибиться)
Но в целом, это инструмент, который экономит часы работы каждый день для аналитиков и бизнес-пользователей, не требуя от них навыков программирования.