Вид "Поток данных"

Вид графа "Поток данных" позволяет отследить взаимное влияние (наличие связей) таблиц и атрибутов информационных систем друг на друга, используя только связи с флагом "Поток данных". Граф доступен для активов любого слоя, для которых настроена хотя бы одна такая связь. По умолчанию вид "Поток данных" выбирается для активов физического слоя.

Алгоритм построения потока:

  1. Загружаются все вложенные узлы от исходного актива, у которых присутствует связь с флагом "Поток данных".

  2. От этих узлов рекурсивно загружаются входящие (влево) и исходящие (вправо) связи с флагом "Поток данных".

  3. Загружаются вложенные узлы до информационных систем.

  4. Дополнительно загружаются данные для отображения (термины разметки и т.п.).

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

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

Примечание

В версии 2.15 алгоритм построения потока данных изменен. Теперь поток строится только по связям с флагом "Поток данных". Временно поток данных недоступен для информационных систем из-за большой нагрузки при загрузке.

Примечание

В данной реализации у текущего актива цвет фона будет инвертироваться.

Использование тегов

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

Типы активов на определенных уровнях вложенности могут быть помечены тегами "таблица" и "атрибут".

Пример: ИС → PG Table (таблица) → PG Column (атрибут) или ИС → PG schema → PG Table (таблица) → Group → PG Column (атрибут)

Предупреждение

Если у пользователя нет прав на какой-то из перечисленных типов активов, то проверить теги на таком типе актива будет невозможно - граф связей будет отображаться некорректно

Благодаря тегам появляются 2 уровня: уровень таблицы и уровень атрибутов, которые расставляются благодаря работе краулера.

Также теги могут быть добавлены вручную с помощью импорта модели типов активов.

Пример заполнения тегов в xml файле:

...
<assetType version="54" name="PgColumn" displayName="Postgres column" description="" icon="" color="#fccb00">
    <simpleAttribute name="PgColumnName" displayName="Name" description="" readOnly="false" hidden="false" nullable="false" order="0" searchable="true" displayable="true" mainDisplayable="true" useAttributeNameForDisplay="false" simpleDataType="String" enumDataType="" linkDataType="" unique="false" searchMorphologically="false" searchCaseInsensitive="false" base="false" lookupEntityType=""/>
    ...
   <tags name="category" value="attribute"/>
</assetType>
<assetType version="54" name="PgTable" displayName="Postgres table" description="" icon="" color="#db3e00">
    <simpleAttribute name="PgTableName" displayName="Name" description="" readOnly="false" hidden="false" nullable="false" order="0" searchable="true" displayable="true" mainDisplayable="true" useAttributeNameForDisplay="false" simpleDataType="String" enumDataType="" linkDataType="" unique="false" searchMorphologically="false" searchCaseInsensitive="false" base="false" lookupEntityType=""/>
    ...
    <tags name="category" value="table"/>
</assetType>
...

Теги доступны для просмотра в свойствах типа актива (Рисунок 1).

Примечания:

  • Для построения графа "Поток данных" используются только связи, помеченные специальным флагом "Поток данных" (dataLineage). Этот флаг настраивается в типе связи для активов любого слоя (физического, логического, бизнес‑слоя) и указывает, что связь участвует в потоке данных.

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

Отображение тегов в карточке записи

Рисунок 1 – Отображение тегов в свойствах типа актива

Отображение вида "Поток данных"

Вид графа "Поток данных" открывается по умолчанию для типов активов физического слоя, помеченных тегами, и имеющих связи с информационными системами (Рисунок 2). Для активов других слоев вид доступен, если у актива есть хотя бы одна связь с флагом "Поток данных"; при этом автоматического разворачивания по иерархии не происходит.

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

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

Если вложенные узлы графа имеют связи, то при сворачивании узла будет простроена ассоциативная связь (отображается пунктирной линией). Если узел имеет прямую и ассоциативную связь, то будет отображаться только прямая.

Примечания:

  • Уровень атрибутов для таблицы по умолчанию свернут.

  • Для активов не физического слоя (например, бизнес‑слой, логический слой) отсутствуют предопределенные уровни "информационная система", "таблица", "атрибут". Поэтому при построении потока не происходит автоматического разворачивания узлов по иерархии вверх и вниз (раскрытие родительских и дочерних элементов). При необходимости узлы можно развернуть вручную через контекстное меню или кнопки загрузки связей.

Обеспечение порядка "слева направо" и клонирование узлов

Горизонтальное расположение узлов в потоке данных может нарушаться, когда несколько узлов вложены в одного родителя на одном уровне иерархии. Для восстановления правильного порядка используются два механизма:

  • Скрытие родительских узлов - управляется переключателем "Показывать родительские узлы". При отключении автоматической загрузки родительских узлов часть иерархии скрывается, что упрощает граф, но не всегда полностью устраняет нарушение порядка.

  • Клонирование узлов - автоматический алгоритм, который срабатывает, если скрытие родителей не помогло. Система находит родительский узел, на котором происходит нарушение, и на уровне отрисовки создает его визуальный клон. Клон забирает часть дочерних узлов, выстраивая их в правильном направлении слева направо.

Особенности клонированного узла:

  • Клон существует только в интерфейсе, на уровне данных дублирования не происходит.

  • Контекстное меню и кнопки управления (сворачивание, загрузка связей) на клоне отключены.

  • Рядом с именем узла отображается специальный значок image10 с подсказкой "Повторное отображение узла".

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

  • Все взаимодействия (раскрытие атрибутов, просмотр свойств) выполняются с исходным узлом, который остается в графе.

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

Учет мета-связей при построении потока

При построении потока данных учитываются мета-связи, которые идут от типа актива исходного узла. В поток по дочерним узлам попадают связи, тип актива которых (или тип актива их родителей) связан мета-связью с типом актива исходного узла. При этом сохраняются остальные ограничения: поток строится только по связям, помеченным флагом "Поток данных". Таким образом, на связи накладывается дополнительный фильтр по мета-связям.

Сворачивание узлов для физического слоя (не таблицы и не атрибуты)

Если исходный узел принадлежит физическому слою, но не является таблицей и не атрибутом, то по умолчанию:

  • Исходный узел сворачивается.

  • Узлы, связанные с исходным через мета-связи, также сворачиваются.

  • Связи по дочерним узлам отображаются пунктирной линией на уровне родительского узла.

Для таких узлов в интерфейсе появляется флаг "Показать с учетом связей дочерних активов":

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

  • При выключенном - дочерние связи не отображаются.

Раскрытие атрибутов таблиц

При раскрытии таблицы (через меню image8) во всплывающем окне настройки отображения атрибуты таблицы группируются по типу актива. Когда таблица раскрыта:

  • Связи по дочерним атрибутам отображаются непрозрачно.

  • Остальные связи становятся почти полностью прозрачными.

Пример отображения для таблицы группировки по типу актива

Пример отображения для таблицы группировки по типу актива

Пример отображения свернутой таблицы

Пример отображения свернутой таблицы

Пример отображения развернутой страницы таблицы

Пример отображения развернутой таблицы

Подсветка связей по клику на узел

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

Пример отображения подсветки связи

Пример отображения подсветки связи

Примечание

В версии 2.12 был переработан алгоритм построения потока. Некоторые потоки данных строились некорректно по причине того, что у актива могли быть вложенные активы сразу нескольких типов активов, которые были размечены как уровень таблицы физического слоя (Таблица и Представление) или несколько разных типов активов для уровня атрибутов (Атрибут и Проверочное ограничение). Такие случаи теперь учитываются в алгоритме построения потока и отображаются корректно (слева на право).

Пример отображения графа вида "Поток данных"

Рисунок 2 – Пример отображения графа вида "Поток данных"

Чтобы раскрыть уровень атрибутов:

  1. Убедитесь, что выбран вид графа "Поток данных".

  2. Наведите курсор на текущий узел графа (уровня таблицы) и нажмите кнопку меню image8.

  3. В меню отобразится список вложенных атрибутов текущей таблицы.

  4. С помощью флагов выберите необходимые атрибуты для отображения.

    • Также будут отображены атрибуты, связанные (транзитивно) в других таблицах.

  5. При открытии актива уровня атрибута по умолчанию прогружаются связи, идущие от текущего атрибута до других атрибутов (транзитивно), далее прогружаются вложенные связи от атрибутов до информационных систем.

    • Для активов уровня атрибутов меню раскрытия уровня атрибутов отсутствует.

    • На узлах информационных систем отображаются счетчики вложенных таблиц и атрибутов с количеством прогруженных в интерфейсе узлов (фактически на сервере может быть большее количество).

  6. При необходимости нажмите кнопку image9 для загрузки дополнительных связей. При этом счетчик узлов может увеличиться.

Для переключения на укрупненный режим нажмите кнопку image2 на панели справа, в результате чего произойдет автоматическое сворачивание/разворачивание всех информационных систем на графе.

Примечание

На текущем узле таблицы и на всех связанных через атрибуты таблицах кнопки сворачивания/разворачивания image4 и загрузки связей image9 не отображаются

Поток трансформации данных

Поток трансформации данных - это процесс преобразования данных из некоторой информационной системы.

Базовая модель трансформации содержит:

Типы активов:

  • default_transformation_container - актив контейнера трансформации, содержащий одну или несколько трансформаций. В некоторый информационных системах называется задачей.

  • default_transformation - актив трансформации данных.

  • default_transformation_port - актив порта трансформации, использующийся как вход/выход для трансформации.

Типы связей:

  • default_transformation_flow - тип связи для потока трансформации, использующаяся для связывания TransformationContainer.

  • default_transformation_include - тип связи (внутренняя) для включения трансформации в контейнер (TransformationContainer) и для включения портов трансформации в трансформацию.

Отображение трансформаций на графе

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

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

По клику на ромбик разворачивается соответствующий блок узлов трансформации. После разворачивания логическая связь заменяется на реальные, и цвет ромбика становится серым (Рисунок 4).

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

Порты default_transformation_port должны быть вложены в трансформации default_transformation. Трансформации могут быть вложены в контейнеры трансформации (задачи) default_transformation_container, а те в свою очередь, вложены в информационные системы (например, FormIt).

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

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

Пример отображения трансформаций на графе вида "Поток данных"

Рисунок 3 – Пример отображения трансформаций со скрытой логической связью на графе вида "Поток данных"


Пример отображения развернутого блока узлов трансформации на графе вида "Поток данных"

Рисунок 4 – Пример отображения развернутого блока узлов трансформации на графе вида "Поток данных"

Раскрытие/скрытие элементов на графе

Поток данных может быть открыт для актива портов default_transformation_port и актива трансформаций default_transformation. При этом соответствующий текущему активу блок трансформации всегда открыт и не может быть скрыт (Рисунок 5). Флаг "Загружать трансформации" в настройках в этом случае всегда включен.

После раскрытия блока трансформации его можно скрыть, кликнув на серый ромбик, или через контекстное меню узла в блоке трансформации (вызывается кликом правой кнопкой мыши по имени узла).

По умолчанию узлы, относящиеся к трансформациям, окрашены в пурпурные цвета (Рисунок 6). При этом для соответствующих типов активов разрешено задавать цвета в модели типов активов и типов связей.

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

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

Для типа актива, отмеченного тегом "Трансформация", есть атрибут script, который может хранить скрипт соответствующей трансформации. Он доступен через контекстное меню узла по кнопке "Показать скрипт".

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

Связи на основной цепочке (т.е. на потоке, загруженном от текущего узла карточки) отображаются без прозрачности и более ярко (Рисунок 7).

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

Пример отображения раскрытого блока трансформаций

Рисунок 5 – Пример отображения раскрытого блока трансформаций


Пример отображения скрытого блока трансформаций

Рисунок 6 – Пример отображения скрытого блока трансформаций


Пример отображения связей основной цепочки

Рисунок 7 – Пример отображения связей основной цепочки