Задания

Задание – это файл с описанием последовательности обработки данных в формате XML. Имеет расширение .grf.

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

В этой главе описаны:

Структура файлов заданий OneBridge

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

После декларации следует указать начальный тег корневого элемента документа <Graph>. В этот элемент помещается все описание алгоритма обработки данных, все используемые шаги, ребра и их метаданные.

За ним следуют строки, описывающие дочерние элементы корневого элемента. Два главных дочерних элемента это <Global> и <Phase>. В элементе <Global> описываются метаданные и параметры подключения.

Система OneBridge обрабатывает данные в виде записей. Каждая запись может состоять из нескольких полей разных типов. Метаданные хранят тип данных этих полей. Метаданные являются частью задания, они содержатся в файле задания и их нужно описывать в элементе <Metadata>, чтобы четко определить типы обрабатываемых данных.

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

В <Phase> задаются атрибуты шагов задания <Node> и описываются ребра <Edge>. Описание шагов может содержать в себе дочерние элементы <Attr>, в которых описываются методы преобразования записей данных.

Последняя строка файла содержит конечный тег корневого элемента: </Graph>.

На схеме ниже представлена иерархия элементов в файле задания.

Рисунок 1. Схема вложенности элементов заданий в OneBridge.

Элементы заданий

Ниже приведена таблица с описанием возможных элементов файла задания.

ЭлементРодительский элементОписание элемента
Graphнет

Является главным элементом, определяющим граф. Содержит информацию о файле задания.*

Обязательный тег для отрисовки графа в инспекторе заданий.

GlobalGraph

Содержит информацию о файле, не имеет атрибутов. Дочерние элементы:

- Metadata - используемые метаданные;

- GraphParameters – параметры графа;

- Connection – подключения к базам данных.

MetadataGlobalОпределяет тип данных записи
RecordMetadata

Используется для определения символов-разделителей полей и записей для шагов FlatFileReader и FlatFileWriter, которые читают и записывают данные изв плоские файлы.

По умолчанию разделитель полей — "," разделитель строк — "n", если необходимо использовать другие разделители – нужно задать их в элементе Record с помощью конструкции:

<Record fieldDelimiter=";" recordDelimiter="_">

FieldRecord

Содержит имя поля и его тип.

Если задан Record, то все Field должны идти внутри него.

<Field name="y_coord" type="int"/>

GraphParametersGlobalСодержит элементы, в которых хранится информация для подключения к базам данных или путь к файлу для чтения. Может иметь атрибут scopeNonce - дополнительный параметр для защищенных параметров, например, пароля от базы данных.
GraphParameterGraphParameters

Хранит параметры для используемых в файле шагов, например, путь к файлу для шага чтения данных.

Атрибуты элемента описаны в таблице "Атрибуты элемента GraphParameter"

GraphParameterFileGraphParameters

Подключает файл параметров.

Атрибуты описаны в таблице "Атрибуты элемента GraphParameterFile"

ConnectionGlobalХранит параметры подключения к базе данных.
PhaseGraph

Номер фазы присваивается шагам графа, если есть необходимость запускать часть шагов после завершения выполнения другой части шагов. Фаз в графе может быть несколько, так что им нужно присваивать атрибут number, указывающий очередность выполнения.

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

Ребра графа, в которых описывается соединение шагов должны быть описаны в одной фазе с используемыми шагами. То есть нельзя объявлять шаги в одной фазе, а связывать их ребром - в другой.

NodePhaseОписывает атрибуты шага. Атрибуты описаны в таблице "Атрибуты элемента Node"
AttrNodeОписывает логическое выражение для фильтрации и сортировки или метод преобразования данных.
EdgePhaseОписывает связь между шагами графа. Атрибуты описаны в таблице "Атрибуты элемента 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 да Путь к файлу с параметрами

fileURL="${PRM_DIR}/db_01__full_conn.prm"

Атрибуты элемента Node

АтрибутОбязательныйОписаниеВозможные значения
idдаУдобное название шага для указания в атрибутах ребер графа.id="reader"
guiNameнетИмя шага, отражаемое в инспекторе заданий. Может быть любым.guiName="read"
guiXнетКоордината X левого верхнего угла шага для визуального отображения шага в инспекторе задач.guiX="-132"
guiYнетКоордината Y левого верхнего угла шага для визуального отображения шага в инспекторе задач.guiY="212"
typeдаТип шага. Определяет функциональность данного шага.

Все имеющиеся в системе типы шагов:

type="FLAT_FILE_READER"
type="DATABASE_READER"
type="DATA_GENERATOR"
type="SPREADSHEET_READER"

type="FLAT_FILE_WRITER"
type="DATABASE_WRITER"
type="POSTGRESQL_DATA_WRITER"
type="TRASH"

type="EXT_SORT"
type="EXT_FILTER"
type="SIMPLE_GATHER"
type="SIMPLE_COPY"
type="MAP"
type="ROLLUP"

type="HASH_JOIN"
type="MERGE_JOIN"
type="CROSS_JOIN"

Атрибуты элемента Edge

АтрибутОбязательныйОписаниеВозможные значения
idдаУникальное название ребра в пределах графа.id="edge0"
fromNodeнетИмя исходного компонента с указанием порта.fromNode="test_join:0"
toNodeнетИмя конечного компонента с указанием порта.toNode="FlatFileWriter1:0"
batchнетОбъём данных, передаваемых ребром, в Мб.batch="1024"
metaдаИдентификатор метаданных, назначаемых данному ребру.meta="metaname"

В следующих главах более подробно рассмотрено устройство графов и описано взаимодействие с ними.