В современных компаниях количество генерируемых и собираемых данных растет ошеломляющими темпами, что делает необходимым их организацию и управление ими. Каталоги данных стали неотъемлемой частью информационных систем, предоставляя организациям удобный и эффективный инструмент для хранения, доступа и управления различными типами данных.
Каталог данных — это центральный репозиторий информации о структуре, свойствах и отношениях между данными. Он позволяет разным пользователям легко находить, понимать и использовать данные для принятия решений и выполнения задач и будет полезен аналитикам данных, бизнес-аналитикам, специалистам по управлению данными и ХД.
Необходимость внедрения каталога данных зависит от размера и сложности бизнеса. Крупные компании предпочитают внедрять какое-то дорогое вендорское ПО (список можно найти Здесь), либо разработать собственное решение (как, например, это было сделано в Магниты И Тинькофф).
Ну а если у вас нет ресурсов ни на то, ни на другое, но вы уже испытали на себе всю боль «плохих» данных, сложности ведения документации в Confluence, столкнулись с проблемами Чтобы понять тип данных у вас вообще, вы можете начать с проектов с открытым исходным кодом.
Наиболее популярными инструментами каталога данных с открытым исходным кодом являются:
Требования, которым должен соответствовать каталог данных, могут варьироваться от компании к компании, но есть несколько основных:
-
автоматическое обнаружение наборов данных из различных источников;
-
понятный пользовательский интерфейс;
-
визуализировать происхождение данных;
-
возможность поиска по ключевым словам, бизнес-терминам;
-
отображение структуры данных;
-
просмотреть владельца данных;
-
возможность интеграции с другими инструментами управления данными (airflow, большие ожидания, dbt и т.д.);
-
контроль доступа.
Contents
Добро пожаловать в ДатаХаб!
Расширенная архитектура Дата центр представлено ниже:
Дата центр имеет гибкую архитектуру приема метаданных, которая позволяет поддерживать как модели интеграции push, так и pull.
Интеграция на основе извлечения обеспечивается расширяемой библиотекой Python для извлечения метаданных из внешних систем (Postgres, Snowflake, MySQL и т. д.).
Push позволяет обновлять метаданные по мере их изменения (например, AirFlow, Большие надежды). Мы можем отправлять изменения с помощью Kafka, REST или Python.
Метаданные поступают на так называемый сервисный уровень. Центральным компонентом этого уровня является служба метаданных.

Служба метаданных предоставляет REST API и GraphQL API для выполнения операций с метаданными. Полнотекстовые и расширенные поисковые запросы отправляются в поисковый индекс, а сложные графовые запросы, такие как родословная, отправляются в графический индекс.
Любые изменения метаданных фиксируются в постоянном хранилище. Событие об этом отправляется в журнал изменений метаданных (Kafka), который создается службой метаданных. Канал этих событий — это общедоступный API, на который могут подписаться внешние системы, что позволяет вам реагировать на изменения метаданных (например, через уведомления в Slack).
Журнал изменений метаданных используется заданием Spring для внесения соответствующих изменений в граф поиска и индексы.
Настройка концентратора данных
Развивать Дата центр Это не сложно, достаточно установить необходимые библиотеки:
pip install ‘acryl-datahub’
и развернуть экземпляр Дата центр в Докере:
datahub docker quickstart
Интерфейс доступен через браузер (http://локальный:9002).

Пользователь root создается по умолчанию. Дата центр с паролем Дата центр. Как вы меняете пользователя по умолчанию, зависит от того, как вы развернули Дата центр. Вы можете прочитать об этом подробнее Здесь.
О поддержке концепции Data Mesh
Сетка данных представляет собой децентрализованный подход к управлению данными. Данные хранятся в разных доменах и управляются экспертами в предметной области. Однако данные должны быть в открытом доступе.
Дата центр Позволяет командам сопоставлять свои группы активов данных с доменами, категориями верхнего уровня, такими как все данные, принадлежащие бизнес-организации.
Кроме того, команды или бизнес-группы могут связать свои данные со стандартными отраслевыми бизнес-терминами, используя бизнес-глоссарий.
Рассмотрим эти понятия на примере.
PS Пример отражает мое понимание, и если я где-то ошибаюсь, поправьте меня, пожалуйста)
Предположим, мы хотим создать домен финансовых транзакций. В правом верхнем углу видим вкладку руль:

Чтобы создать домен, нажмите + New Domain
:

Добавьте описание к нашему домену и зарегистрируйтесь:

Мы можем добавить продукты данных в домен. Обычно название соответствует логическому назначению информационного продукта, например, «Кредитные операции», «Платежные операции» и т. д., а также связано с информационным активом или набором информационных активов:

Далее мы хотим завершить наше понимание данных и определить группу релевантных бизнес-терминов для нашего домена. Откройте вкладку Глоссарий:

Давайте создадим группу финансовых терминов и добавим в эту группу несколько других терминов:

Вы можете перемещать термины в другие родительские группы, связывать несколько терминов глоссария, используя отношения наследования, и разделять термин на подтермины.
Давайте создадим еще несколько терминов и свяжем их вместе:

Мы можем убедиться, что подтермины правильно отображают родительский термин:

Следует отметить, что создание бизнес-глоссария и доменов требует разработки руководящих принципов, которым могут следовать группы управления данными, чтобы одинаково использовать концепции метаданных.
В общем, набор концепций данных методов, предоставляемых DataHub, является хорошей отправной точкой и помогает создавать сложные модели данных.
Теперь мы можем легко связать наш ресурс данных с созданным доменом и деловыми терминами.
Добавление источника данных
Здесь нет ничего сложного, DataHub поддерживает множество готовых интеграций. На вкладке Ingest видим доступные источники получения данных:

Мы также можем добавить метаданные с помощью рецепта — это основной файл конфигурации, который сообщает принимающим скриптам, откуда брать данные и куда их помещать.
Давайте развернем локальную базу данных Postgres
с небольшим набором данных (отсюда) и подключите его к DataHub. Клонирование репозитория Здесь.
docker compose -f "simple-postgres-container/docker-compose.yaml" up -d --build
Наша база данных доступна по адресу localhost:5432
. Теперь нам нужно подключить наш контейнер к сети datahub_network
и познакомься с ним IPAddress
(иначе я не мог подключиться):
docker network connect datahub_network postgresdb
docker inspect -f '{{ .NetworkSettings.Networks.datahub_network.IPAddress }}' postgresdb
Выберите источник данных Postgres
и следуйте инструкциям по подключению:

Наша база данных успешно подключена:

И если мы вернемся на стартовую страницу, то увидим, что к нашим данным добавилась информация о платформе:

Теперь мы можем перейти к нашей табличке и связать домен, пользователя, ответственного за этот актив, добавить к нему термины, теги и документацию:

Следует отметить, что в настоящее время актив данных может принадлежать только одному домену.
DataHub также поддерживает установку тегов, которые представляют собой неофициальные, свободно контролируемые ярлыки для поиска и обнаружения данных и предназначены для упрощения разметки данных без необходимости связывать их с более крупным глоссарием для бизнеса.
Заключение
Каталог данных — отличный инструмент для решения задач, связанных с обнаружением, понятностью и использованием данных. Данные должны быть хорошо задокументированы, чтобы показать, кто несет ответственность за их создание, детализацию, управление и качество.
DataHub — отличная отправная точка для внедрения каталога данных на предприятии с гибкой функциональностью и возможностью расширения в соответствии с вашими потребностями.
В следующей части мы немного поговорим о политиках доступа, происхождении данных и о том, как можно отслеживать изменения метаданных на платформе)