# Создание отчётов

Отчёты предоставляют структурированный способ анализа данных IoT Query через три согласованных представления, основанных на одном SQL-запросе: разбитая на страницы таблица данных, график и интерактивная карта. Используйте отчёты, когда требуется фиксированный, экспортируемый результат, а не свободная панель приборной доски.

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

* **Автоматизация** экономит время за счёт повторного использования запросов и интеграции с BI-инструментами для оперативного обновления.
* **Глубокий анализ** возможен путем объединения, агрегирования и сегментирования данных из нескольких источников.
* **Точность и релевантность** обеспечиваются за счёт работы непосредственно с необработанной, актуальной информацией из базы данных.
* **Интерактивные визуализации** позволяют пользователям динамически исследовать данные, изменяя оси, фильтры и метрики.

Посмотрите это видео, чтобы ознакомиться с созданием отчётов в интерфейсе приложения Dashboard Studio:

{% embed url="<https://youtu.be/o2j96_0gp-w?si=yBE9SrsET6gZa-EN>" %}
Пошаговое создание отчётов в Dashboard Studio
{% endembed %}

## Отчёты против дашбордов

И отчёты, и дашборды выполняют SQL-запросы к вашей базе IoT Query и отображают результаты в виде визуализаций. Ключевое различие заключается в том, как структурированы запросы и вывод:

|                        | Отчёты                                               | Дашборды                                      |
| ---------------------- | ---------------------------------------------------- | --------------------------------------------- |
| SQL-запросы            | Один запрос обслуживает все представления            | Каждый виджет имеет свой собственный запрос   |
| Макет                  | Фиксированный: таблица данных, график, карта локаций | Поле для перетаскивания (drag-and-drop)       |
| Экспорт                | HTML, Excel, PDF                                     | Только JSON-схема                             |
| Сценарий использования | Экспортируемый анализ одного набора данных           | Оперативный мониторинг с несколькими панелями |

Используйте отчёты, когда один набор данных необходимо одновременно просмотреть как таблицу, визуализировать как график и отобразить на карте, или когда результат нужно экспортировать и передать за пределы Dashboard Studio. Используйте дашборды, когда вам нужны несколько независимых визуализаций на одном холсте, например: комбинирование плитки с суммарной статистикой поездки, графика расхода топлива и таблицы посещений зон в одном представлении.

Для подробностей по созданию дашбордов смотрите [Создание дашбордов](https://www.navixy.com/docs/analytics/ru/dashboard-studio/sozdanie-panelei-monitoringa).

## Как создать отчёт

{% stepper %}
{% step %}

### Шаг 1: Откройте редактор отчётов

В левой боковой панели нажмите **Инструменты**, затем выберите **Новый отчёт**.

Dashboard Studio предложит выбрать раздел из вашей общей структуры меню. Выберите существующий раздел или Root, чтобы поместить отчёт на верхний уровень.
{% endstep %}

{% step %}

### Шаг 2: Введите основную информацию

Редактор открывается с двумя полями в верхней части:

* **Заголовок** (обязательно): имя, отображаемое в меню и в заголовках экспорта.
* **Описание** (необязательно): дополнительный контекст, видимый в редакторе.
  {% endstep %}

{% step %}

### Шаг 3: Напишите SQL-запрос

1. Нажмите на вкладку **SQL Query** и введите оператор SELECT в отношении таблиц IoT Query. Запрос определяет все три компонента (таблицу, график и карту), поэтому включите каждый столбец, который вы планируете использовать во всех представлениях, например:

{% code title="Пример базового запроса для отчёта" expandable="true" %}

```sql
SELECT
    t.device_id,
    o.object_label,
    -- Convert scaled integer coordinates to decimal degrees
    t.latitude::float / 10000000 AS latitude,
    t.longitude::float / 10000000 AS longitude,
    -- Convert scaled integer speed to km/h
    t.speed::float / 100 AS speed,
    t.device_time
FROM raw_telematics_data.tracking_data_core t
JOIN raw_business_data.objects o ON t.device_id = o.device_id
LIMIT 1000
```

{% endcode %}

{% hint style="info" icon="lightbulb-exclamation" %}

### Несколько советов по построению запросов:

* Добавьте условие LIMIT при настройке отчёта. Оно сокращает время выполнения запроса и ускоряет предварительный просмотр компонентов. Удалите или увеличьте лимит перед сохранением, если вам нужен полный набор данных для загрузки.
* После написания запроса вы можете нажать **Detect Columns** чтобы проверить, какие столбцы фактически извлекаются этим запросом. Это помогает настроить селекторы столбцов на вкладке **Components** (компоненты). Этот шаг необязателен. Вы можете настроить компоненты вручную, но запуск этой проверки сначала упрощает выбор осей и полей.
* Любой SQL-запрос, используемый в панели дашборда, является допустимой отправной точкой для отчёта. Скопируйте запрос из панели и отрегулируйте его под цель отчёта. Например, добавьте столбцы, необходимые для карты локаций, или уберите агрегирования, не применимые к табличному представлению.
* «Книга рецептов» IoT Query содержит общие и отраслевые примеры запросов, готовые к использованию как основа для отчётов. См. [SQL Recipe Book](https://app.gitbook.com/s/oFNFEIINiGFbhi3Px3dE/example-queries) для полного списка.
  {% endhint %}
  {% endstep %}

{% step %}

### Шаг 4: Настройте компоненты

Нажмите на вкладку **Components** вкладке. Доступны три компонента: **Таблица**, **График**, и **Карта**. У каждого есть переключатель для включения или исключения из отчёта. Вы можете удалить любой компонент, который вам не нужен.

{% tabs %}
{% tab title="Таблица данных" %}
Таблица данных отображает результаты запроса в строках с постраничной навигацией.

* **Размер страницы**: определяет, сколько строк отображается на странице в интерактивном представлении. Это не влияет на экспорт, который всегда содержит полный набор результатов.
* **Показать строку итогов**: добавляет сводную строку внизу таблицы при включении этой опции.
  {% endtab %}

{% tab title="График" %}
Доступны два типа диаграмм:

* **Временной ряд (линейная)**: подходит для данных, нанесённых по времени.
* **Столбчатая диаграмма**: подходит для категориальных сравнений (также называется колонной диаграммой).

Настройте оси:

* **Столбец по оси X**: обычно столбец времени, такой как `device_time`.
* **Столбцы по оси Y**: один или несколько числовых столбцов, например speed или `fuel_level`.
* **Группировка по**: необязательно разделять серии по категориальному столбцу, например `object_label`, чтобы отобразить отдельную линию или группу столбцов для каждого устройства.
  {% endtab %}

{% tab title="Карта локаций" %}
Карта локаций отображает точки данных, используя GPS-координаты.&#x20;

Dashboard Studio может автоматически определить столбцы широты и долготы из результата запроса. Когда переключатель **Auto-detect GPS columns** включён, столбцы, необходимые для определения локации (обычно `latitude` и `longitude`) выбираются автоматически, если ваш запрос их возвращает.

Вы также можете отключить опцию **Auto-detect** и выбрать нужные столбцы вручную.
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### Шаг 5: Сохраните отчёт

Нажмите Сохранить. Отчёт появится в разделе меню, который вы выбрали на шаге 1, и будет доступен всем пользователям, у которых есть доступ к этому разделу.
{% endstep %}
{% endstepper %}

## Просмотр отчёта

После создания отчёт открывается немедленно. Вы увидите все настроенные компоненты, отображаемые с живыми данными из вашей базы IoT Query. Заголовок отчёта показывает метку времени последнего обновления, общее количество строк и время выполнения запроса.&#x20;

Страница отчёта также предоставляет SQL-запрос напрямую, чтобы вы могли обновить его в любое время.

1. Разверните секцию **SQL Query** чтобы просмотреть или отредактировать оператор встраиваемо.&#x20;
2. Примените изменения:
   1. Нажмите **Save** чтобы сохранить изменения без выполнения. Вам потребуется нажать **Refresh** чтобы повторно выполнить запрос и обновить все представления актуальными данными.
   2. **Save & Run** чтобы применить обновлённый запрос немедленно.

### Таблица данных

Секция **Data Table** показывает результаты запроса с заголовком секции, отображающим общее число строк, возвращённых запросом. Интерактивное представление отображает лишь ограниченное количество строк, нижний колонтитул подтверждает точное количество. Используйте выпадающее меню **Download** чтобы экспортировать полный набор результатов в формате Excel (.xlsx) или CSV (.csv), независимо от того, сколько строк отображает интерактивное представление.

Если вам нужны адреса вместо необработанных координат, отметьте поле **Geocode to address** в правом верхнем углу **Data Table** заголовка. Когда включено, оно преобразует столбцы координат в читаемые почтовые адреса.

{% hint style="warning" %}
Разрешение адресов создаёт значительную нагрузку на сервер. Используйте эту опцию только с агрегированными или отфильтрованными наборами данных. Для необработанных телематических данных с десятками тысяч строк оставляйте координаты в числовой форме.
{% endhint %}

### График

Секция графика отображается под таблицей данных. Она наследует настройки, применённые в редакторе отчёта, но вы также можете настроить конфигурацию осей непосредственно в представлении:

* **Ось X**: выберите столбец для отрисовки по горизонтальной оси.
* **Ось Y**: выберите столбец для отрисовки по вертикальной оси.
* **Группировка по**: необязательно разделять серии по категориальному столбцу, например `object_label`, чтобы отобразить отдельную линию или группу столбцов для каждого устройства.

График отображает автоматически сгенерированный заголовок, описывающий текущий выбор осей и группировки, например: `speed over device_time (grouped by object_label)`. Когда вы изменяете настройки осей без сохранения, индикатор **Unsaved changes** появляется рядом с кнопкой **Save Chart Settings** Нажмите её, чтобы сохранить изменения конфигурации в отчёте.

### Карта локаций

Секция **Секция** Location Map

отображает каждую строку результата запроса как точку по её GPS-координатам. Заголовок секции показывает количество отображённых точек. GPS-столбцы определяются при создании отчёта (автоматически или вручную), их нельзя отредактировать впоследствии. Если запрос не возвращает распознаваемых столбцов координат, секция показывает «No GPS coordinates detected in query results.»

{% hint style="info" %}
Для помеченных временными метками телематических данных отображённые точки представляют собой полный путь объекта за запрошенный период. **Карта интерактивна: масштабируйте и перемещайте её для проверки отдельных точек. Нажмите** Show all
{% endhint %}

## чтобы уменьшить масштаб и поместить все отображённые точки в видимую область карты.

Экспорт отчёта

### Dashboard Studio предоставляет два уровня экспорта.

Экспорт таблицы данных **Download** Используйте выпадающее меню внутри секции **Data Table** чтобы экспортировать только данные таблицы. Экспорт всегда содержит полный набор результатов, возвращённых запросом, независимо от лимита отображения в интерактивном представлении.

### Полный экспорт отчёта

Используйте кнопки в заголовке отчёта, чтобы экспортировать все компоненты вместе.

| Кнопка                | Вывод                                                                  |
| --------------------- | ---------------------------------------------------------------------- |
| Excel → Excel (.xlsx) | Таблица в формате Excel с полным набором данных                        |
| Excel → CSV (.csv)    | CSV-файл со значениями, разделёнными запятыми, с полным набором данных |
| HTML                  | Интерактивный файл с таблицей данных, графиком и картой локаций        |
| PDF                   | Статический документ с таблицей данных, графиком и картой локаций      |

{% hint style="info" %}
Экспортированный HTML-файл сохраняет интерактивность: график поддерживает подсказки при наведении, а карта локаций — масштабирование и перемещение.
{% endhint %}

## Редактирование и удаление отчёта

Чтобы отредактировать сохранённый отчёт, вам больше не нужен отдельный диалог редактора. Откройте отчёт из меню и измените SQL-запрос или настройки компонентов прямо в нём. Единственное исключение — столбцы локаций: они определяются один раз при создании отчёта.

Чтобы удалить отчёт, нажмите **Инструменты** в левой боковой панели, затем выберите **Edit menu**. Найдите отчёт в дереве меню и нажмите меню из трёх точек рядом с его именем, затем подтвердите удаление.
