Задания
Задание – это файл с описанием последовательности обработки данных в формате XML. Имеет расширение .grf
.
Граф – составляющая задания, наименьшая исполняемая единица рабочего процесса. Графы состоят из шагов, имеющих порты для ввода и вывода данных. Порты шагов в графе соединены линиями - ребрами графа, которые отражают передачу данных между портами шагов.
В этой главе описаны:
Структура файлов заданий OneBridge
В системе определены некоторые элементы, которые стоит использовать для корректной передачи информации и отображения заданий в инспекторе задач.
После декларации следует указать начальный тег корневого элемента документа <Graph>
. В этот элемент помещается все описание алгоритма обработки данных, все используемые шаги, ребра и их метаданные.
За ним следуют строки, описывающие дочерние элементы корневого элемента. Два главных дочерних элемента это <Global>
и <Phase>
. В элементе <Global>
описываются метаданные и параметры подключения.
Система OneBridge обрабатывает данные в виде записей. Каждая запись может состоять из нескольких полей разных типов. Метаданные хранят тип данных этих полей. Метаданные являются частью задания, они содержатся в файле задания и их нужно описывать в элементе <Metadata>
, чтобы четко определить типы обрабатываемых данных.
Параметры подключения к базе данных, файлы с настройками, можно указать и подключить в элементе <GraphParameters>
.
В <Phase>
задаются атрибуты шагов задания <Node>
и описываются ребра <Edge>
. Описание шагов может содержать в себе дочерние элементы <Attr>
, в которых описываются методы преобразования записей данных.
Последняя строка файла содержит конечный тег корневого элемента: </Graph>
.
На схеме ниже представлена иерархия элементов в файле задания.
Элементы заданий
Ниже приведена таблица с описанием возможных элементов файла задания.
Элемент | Родительский элемент | Описание элемента |
---|---|---|
Graph | нет | Является главным элементом, определяющим граф. Содержит информацию о файле задания.* Обязательный тег для отрисовки графа в инспекторе заданий. |
Global | Graph | Содержит информацию о файле, не имеет атрибутов. Дочерние элементы: - Metadata - используемые метаданные; - GraphParameters – параметры графа; - Connection – подключения к базам данных. |
Metadata | Global | Определяет тип данных записи |
Record | Metadata | Используется для определения символов-разделителей полей и записей для шагов FlatFileReader и FlatFileWriter, которые читают и записывают данные изв плоские файлы. По умолчанию разделитель полей — "," разделитель строк — "n", если необходимо использовать другие разделители – нужно задать их в элементе Record с помощью конструкции:
|
Field | Record | Содержит имя поля и его тип. Если задан Record, то все Field должны идти внутри него.
|
GraphParameters | Global | Содержит элементы, в которых хранится информация для подключения к базам данных или путь к файлу для чтения. Может иметь атрибут scopeNonce - дополнительный параметр для защищенных параметров, например, пароля от базы данных. |
GraphParameter | GraphParameters | Хранит параметры для используемых в файле шагов, например, путь к файлу для шага чтения данных. Атрибуты элемента описаны в таблице "Атрибуты элемента GraphParameter" |
GraphParameterFile | GraphParameters | Подключает файл параметров. Атрибуты описаны в таблице "Атрибуты элемента GraphParameterFile" |
Connection | Global | Хранит параметры подключения к базе данных. |
Phase | Graph | Номер фазы присваивается шагам графа, если есть необходимость запускать часть шагов после завершения выполнения другой части шагов. Фаз в графе может быть несколько, так что им нужно присваивать атрибут number, указывающий очередность выполнения. Каждый граф выполняется параллельно в рамках одного и того же номера фазы; т. е. каждый шаг и каждое ребро с одинаковым номером фазы выполняются одновременно. Если процесс останавливается на какой-то фазе, более высокие фазы не запускаются. Только после успешного завершения всех процессов в рамках одной фазы начнется следующая фаза. Ребра графа, в которых описывается соединение шагов должны быть описаны в одной фазе с используемыми шагами. То есть нельзя объявлять шаги в одной фазе, а связывать их ребром - в другой. |
Node | Phase | Описывает атрибуты шага. Атрибуты описаны в таблице "Атрибуты элемента Node" |
Attr | Node | Описывает логическое выражение для фильтрации и сортировки или метод преобразования данных. |
Edge | Phase | Описывает связь между шагами графа. Атрибуты описаны в таблице "Атрибуты элемента Edge" |
Атрибуты элементов
Для заданий: <GraphParameter>
и <GraphParameterFile>
Для шагов:<Node>
Для рёбер:<Edge>
Атрибуты элемента GraphParameter
Название | Обязательный | Описание | Возможные значения |
---|---|---|---|
name | да | Имя параметра | name="READ_DIR" |
value | нет | Значение параметра | value="test/files/generated" |
public | нет | Публичность параметра | Значение по умолчанию: public="false" |
required | нет | Обязательность указания значения параметра при запуске задания | Значение по умолчанию : required="false" |
secure | нет | Параметр зашифрован | Значение по умолчанию: secure="false" |
- если public="true" и required="true", тогда value игнорируется;
- если public="true" и value не задан, тогда required устанавливается в "true";
- если public="false", то required игнорируется;
- если public="false", то value должно быть задано;
- значение name не может содержать в себе подпоследовательность "${".
Атрибуты элемента GraphParameterFile
Атрибут | Обязательный | Описание | Возможные значения |
fileURL | да | Путь к файлу с параметрами |
|
Атрибуты элемента Node
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
id | да | Удобное название шага для указания в атрибутах ребер графа. | id="reader" |
guiName | нет | Имя шага, отражаемое в инспекторе заданий. Может быть любым. | guiName="read" |
guiX | нет | Координата X левого верхнего угла шага для визуального отображения шага в инспекторе задач. | guiX="-132" |
guiY | нет | Координата Y левого верхнего угла шага для визуального отображения шага в инспекторе задач. | guiY="212" |
type | да | Тип шага. Определяет функциональность данного шага. |
Все имеющиеся в системе типы шагов: type="FLAT_FILE_READER" type="FLAT_FILE_WRITER" type="EXT_SORT" type="HASH_JOIN" |
Атрибуты элемента Edge
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
id | да | Уникальное название ребра в пределах графа. | id="edge0" |
fromNode | нет | Имя исходного компонента с указанием порта. | fromNode="test_join:0" |
toNode | нет | Имя конечного компонента с указанием порта. | toNode="FlatFileWriter1:0" |
batch | нет | Объём данных, передаваемых ребром, в Мб. | batch="1024" |
meta | да | Идентификатор метаданных, назначаемых данному ребру. | meta="metaname" |
В следующих главах более подробно рассмотрено устройство графов и описано взаимодействие с ними.