Конструктор преобразований
Создавайте пользовательские преобразования визуально, просматривайте результаты, проверяйте рабочие процессы и экспортируйте их для выполнения.
Скоро будет!
Transformation Builder в настоящее время находится в разработке. Описание функции на этой странице отражает планируемую функциональность. Реализация может измениться до окончательного выпуска. Если вы заинтересованы в раннем доступе или у вас есть вопросы, свяжитесь с iotquery@navixy.com.
Что такое Transformation Builder
Transformation Builder является визуальным инструментом для проектирования рабочих процессов преобразования данных без необходимости разрабатывать и поддерживать сложные конвейеры данных. Вы собираете логику обработки в виде графа, где каждый шаг представлен отдельным блоком (узлом), а инструмент компилирует ваш граф в исполняемый SQL.
Transformation Builder предназначен для аналитиков, специалистов по BI и всех, кто обладает базовыми знаниями SQL и хочет самостоятельно контролировать логику подготовки данных. Он помогает ответить на ключевые вопросы подготовки данных: откуда берутся данные, как они объединяются, какие применяются фильтры и преобразования, как агрегируются временные ряды и в каком виде данные должны появиться в слое преобразований.
Transformation Builder не является полноценным оркестратором ETL или платформой данных. Это специализированный конструктор рабочих процессов, который генерирует конфигурацию и SQL для внешнего выполнения во время выполнения.
Как это работает
Рабочий процесс в Transformation Builder — это ориентированный граф узлов, расположенных от источников данных к выводу:

Каждому узлу соответствует один логический шаг обработки. Вы можете комбинировать несколько источников в одном узле преобразования, а результат одного узла может питать несколько последующих узлов. Граф предоставляет наглядное визуальное представление всего пути данных от таблиц-источников до целевого аналитического объекта.
Builder компилирует ваш граф в один SQL-запрос с использованием Common Table Expressions (CTE). Каждый узел становится CTE в финальном запросе. Такой подход к компиляции означает, что Builder не записывает данные напрямую в базу данных. Вместо этого он генерирует конфигурацию, которая выполняет фактическую обработку данных по расписанию.
Поток данных в графе может идти только в одном направлении. Циклы запрещены. Если Builder обнаружит цикл, он вернёт ошибку валидации.
Подключение к базе данных
Перед началом создания рабочего процесса необходимо подключиться к вашей базе данных PostgreSQL. Без активного подключения предварительный просмотр данных и обнаружение таблиц недоступны.
Панель подключения позволяет указать ваш URL подключения, подключиться или отключиться и увидеть количество таблиц, найденных в каждой категории. Builder использует две схемы в вашей базе данных:
raw_telematics_dataдля телематических данных и данных датчиков устройствraw_business_dataдля справочных бизнес-данных (транспортные средства, сотрудники, геозоны и аналогичные сущности)
После подключения Builder автоматически обнаруживает доступные таблицы и столбцы, которые затем можно выбрать при настройке узлов источников данных.

Узлы источников данных
Узлы источников данных определяют, откуда ваш рабочий процесс считывает данные. Каждый узел источника соответствует одной таблице в слое исходных данных.
Исходные данные: Телеематика
Этот узел загружает временные ряды из схемы raw_telematics_data .
Имя таблицы
Выберите из списка таблиц, обнаруженных при подключении к базе данных.
Столбец времени
Столбец с меткой времени, используемый для сортировки и фильтров по времени. По умолчанию device_time.
Столбцы
Список конкретных столбцов для включения или * чтобы выбрать все столбцы.
Условие фильтра
Необязательный SQL WHERE условие, применяемое непосредственно к запросу источника.
Ограничение по времени, минуты
Необязательное ограничение по времени (в минутах) для сужения окна данных в SQL. Оставьте пустым для отсутствия ограничения.
Каждый узел «Исходные данные: Телеематика» читает ровно из одной таблицы. Чтобы использовать данные из нескольких таблиц, добавьте отдельный узел для каждой таблицы.
Исходные данные: Бизнес
Этот узел загружает справочные данные из схемы raw_business_data . Типичные таблицы включают objects, vehicles, devicesи sensor_description.
Имя таблицы
Выберите из списка обнаруженных бизнес-таблиц.
Ключевой столбец
Ключевой столбец для этой таблицы (например, object_id или sensor_id).
Столбцы
Список конкретных столбцов для включения или * чтобы выбрать все столбцы.
Узлы «Исходные данные: Бизнес» в основном используются в качестве второго входа для узла SQL Transform, позволяя объединять справочные данные с телематическими временными рядами.
Узлы преобразования
Узлы преобразования определяют, что происходит с вашими данными после их загрузки из источников. Каждый тип преобразования обрабатывает определённый шаблон обработки.
SQL Transform
Объединяет данные ровно из двух узлов-источников с помощью SQL JOIN операции.
Тип объединения
Тип объединения: INNER, LEFT, RIGHTили FULL (полное внешнее объединение).
Условие объединения
Условие для сопоставления строк между двумя входами (например, сопоставление по device_id).
Выбор столбцов
Список столбцов для включения в вывод. Поддерживает префиксную нотацию, например source.* чтобы выбрать все столбцы из конкретного входа.
SQL Transform требует ровно двух входов. Входы могут быть любой комбинацией узлов-источников данных или выходов других узлов преобразования.
Фильтр
Фильтрует данные по диапазону времени и пользовательским условиям. Все условия выполняются в базе данных как часть WHERE клаузы (фильтрация на стороне БД).
Столбец времени
Столбец с меткой времени, используемый для фильтрации по времени. По умолчанию device_time.
Начало / конец диапазона времени
Границы начала и конца для фильтра по времени.
Динамические условия
Список SQL-условий, объединённых с помощью AND. Используйте их для дополнительной фильтрации помимо диапазона времени.
Пересэмплирование
Агрегирует временные ряды в фиксированные интервалы времени. Это полезно для преобразования данных высокой частоты в сводную статистику за регулярные периоды.
Столбец времени
Столбец с меткой времени, используемый для группировки по интервалам. По умолчанию device_time.
Интервал
Интервал агрегации: 1min, 5min, 15min, 1hourили 1day.
Группировка по
Дополнительные столбцы для группировки (помимо временного интервала).
Агрегации
Список пар «столбец-метод», определяющих, как агрегируется каждый столбец. Доступные методы: avg, sum, min, max, first, last, count.
Арифметика
Добавляет или заменяет столбцы с помощью SQL-выражений. Используйте этот узел для создания вычисляемых столбцов на основе существующих данных.
Выражения
Список определений выражений. Каждая запись включает необязательный исходный столбец, SQL-выражение и обязательный выходной псевдоним.
Например, чтобы преобразовать значение скорости, вы можете указать исходный столбец speed, выражение speed * 1.2и псевдоним speed_adjusted. Псевдоним обязателен для каждого выражения.
Пользовательский SQL
Предоставляет свободный ввод SQL для сложной логики, которую другие типы узлов не могут выразить. Используйте это, когда вам нужен полный контроль над запросом.
Пользовательский SQL
A SELECT запрос, где верхнеуровневые узлы доступны по их алиасам CTE.
Алиасы узлов-источников следуют шаблону a_<node_id> (например, a_node_1, a_filter_1). Идентификаторы узлов очищаются до допустимых SQL-идентификаторов — пробелы и специальные символы заменяются подчёркиваниями.
Узлы с пользовательским SQL принимают один или два входа. Ваш запрос может ссылаться на соответствующие CTE по их алиасам.
Конфигурация вывода
Вывод
Этот Вывод узел определяет, как результаты преобразования должны записываться в слой преобразований. Он указывает метаданные целевой таблицы, которые внешнее исполнение использует для хранения обработанных данных.
Имя таблицы
Имя целевой таблицы в processed_custom_data .
Столбец времени
Столбец с меткой времени в выходных данных (например, device_time).
Разбиение по
Выражение для партиционирования при организации хранимых данных (например, DATE(device_time)).
Первичный ключ
Список столбцов, которые однозначно идентифицируют каждую строку (например, [device_id, device_time]).
Режим записи
Как данные записываются в целевую таблицу: append (добавлять новые строки), overwrite (заменять существующие данные) или upsert (обновлять существующие строки, вставлять новые).
Создание рабочего процесса
Типичный рабочий процесс включает следующие шаги:
Добавьте узлы источников данных
Добавьте узел Исходные данные: Телеематика и выберите таблицу и столбцы, с которыми вы хотите работать. Если вам нужны справочные данные (например, сведения о транспортном средстве или описания датчиков), добавьте также узел Исходные данные: Бизнес .
Добавьте узлы преобразования
Вставьте узлы преобразования, необходимые вашему рабочему процессу:
SQL Transform чтобы объединять данные
Фильтр чтобы сузить результаты
Пересэмплирование чтобы агрегировать временные ряды
Арифметика чтобы добавить вычисляемые столбцы
Пользовательский SQL для сложной логики.
Настройте узел вывода
Добавьте узел Вывод и задайте имя целевой таблицы, столбцы первичного ключа и режим записи для вашего аналитического объекта.
Предпросмотр результатов
Нажмите Execute чтобы запустить предпросмотр вашего рабочего процесса. Builder компилирует граф в SQL и выполняет его в вашей базе данных, возвращая до 100 строк, чтобы вы могли проверить вывод.
Экспорт
Вы можете экспортировать законченный рабочий процесс в виде YAML-файла для выполнения во время выполнения или для обмена с коллегами. См. Справочник по Workflow YAML для подробностей формата.

Предпросмотр результатов
После того как вы нажмёте Execute в панели инструментов, Builder компилирует граф вашего рабочего процесса в один SQL-запрос с CTE и выполняет его в подключённой базе данных PostgreSQL. Результаты отображаются в нижней панели.
При успешном выполнении, панель отображает:
Таблицу результатов, показывающую до 100 строк выходных данных
Выполненный SQL-запрос (полный CTE-запрос, сгенерированный компилятором)
Количество строк, количество столбцов и время выполнения
Возможность экспортировать результат в CSV
При ошибке выполнения, панель отображает:
Сообщение об ошибке, описывающее, что пошло не так
Выполненный SQL-запрос (если компиляция прошла успешно)
Детали ошибки базы данных (если ошибка произошла во время выполнения запроса)
Предпросмотр результатов требует активного подключения к PostgreSQL. Без подключения предпросмотр возвращает пустой результат и не выполняет SQL. Предпросмотр всегда использует реальные данные из вашей базы данных, а не имитационные данные.

Валидация и компиляция
Builder выполняет валидацию вашего рабочего процесса на двух уровнях.
Валидация графа проверяет общую структуру вашего рабочего процесса. Граф должен быть корректным ориентированным ациклическим графом (DAG), то есть данные должны течь в одном направлении без циклов. Если Builder обнаружит цикл, он вернёт ошибку и подсветит затронутые узлы.
Валидация узлов проверяет конфигурацию каждого узла по отдельности. Builder проверяет, что обязательные поля заполнены, что ссылочные столбцы существуют во входных данных верхнеуровневого узла, и что параметры узла согласованы с его типом (например, SQL Transform должен иметь ровно два входа).
Во время компиляции Builder преобразует ваш граф в один SQL-запрос. Каждый узел становится CTE с алиасом a_<node_id>. Узлы располагаются в топологическом порядке, чтобы каждый CTE мог ссылаться на выходы своих предшествующих узлов. Если компиляция не удаётся из-за ошибки конфигурации или недопустимой структуры графа, Builder возвращает подробности ошибки вместе с любым частичным SQL, который удалось сгенерировать.
Экспортирование
Экспорт и импорт YAML
Вы можете экспортировать завершённый рабочий процесс в YAML-файл с помощью кнопки Экспорт в панели инструментов. Экспортируемый файл содержит полное определение рабочего процесса в формате версии 2, включая все конфигурации узлов, ребра графа и позиции расположения.
Чтобы загрузить ранее сохранённый рабочий процесс, используйте функцию Import и выберите файл .yaml или .yml . Для полной документации по формату см. раздел Справочник по Workflow YAML.
Текущие ограничения
Transformation Builder в настоящее время находится на начальном этапе выпуска, и применяются следующие ограничения:
Предпросмотр требует активного подключения к PostgreSQL. Без подключения вы не можете просматривать результаты. Предпросмотр ограничен 100 строками.
Граф должен быть без циклов. Данные текут только в одном направлении — от источников к выводу.
Отсутствует встроенный механизм выполнения. Builder генерирует конфигурацию и SQL для внешнего выполнения. Он сам не обрабатывает и не хранит данные.
Только пакетная обработка. Потоковая обработка данных не поддерживается.
Дальнейшие шаги
слое преобразований: Узнайте, как слой преобразований организует обработанные данные в схемы и как выполнять по ним запросы.
Справочник по Workflow YAML: Ознакомьтесь с полной спецификацией формата экспорта и импорта YAML.
Слой исходных данных: Изучите схемы-источники (
raw_telematics_dataиraw_business_data), которые предоставляют входные данные для ваших рабочих процессов.
Последнее обновление
Это было полезно?