Конструктор преобразований

Создавайте пользовательские преобразования визуально, просматривайте результаты, проверяйте рабочие процессы и экспортируйте их для выполнения.

circle-info

Скоро будет!

Transformation Builder в настоящее время находится в разработке. Описание функции на этой странице отражает планируемую функциональность. Реализация может измениться до окончательного выпуска. Если вы заинтересованы в раннем доступе или у вас есть вопросы, свяжитесь с iotquery@navixy.comenvelope.

Что такое Transformation Builder

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

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

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

Как это работает

Рабочий процесс в Transformation Builder — это ориентированный граф узлов, расположенных от источников данных к выводу:

workflow graph example showing sources, transformations, and output
Исходные данные → Узлы преобразования → Вывод

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

Builder компилирует ваш граф в один SQL-запрос с использованием Common Table Expressions (CTE). Каждый узел становится CTE в финальном запросе. Такой подход к компиляции означает, что Builder не записывает данные напрямую в базу данных. Вместо этого он генерирует конфигурацию, которая выполняет фактическую обработку данных по расписанию.

circle-exclamation

Подключение к базе данных

Перед началом создания рабочего процесса необходимо подключиться к вашей базе данных PostgreSQL. Без активного подключения предварительный просмотр данных и обнаружение таблиц недоступны.

Панель подключения позволяет указать ваш URL подключения, подключиться или отключиться и увидеть количество таблиц, найденных в каждой категории. Builder использует две схемы в вашей базе данных:

  • raw_telematics_data для телематических данных и данных датчиков устройств

  • raw_business_data для справочных бизнес-данных (транспортные средства, сотрудники, геозоны и аналогичные сущности)

После подключения Builder автоматически обнаруживает доступные таблицы и столбцы, которые затем можно выбрать при настройке узлов источников данных.

connection panel showing URL input and discovered table counts

Узлы источников данных

Узлы источников данных определяют, откуда ваш рабочий процесс считывает данные. Каждый узел источника соответствует одной таблице в слое исходных данных.

chevron-rightИсходные данные: Телеематикаhashtag

Этот узел загружает временные ряды из схемы raw_telematics_data .

Параметр
Описание

Имя таблицы

Выберите из списка таблиц, обнаруженных при подключении к базе данных.

Столбец времени

Столбец с меткой времени, используемый для сортировки и фильтров по времени. По умолчанию device_time.

Столбцы

Список конкретных столбцов для включения или * чтобы выбрать все столбцы.

Условие фильтра

Необязательный SQL WHERE условие, применяемое непосредственно к запросу источника.

Ограничение по времени, минуты

Необязательное ограничение по времени (в минутах) для сужения окна данных в SQL. Оставьте пустым для отсутствия ограничения.

Каждый узел «Исходные данные: Телеематика» читает ровно из одной таблицы. Чтобы использовать данные из нескольких таблиц, добавьте отдельный узел для каждой таблицы.

chevron-rightИсходные данные: Бизнесhashtag

Этот узел загружает справочные данные из схемы raw_business_data . Типичные таблицы включают objects, vehicles, devicesи sensor_description.

Параметр
Описание

Имя таблицы

Выберите из списка обнаруженных бизнес-таблиц.

Ключевой столбец

Ключевой столбец для этой таблицы (например, object_id или sensor_id).

Столбцы

Список конкретных столбцов для включения или * чтобы выбрать все столбцы.

Узлы «Исходные данные: Бизнес» в основном используются в качестве второго входа для узла SQL Transform, позволяя объединять справочные данные с телематическими временными рядами.

Узлы преобразования

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

chevron-rightSQL Transformhashtag

Объединяет данные ровно из двух узлов-источников с помощью SQL JOIN операции.

Параметр
Описание

Тип объединения

Тип объединения: INNER, LEFT, RIGHTили FULL (полное внешнее объединение).

Условие объединения

Условие для сопоставления строк между двумя входами (например, сопоставление по device_id).

Выбор столбцов

Список столбцов для включения в вывод. Поддерживает префиксную нотацию, например source.* чтобы выбрать все столбцы из конкретного входа.

SQL Transform требует ровно двух входов. Входы могут быть любой комбинацией узлов-источников данных или выходов других узлов преобразования.

chevron-rightФильтрhashtag

Фильтрует данные по диапазону времени и пользовательским условиям. Все условия выполняются в базе данных как часть WHERE клаузы (фильтрация на стороне БД).

Параметр
Описание

Столбец времени

Столбец с меткой времени, используемый для фильтрации по времени. По умолчанию device_time.

Начало / конец диапазона времени

Границы начала и конца для фильтра по времени.

Динамические условия

Список SQL-условий, объединённых с помощью AND. Используйте их для дополнительной фильтрации помимо диапазона времени.

chevron-rightПересэмплированиеhashtag

Агрегирует временные ряды в фиксированные интервалы времени. Это полезно для преобразования данных высокой частоты в сводную статистику за регулярные периоды.

Параметр
Описание

Столбец времени

Столбец с меткой времени, используемый для группировки по интервалам. По умолчанию device_time.

Интервал

Интервал агрегации: 1min, 5min, 15min, 1hourили 1day.

Группировка по

Дополнительные столбцы для группировки (помимо временного интервала).

Агрегации

Список пар «столбец-метод», определяющих, как агрегируется каждый столбец. Доступные методы: avg, sum, min, max, first, last, count.

chevron-rightАрифметикаhashtag

Добавляет или заменяет столбцы с помощью SQL-выражений. Используйте этот узел для создания вычисляемых столбцов на основе существующих данных.

Параметр
Описание

Выражения

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

Например, чтобы преобразовать значение скорости, вы можете указать исходный столбец speed, выражение speed * 1.2и псевдоним speed_adjusted. Псевдоним обязателен для каждого выражения.

chevron-rightПользовательский SQLhashtag

Предоставляет свободный ввод SQL для сложной логики, которую другие типы узлов не могут выразить. Используйте это, когда вам нужен полный контроль над запросом.

Параметр
Описание

Пользовательский SQL

A SELECT запрос, где верхнеуровневые узлы доступны по их алиасам CTE.

Алиасы узлов-источников следуют шаблону a_<node_id> (например, a_node_1, a_filter_1). Идентификаторы узлов очищаются до допустимых SQL-идентификаторов — пробелы и специальные символы заменяются подчёркиваниями.

Узлы с пользовательским SQL принимают один или два входа. Ваш запрос может ссылаться на соответствующие CTE по их алиасам.

Конфигурация вывода

chevron-rightВыводhashtag

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

Параметр
Описание

Имя таблицы

Имя целевой таблицы в processed_custom_data .

Столбец времени

Столбец с меткой времени в выходных данных (например, device_time).

Разбиение по

Выражение для партиционирования при организации хранимых данных (например, DATE(device_time)).

Первичный ключ

Список столбцов, которые однозначно идентифицируют каждую строку (например, [device_id, device_time]).

Режим записи

Как данные записываются в целевую таблицу: append (добавлять новые строки), overwrite (заменять существующие данные) или upsert (обновлять существующие строки, вставлять новые).

Создание рабочего процесса

Типичный рабочий процесс включает следующие шаги:

1

Откройте Transformation Builder

Запустите интерфейс Transformation Builder.

2

Подключитесь к вашей базе данных

Введите URL подключения PostgreSQL и установите соединение. Builder автоматически обнаружит доступные таблицы и столбцы.

3

Добавьте узлы источников данных

Добавьте узел Исходные данные: Телеематика и выберите таблицу и столбцы, с которыми вы хотите работать. Если вам нужны справочные данные (например, сведения о транспортном средстве или описания датчиков), добавьте также узел Исходные данные: Бизнес .

4

Добавьте узлы преобразования

Вставьте узлы преобразования, необходимые вашему рабочему процессу:

5

Настройте узел вывода

Добавьте узел Вывод и задайте имя целевой таблицы, столбцы первичного ключа и режим записи для вашего аналитического объекта.

6

Подключите узлы

Нарисуйте ребра между узлами, чтобы определить поток данных. Подключите узлы-источники к узлам преобразования, а узлы преобразования — к узлу Вывода. Данные текут слева направо, от источников к выводу.

7

Проверьте и исправьте ошибки

Проверьте подсказки валидации на предмет проблем конфигурации. При необходимости исправьте ошибки в параметрах узлов или структуре графа.

8

Предпросмотр результатов

Нажмите Execute чтобы запустить предпросмотр вашего рабочего процесса. Builder компилирует граф в SQL и выполняет его в вашей базе данных, возвращая до 100 строк, чтобы вы могли проверить вывод.

circle-info

Экспорт

Вы можете экспортировать законченный рабочий процесс в виде YAML-файла для выполнения во время выполнения или для обмена с коллегами. См. Справочник по Workflow YAML для подробностей формата.

9

Планирование выполнения

Нажмите Schedule открыть диалог конфигурации, где вы можете определить точное время и частоту выполнения рабочего процесса. В установленное время функция в базе данных запустит рабочий процесс и сохранит его результат в слое преобразований.

completed workflow graph with all node types connected
Полный пример потока преобразований

Предпросмотр результатов

После того как вы нажмёте Execute в панели инструментов, Builder компилирует граф вашего рабочего процесса в один SQL-запрос с CTE и выполняет его в подключённой базе данных PostgreSQL. Результаты отображаются в нижней панели.

При успешном выполнении, панель отображает:

  • Таблицу результатов, показывающую до 100 строк выходных данных

  • Выполненный SQL-запрос (полный CTE-запрос, сгенерированный компилятором)

  • Количество строк, количество столбцов и время выполнения

  • Возможность экспортировать результат в CSV

При ошибке выполнения, панель отображает:

  • Сообщение об ошибке, описывающее, что пошло не так

  • Выполненный SQL-запрос (если компиляция прошла успешно)

  • Детали ошибки базы данных (если ошибка произошла во время выполнения запроса)

circle-exclamation
Results preview panel showing successful execution with result table and SQL
Результат выполненного потока

Валидация и компиляция

Builder выполняет валидацию вашего рабочего процесса на двух уровнях.

  1. Валидация графа проверяет общую структуру вашего рабочего процесса. Граф должен быть корректным ориентированным ациклическим графом (DAG), то есть данные должны течь в одном направлении без циклов. Если Builder обнаружит цикл, он вернёт ошибку и подсветит затронутые узлы.

  2. Валидация узлов проверяет конфигурацию каждого узла по отдельности. 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), которые предоставляют входные данные для ваших рабочих процессов.

Последнее обновление

Это было полезно?