За годы работы с данными я усвоил одну вещь: таблица без контекста — это просто набор колонок. Кто её владелец? Что значит pd_score? Когда данные последний раз обновлялись и можно ли им верить? Больно не тогда, когда данных нет. Больно, когда они есть, но никто не помнит, что они значат.
Так в песочнице появился раздел Data Governance.
Почему не поставил OpenMetadata сразу
Первая мысль была очевидной: взять OpenMetadata и не изобретать велосипед. Он отличный. Но его полный стек — сервер, PostgreSQL, Elasticsearch — это несколько гигабайт и памяти, и на моём небольшом сервере он бы жил в ущерб остальному.
Поэтому я сделал иначе: построил свой лёгкий каталог по спецификации OpenMetadata. Сущности те же — assets, owners, classifications, glossary, contracts, quality rules, lineage. Если однажды мне понадобится полноценный сервер, я просто переключу источник: модель уже совместима, переписывать ничего не придётся.
Полный стек, кстати, никуда не делся — он в отдельном Docker-профиле и включается одной командой, когда действительно нужен:
docker compose --profile openmetadata up -d
Что каталог умеет сейчас
В демо-каталоге восемь активов: пять датасетов, дашборд, пайплайн и ML-модель. Есть владельцы, глоссарий, восемь правил качества (три не проходят порог), четыре контракта данных. Средняя оценка качества — 90.9%.
Но самое полезное — это findings. Каталог сам находит проблемы:
- у актива нет владельца;
- в датасете есть PII-колонки, но он не помечен как персональные данные;
- Tier-1 актив живёт без контракта;
- свежесть данных превышает SLA;
- правило качества провалено.
Каждой находке присваивается уровень важности, а из них складывается общий compliance score. Я не люблю дашборды ради дашбордов, но этот реально показывает, где горит.
Ещё есть lineage — граф связей. Например, transactions питает revenue_daily, который питается в дашборд. Когда что-то ломается, видно, чей это след.
Что оказалось неочевидным
Главный урок: governance — это не про инструмент, а про смысл. Можно идеально каталогизировать таблицы и всё равно не понимать данных. Каталог полезен ровно настолько, насколько честно в нём описаны владелец и определения. Технически это оказалось самой лёгкой частью.
Дальше напишу про движок, на котором вы читаете этот текст.
Загрузка…