Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → Каталог данных и метаданные

Каталог данных: метаданные, владельцы и поиск

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

Прямой ответ

Каталог данных — справочник о наборах данных: что содержит таблица, кто за неё отвечает, откуда взялись значения и кто их использует. Каталог решает задачу поиска данных без чтения схемы вручную.

Состав метаданных Содержание Назначение
Технические Схема, типы, ограничения Понимание структуры
Деловые Описание, словарь терминов Понимание смысла значений
Организационные Владелец, ответственный за качество Адрес обращения
Эксплуатационные Частота обновления, задержка Оценка пригодности
-- Технические метаданные доступны из системного каталога
SELECT c.relname, a.attname, format_type(a.atttypid, a.atttypmod) AS type,
       a.attnotnull
FROM pg_attribute a
JOIN pg_class c ON c.oid = a.attrelid
WHERE c.relname = 'orders' AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum;

COMMENT ON TABLE dwh.orders IS 'Заказы из учётной системы, обновляется инкрементально';
COMMENT ON COLUMN dwh.orders.amount_minor IS 'Сумма в минорных единицах валюты';

Комментарии к объектам хранятся рядом со схемой, поэтому описание не расходится со структурой при переносе базы.

Деловые метаданные не выводятся из схемы автоматически: описание смысла значения и связь с термином предметной области задаются явно. О слоях, в которых размещаются таблицы, — в статье про слои хранилища.

Владелец данных, происхождение и актуальность описаний

Каталог приносит пользу при трёх условиях, каждое из которых проверяется отдельно.

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

Зафиксировано происхождение. Ссылка на источник и правило преобразования позволяет разобрать расхождение без чтения кода; о происхождении — в статье про lineage.

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

Практическое следствие: каталог без владельца и правила обновления превращается в набор устаревших описаний.

Отдельный аспект — способ наполнения. Технические метаданные собираются из системного каталога автоматически, деловые описания вводятся вручную. Автоматический сбор охватывает структуру, но не смысл значений.

Три признака неработающего каталога.

Описания заполнены при создании и не обновляются. Расхождение с фактическим содержанием выявляется при первом же обращении.

Отсутствует связь с использованием. Каталог не показывает, какие отчёты читают таблицу, поэтому влияние изменения не оценивается.

Нет адреса обращения. Пользователь не знает, к кому обратиться с вопросом о значении поля.

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

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

Практика: наполнение и сопровождение каталога

1. Назначьте владельца для каждого набора. Ответственный за таблицу определяет, кто обновляет описание при изменении источника.

2. Собирайте технические метаданные автоматически. Схема, типы и ограничения доступны из системного каталога, поэтому ввод вручную избыточен.

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

4. Фиксируйте происхождение данных. Ссылка на источник и правило преобразования позволяет разобрать расхождение без чтения кода.

5. Указывайте частоту обновления и задержку. Потребитель оценивает пригодность данных для задачи по актуальности.

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

7. Проверяйте актуальность описаний. Периодический пересмотр выявляет расхождение описания с фактическим содержанием.

Рекомендации:

  1. Различайте технические и деловые метаданные. Первые собираются автоматически, вторые вводятся вручную и требуют сопровождения.
  2. Не описывайте очевидное. Описание поля с понятным именем увеличивает объём каталога без пользы.
  3. Используйте единый словарь терминов. Разные названия одного показателя в описаниях приводят к расхождению в отчётах.
  4. Учитывайте стоимость сопровождения. Каталог охватывает наборы, которые используются, а не все таблицы в базе.
  5. Проверяйте каталог по обращениям. Вопрос пользователя о смысле поля указывает на пробел в описании.

Практический сценарий: показатель считали по-разному в двух отчётах

Контекст: два отчёта показывали разную выручку за период, при этом оба считались корректными авторами.

  1. Диагностика. Поле «выручка» в одной витрине включало налоги, в другой — нет. Описания полей в каталоге отсутствовали, поэтому расхождение обнаружилось только при сверке отчётов.
  2. Причина. Деловые метаданные не заполнялись, а название поля не отражало состав значения. Единый словарь терминов отсутствовал, поэтому каждый автор определял показатель самостоятельно.
  3. Действия. (а) Ввели описание полей с указанием состава значения и единиц измерения; (б) зафиксировали определение показателя в словаре терминов и связали с ним описания; (в) назначили владельца для витрин с показателями; (г) добавили в каталог перечень отчётов, читающих каждую витрину; (д) пересчитали отчёт с явным указанием определения показателя.
  4. Результат. Определение показателя зафиксировано в одном месте, расхождение между отчётами объясняется и устраняется выбором определения.

Вывод: отсутствие деловых метаданных и единого словаря терминов приводит к различному толкованию одного названия поля. Описание состава значения и владелец набора устраняют расхождение в интерпретации.

FAQ

Что даёт каталог, если схема видна в базе? Схема показывает структуру, но не смысл значений, владельца и происхождение. Каталог отвечает на вопросы, которые не выводятся из типов полей.

Нужно ли описывать каждое поле? Нет, описываются поля со специальным смыслом: единицы измерения, состав значения, допустимые состояния. Очевидные имена не требуют описания.

Как поддерживать актуальность описаний? Назначением владельца набора и проверкой описаний при изменении источника. Автоматический сбор охватывает только технические метаданные.

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

Источники: PostgreSQL system catalogs, information functions, dbt — ссылки в шапке.