Архитектура хранения данных: слои и метаданные

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

Три слоя хранения данных

Структура хранения данных в системе Юниверс DG разделена на три слоя:

  • Физический слой - содержит данные, которые были получены из различных внешних систем-источников. Данные для этого слоя изначально не создаются вручную в системе Юниверс DG и не редактируются внутри нее.

  • Логический слой - предназначен для моделирования структуры данных и внутреннего управления структурой. Данные здесь организуются по атрибутам, ключам, типам данных. Этот слой используется для построения отчетов, настройки правил качества данных и т.д. Объекты логического слоя полностью управляются (редактируются/удаляются) внутри системы Юниверс DG.

  • Концептуальный слой - используется для ведения глоссария, управления терминами и связывания их с физическим и логическим слоями с точки зрения бизнеса. Этот слой позволяет описать данные на понятном бизнес-пользователям языке. Объекты концептуального слоя, как и объекты логического, полностью управляются (редактируются/удаляются) внутри системы Юниверс DG.

Объекты концептуального и логического слоев (в отличие от физического) создаются только внутри системы Юниверс DG и полностью редактируются в ней, в то время как объекты физического слоя не могут быть удалены внутри системы Юниверс DG. Они удаляются только при удалении соответствующей внешней информационной системы-источника, из которой были получены.

Детальное описание слоев

Физический слой

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

  • Данные поступают исключительно из внешних источников через механизм сканеров.

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

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

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

Логический слой

Логический слой содержит данные, создаваемые и управляемые непосредственно в системе Юниверс DG. Его характеристики:

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

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

  • После ручного ввода значения в атрибут этот атрибут получает признак "ручного ввода" с наивысшим приоритетом. Сканеры не могут перезаписать значение такого атрибута.

Концептуальный слой

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

Для наглядности базовые различия слоев сведены в таблицу:

Характеристика

Физический слой

Логический и концептуальный слои

Источник данных

Внешние ИС (сканеры)

Импорт / ручной ввод

Перезапись данных

Да, при каждом сканировании

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

Ручное редактирование

Не предусмотрено архитектурой

Да, основной способ ведения

Удаление

Только при удалении источника

Вручную или через импорт

Создание и получение данных

Физический слой

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

  • Системные краулеры (стандартные) - встроенные модули для конкретных типов СУБД (PostgreSQL, Oracle и др.).

  • Пользовательский сканер (Custom Scanner) - гибко настраиваемый механизм для извлечения метаданных из произвольных систем через универсальные плоские файлы.

После получения данные физического слоя можно просматривать и искать в разделе "Каталог ИС".

Подробнее о типах сканеров и их работе см. раздел "Типы сканеров".

Логический и концептуальный слои

Данные этих слоев создаются внутри системы Юниверс DG в виде типов активов, внутри которых впоследствии создаются записи активов в разделе "Поиск по данным".

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

Примечание

Типы активов, созданные в рамках этих слоев, могут иметь дочерние типы активов и наследственные отношения между родительским и дочерним активами – наследник обогащается атрибутами родителя.

Типы сканеров

Системные краулеры

Стандартные системные краулеры обеспечивают сканирование источников, для которых реализовано специализированное подключение (например, краулер БД PostgreSQL, Oracle и др.). Такой краулер:

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

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

  • Не затрагивает атрибуты логического и концептуального слоев.

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

Пользовательский сканер (Custom Scanner)

Пользовательский сканер предназначен для извлечения метаданных из систем, для которых отсутствует встроенный краулер. Загрузка осуществляется через файлы CSV, упакованные в ZIP-архив.

Модель для пользовательского сканера

Для работы кастомного сканера необходимо предварительно создать в Юниверс DG модель типов активов, описывающую структуру извлекаемых объектов и связей. Модель создается в разделе "Управление моделью данных" (см. руководство пользователя) и определяет:

  • Типы активов (assetTypes) с атрибутами, обязательно наличие атрибутов "name" и "description".

  • Типы связей (relationTypes).

  • Разрешенные направления связей (relations) между типами активов.

Модель описывается в XML-формате и загружается в систему.

Файлы данных

На основе модели формируются два типа CSV-файлов:

  • objects*.csv - метаданные об объектах источника (таблицы, поля, отчеты и т.д.). Первая строка – заголовок с обязательными полями:

    • objectid - уникальный идентификатор объекта (без пробелов и спецсимволов);

    • objectclass - имя типа актива (AssetType) из модели;

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

  • links*.csv - метаданные о связях между объектами. Заголовок фиксирован: fromobjectid, toobjectid, association, где association - название типа связи из модели.

Допускается создание нескольких файлов каждого типа, которые объединяются в один ZIP-архив. Имена должны соответствовать маскам objects*.csv и links*.csv.

Особенности работы пользовательского сканера

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

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

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

Различие механизмов загрузки данных

В Юниверс DG существуют три основных способа наполнения и обновления метаданных: сканирование (системное или пользовательское), импорт и программный доступ через REST API. Их ключевые различия приведены в таблице.

Критерий

Сканер (системный / пользовательский)

Импорт

REST API

Назначение

Получение метаданных из внешних ИС

Пакетная загрузка данных пользователем

Программное управление записями

Целевой слой

Физический слой

Логический / концептуальный

Логический / концептуальный

Инициатор

Автоматически / по расписанию

Пользователь / администратор

Внешнее приложение

Перезапись данных

Да, для физического слоя полностью (логический слой защищен)

Да, управляется параметрами импорта

Да

Приоритет при конфликте с ручным вводом

Ниже ручного ввода атрибутов логического слоя

Не предусмотрено

Не предусмотрено

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Запрещено создавать дочерние типы активов бизнес-слоя для типов активов физического слоя.

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

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

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

Моделирование структуры типов активов

Отношения между типами активов могут быть построены по 2 принципам:

  • Наследственные отношения (наследственные по модели) применяются в разделе "Поиск по активам", где есть:

    • Родительский тип актива - стоящий выше по иерархии;

    • Наследственный тип актива - стоящий ниже под родительским.

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

  • Иерархические отношения (дочерние по связям) применяются в разделе "Каталог ИС", где есть:

    • Тип актива выше по иерархии (относительно других сравниваемых);

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

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