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

Объекты, загруженные в систему из внешних источников с помощью системных краулеров DG (например, краулера БД PostgreSQL), считаются объектами физического слоя.

Для таких объектов в процессе работы краулеров автоматически проставляется тег layer:physical. Тег также может быть проставлен вручную.

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

Объекты могут загружаться в систему вручную из библиотек в разделе "Управление активами" или автоматически при запуске сканеров.

Теги объектов физического слоя

Отображение тегов на 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);

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

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

Поэтому физический слой имеет ряд ограничений:

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

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

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

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