# Слой преобразований

{% hint style="info" %}

### Скоро будет!&#x20;

Архитектура уровня трансформаций, описанная на этой странице, в настоящее время находится в разработке. Хотя основные возможности трансформации функционируют, детали реализации могут измениться до окончательного выпуска. Если вы заинтересованы в раннем доступе или у вас есть вопросы, свяжитесь с <iotquery@navixy.com>.
{% endhint %}

## Что делает уровень трансформаций

Схема **Слой Transformation** обрабатывает необработанные данные из **Слой Raw data** в нормализованные аналитические сущности, готовые к запросам. Пока уровень Raw data содержит всё, что захвачено от устройств и систем (отдельные точки, события и значения полей, полезные для верификации и отладки), уровень трансформаций превращает эти необработанные данные в осмысленные объекты, такие как поездки, посещения зон и операционные состояния.

{% hint style="info" icon="lightbulb-exclamation" %}
Кратко о слое трансформаций: уровень Raw data — это всё собранное, уровень трансформаций — то, с чем вы можете работать.
{% endhint %}

Этот промежуточный слой устраняет повторяющуюся ручную подготовку данных и делает ваши данные готовыми для практической аналитики. Операторы автопарков могут отвечать на типовые операционные вопросы без масштабной обработки данных, а интеграторы получают стабильную основу для построения масштабируемых отчетов и BI-решений.

Трансформации можно проектировать и настраивать с помощью [**Transformation Builder**](https://www.navixy.com/docs/analytics/ru/iot-query/schema-overview/sloi-preobrazovanii/konstruktor-preobrazovanii), визуального инструмента, который позволяет создавать настраиваемые аналитические сущности через интерфейс рабочего процесса с перетаскиванием. Для подробностей о том, как создавать и управлять трансформациями, см. документацию по Transformation Builder.

## Как организованы данные

Уровень трансформаций использует подход с динамической схемой, где структуры баз данных формируются автоматически на основе активных трансформаций. В отличие от уровня Raw data с его фиксированными определениями схем, уровень трансформаций содержит только таблицы, соответствующие в настоящий момент активным трансформациям. Доступные таблицы и их структуры зависят от тех трансформаций, которые настроены в вашем **IoT Query** экземпляре.

Данные уровня трансформаций организованы в две схемы PostgreSQL: `processed_common_data` и `processed_custom_data`.

### processed\_common\_data

Схема `processed_common_data` схема содержит трансформации, разработанные и поддерживаемые Navixy. Эта схема общая для всех клиентов и предоставляет стандартизированные аналитические сущности, которые решают распространенные телематические задачи. Таблицы появляются в этой схеме по мере того, как Navixy разворачивает новые трансформации для удовлетворения широко применимых аналитических требований.

{% hint style="warning" %}
Схема `processed_common_data` схема является **только для чтения для внешних клиентов**. Вы можете свободно выполнять запросы к данным, но не можете изменять таблицы, вставлять записи или изменять структуры в этой схеме. Чтобы создавать собственные аналитические сущности, используйте схему `processed_custom_data` через [Transformation Builder](https://www.navixy.com/docs/analytics/ru/iot-query/schema-overview/sloi-preobrazovanii/konstruktor-preobrazovanii).
{% endhint %}

### processed\_custom\_data

Схема `processed_custom_data` схема содержит трансформации, специфичные для клиента, созданные для удовлетворения уникальных бизнес-требований. У каждого клиента есть изолированный экземпляр этой схемы, поэтому ваши данные не видны другим организациям. Таблицы в этой схеме соответствуют трансформациям, которые вы настраиваете и управляете через [Transformation Builder](https://www.navixy.com/docs/analytics/ru/iot-query/schema-overview/sloi-preobrazovanii/konstruktor-preobrazovanii).

Вы полностью владеете этой схемой: вы решаете, какие трансформации создавать, как они обрабатывают данные и когда они запускаются. Transformation Builder генерирует конфигурацию и SQL, необходимые для создания ваших пользовательских аналитических сущностей.

#### Что происходит при изменении трансформаций

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

Эта динамическая формировка объясняет, почему уровень трансформаций не предоставляет фиксированных описаний схем, как это делает уровень Raw data. Доступные таблицы и их структуры отражают конкретные трансформации, настроенные для вашего экземпляра IoT Query.

## Характеристики обработки данных

Сущности уровня трансформаций поддерживаются автоматически через плановые процессы. При выполнении запросов к этим данным учитывайте следующие характеристики обработки.

* **Плановые обновления.** Каждая трансформация обрабатывает новые записи уровня Raw data в соответствии с настроенным графиком. Обновления обычно происходят ежечасно или каждые несколько часов, в зависимости от сложности трансформации и конфигурации.
* **Окна обработки.** Трансформации работают на временных сегментах, чтобы эффективно обрабатывать управляемые объемы данных вместо сканирования всего набора данных. Такой подход уравновешивает производительность обработки и актуальность данных.
* **Поведение при перерасчете.** Когда изменения конфигурации вызывают перерасчет, недавние данные могут демонстрировать кратковременные несоответствия в течение активных окон обработки. Эти несоответствия автоматически устраняются после завершения цикла обработки.
* **Поведение, зависящее от схемы.** Трансформации в `processed_common_data` обновляются одновременно для всех клиентов, использующих эту схему, поскольку Navixy управляет расписанием централизованно. Трансформации в `processed_custom_data` выполняются независимо для каждого клиента, что позволяет настраивать расписание и логику обработки в соответствии с вашими конкретными потребностями.

## Что учитывать при выполнении запросов

При написании SQL-запросов к данным уровня трансформаций учитывайте следующие моменты:

* **Используйте полный формат schema.table.** Всегда обращайтесь к таблицам с префиксом схемы, чтобы избежать неоднозначности:

```sql
SELECT *
FROM processed_common_data.table_name
WHERE device_time >= CURRENT_DATE - INTERVAL '7 days';
```

* **Включайте фильтры по диапазону времени.** Добавляйте условия по времени в ваши `WHERE` операторы, чтобы ограничить объем сканируемых данных. Это улучшает производительность запросов и сокращает время их выполнения.
* **Проверяйте расписания трансформаций.** Данные в таблицах уровня трансформаций отражают последний завершенный цикл обработки. Если вам нужны данные, которым всего несколько минут, уровень Raw data может быть более подходящим до следующего запуска трансформаций.
* **Помните, что `processed_common_data` является только для чтения.** Используйте эту схему для запросов к стандартизированным сущностям, поддерживаемым Navixy. Чтобы создать собственные аналитические сущности, настройте трансформации в `processed_custom_data` через [Transformation Builder](https://www.navixy.com/docs/analytics/ru/iot-query/schema-overview/sloi-preobrazovanii/konstruktor-preobrazovanii).

## Дальнейшие шаги

* [**Transformation Builder**](https://www.navixy.com/docs/analytics/ru/iot-query/schema-overview/sloi-preobrazovanii/konstruktor-preobrazovanii): Создавайте настраиваемые аналитические сущности с помощью визуального интерфейса рабочего процесса.
* [**Слой Raw data**](https://www.navixy.com/docs/analytics/ru/iot-query/schema-overview/bronze-layer): Изучите схемы-источники (`raw_telematics_data` и `raw_business_data`) которые питают трансформации.
* [**Книга SQL-рецептов**](https://www.navixy.com/docs/analytics/ru/example-queries): Узнайте шаблоны запросов и лучшие практики работы с таблицами уровня трансформаций в Dashboard Studio.
