Физический слой данных

Тип актива, атрибут и связь относятся к физическому слою, если для них задан тег layer:physical.

Тег проставляется автоматически в процессе работы системных сканеров Юниверс DG, если данные приходят из краулера PostgreSQL.

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

Отображение тегов на UI

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

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

Пример отображения атрибутов, принадлежащих к физическому слою

Рисунок 1 – Пример отображения атрибутов, принадлежащих к физическому слою

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

Рисунок 2 – Пример отображения связей, принадлежащих к физическому слою

Проставление тегов вручную

Для проставления тегов вручную в .xml-файле модели типов активов необходимо указать <tags name="layer" value="physical"/>. Пример разметки .xml указан ниже. Далее файл модели типов активов импортируется в систему через интерфейс пользователя.

Также предусмотрены теги category:attribute и category:table. Теги используются в графе "Поток данных"; тег category:attribute также позволяет отображать краткие результаты профилирования в связях (колонка "Профилирование").

Теги атрибутов и таблицы добавляются только вручную. Для этого .xml-файле модели типов активов разметьте их как <tags name="category" value="attribute"/> и <tags name="category" value="table"/>.

При реализации кастомного краулера можно определить автоматическое добавление тегов layer:physical, category:attribute и category:table. Для этого:

  • Используйте интерфейс org.unidata.dg.meta.type.crawler.DataGovernanceCrawler.

  • В методе model() укажите модель данных типов активов с добавленными тегами.

  • Во время сканирования модель из model() вмерживается в существующую модель в системе. Все, что будет указано в модели, включая теги, будет добавлено в систему.

Пример разметки .xml модели типов данных

<assetType version="152" name="PgSchema" displayName="Postgres schema" order="0">
      <simpleAttribute name="PgSchemaName" displayName="Name" readOnly="false" ...>
      <tags name="layer" value="physical"/>
      </simpleAttribute>
      <tags name="layer" value="physical"/>
</assetType>

<relation relationType="Consist" fromAssetType="PgSchema" toAssetType="PgTable" fromCardinality="1" toCardinality="0" required="false">
   <tags name="layer" value="physical"/>
</relation>

Пример разметки Java

AssetTypeSource INFORMATION_SYSTEM = new AssetTypeSource()
      .withName("InformationSystemAsset")
      .withDisplayName("Информационная система")
      .withSimpleAttribute(new SimpleDataGovernanceAttributeSource()
               .withName("name")
               .withDisplayName("Наименование")
               .withSimpleDataType(SimpleDataType.STRING)
               .withDisplayable(true)
               .withMainDisplayable(true)
               .withSearchable(true)
               .withBase(true)
               .withTags(DataGovernanceModelTags.TAG_PHYSICAL))
      .withVersion(1)
      .withTags(DataGovernanceModelTags.TAG_PHYSICAL);

RelationSource PG_FOREIGN_KEY_RELATION = new RelationSource()
      .withFromAssetType("PgColumn")
      .withToAssetType("PgColumn")
      .withRelationType("PgForeignKey")
      .withTags(DataGovernanceModelTags.TAG_PHYSICAL);

Ограничения физического слоя

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

  • Запрещено создавать/удалять активы и связи, которые принадлежат к физическому слою.

  • Запрещено редактировать атрибуты активов, которые принадлежат к физическому слою.

  • Разрешено добавлять новые атрибуты в активы, которые принадлежат к физическому слою. Атрибуты будут доступны для удаления и редактирования.

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