Архитектура хранения данных: слои и метаданные
Статья посвящена архитектуре хранения данных в системе Юниверс 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 принципам:
Наследственные отношения (наследственные по модели) применяются в разделе "Поиск по активам", где есть:
Родительский тип актива - стоящий выше по иерархии;
Наследственный тип актива - стоящий ниже под родительским.
Наследование предназначено для моделирования типов активов, которые представляют собой одну и ту же сущность (например, таблицу) и моделирование происходит от общего к частному. При наследовании некоторые атрибуты родительских типов активов появляются и у дочерних (базовые - всегда, остальные - при указании пользователем).
Иерархические отношения (дочерние по связям) применяются в разделе "Каталог ИС", где есть:
Тип актива выше по иерархии (относительно других сравниваемых);
Тип актива ниже по иерархии (относительно других сравниваемых).
Иерархия строится по связям между типами активов со свойством "Вложенная связь". Иерархия предназначена для типов активов, относящихся к разным сущностям, например таблица и колонка (внутри этой таблицы).