Обзор DataHub Project — Open-Source каталог данных. Установка Docker и настройка

Что такое DataHub Project (data catalog)?

DataHub — это каталог данных — платформа метаданных с открытым исходным кодом для modern data stack, основной задачей которой является помощь сотрудникам в обнаружении нужных данных. Первоначально DataHub был создан в LinkedIn, а затем был открыт с открытым исходным кодом под лицензией Apache 2.0.

  • GitHub Stars: 6.2k
  • Contributors: 262

Канал в телеграме: DataHub Project

DataHub Project Telegram Channel


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

DataHub имеет встроенную интеграцию с различными системами: Kafka, Airflow, MySQL, SQL Server, Postgres, LDAP, Snowflake, Hive, BigQuery и многими другими. Сообщество постоянно добавляет все больше и больше интеграций.

Прием на основе push-уведомлений может использовать предварительно созданный эмиттер или генерировать пользовательские события с помощью нашей платформы.

Зачем нужен каталог данных?

Вот несколько распространенных вариантов использования и выборка видов метаданных, которые обычно требуются:

  • Search and Discovery (Поиск и обнаружение данных): схемы данных, поля, теги, информация об использовании.
  • Access Control (Контроль доступа): группы контроля доступа, пользователи, политики.
  • Data Lineage (Происхождение данных): выполнение конвейера данынх, запросы, журналы API, схемы API.
  • Compliance (Соответствие): Таксономия типов аннотаций конфиденциальности / соответствия данных.
  • Data Management (Управление данными): конфигурация источника данных, конфигурация приема, конфигурация хранения, политики очистки данных (например, для GDPR «Право на забвение»), политики экспорта данных (например, для GDPR «Право на доступ»).
  • AI Explainability, Reproducibility (Объяснимость ИИ, Воспроизводимость): определение функции, определение модели, выполнение тренировочного прогона, постановка проблемы.
  • Data Ops: выполнение конвейера, обработанные разделы данных, статистика данных.
  •  определения правил качества данных, результаты выполнения правил, статистика данных.

Информация по DataHub

Официальная документация: DataHub Docs

GitHub: datahub-project / datahub DataHub: The Metadata Platform for the Modern Data Stack

Установка DataHub

Быстрый запуск DataHub

Вариантов инсталляций в DataHub огромное количество и все связано в первую очередь с различными вариантами конфигурации среды и кучей компонентов, которые участвуют в работе DataHub.

Минимальные  рекомендованные системные требования для установки DataHub:

  • 2 CPU,
  • 8 ГБ RAM,
  • 2 ГБ области подкачки и
  • 10 ГБ дискового пространства.

Чтобы развернуть DataHub, необходимо выполнить следующие действия. Проверял на Ubuntu, работает. Официальный туториал, по которому выполнял инсталляцию здесь: DataHub Quickstart Guide.

  1.  Установливаем docker, jq и docker-compose. У меня последние версии стояли.
  2. Запускаем в консоле следующие команды:

результат:

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

При заходе по адресу http://localhost:9002/ и авторизации, откроется интерфейс DataHub:

В указанной инсталляции я получил следующие контейнеры:

Итого на выходе имеем следующие запущенные контейнеры, необходимые для работы DataHub:

  • Контейнер datahub-frontend-react из образа linkedin/datahub-frontend-react:head
  • Контейнер datahub-datahub-actions-1 из образа acryldata/datahub-actions:head
  • Контейнер datahub-gms из образа linkedin/datahub-gms:head
  • Контейнер mysql из образа mysql:5.7
  • Контейнер schema-registry из образа confluentinc/cp-schema-registry:5.4.0
  • Контейнер broker из образа confluentinc/cp-kafka:5.4.0
  • Контейнер zookeeper из образа confluentinc/cp-zookeeper:5.4.0
  • Контейнер elasticsearch из образа elasticsearch:7.9.3

Install минимальной конфигурации DataHub с помощью docker-compose

todo

Обзор архитектуры DataHub

DataHub — это платформа метаданных 3- го поколения , которая обеспечивает обнаружение данных, совместную работу, управление и сквозную наблюдаемость, созданную для современного стека данных. DataHub использует философию «сначала модель», уделяя особое внимание обеспечению функциональной совместимости между разрозненными инструментами и системами.

На рисунке ниже показана высокоуровневая архитектура DataHub.

Обзор архитектуры DataHub

В архитектуре DataHub можно выделить три основных момента.

  • Schema-first approach to Metadata Modeling (Схематический подход к моделированию)
    Модель метаданных DataHub описывается с помощью языка, не зависящего от сериализации. Поддерживаются как REST, так и GraphQL API. Кроме того, DataHub поддерживает API на основе AVRO поверх Kafka, чтобы сообщать об изменениях метаданных и подписываться на них. Дорожная карта включает в себя веху для поддержки редактирования модели метаданных без кода в ближайшее время, что позволит еще больше упростить использование, сохраняя при этом все преимущества типизированного API.
  • Stream-based Real-time Metadata Platform (Потоковая платформа)
    Инфраструктура метаданных DataHub ориентирована на потоки, что позволяет передавать изменения в метаданных и отражать их в платформе за считанные секунды. Вы также можете подписаться на изменения, происходящие в метаданных DataHub, что позволит вам создавать системы, управляемые метаданными в реальном времени. Например, вы можете создать систему управления доступом, которая может наблюдать за набором данных, который ранее был общедоступным, добавляя новое поле схемы, содержащее PII, и блокировать этот набор данных для проверки контроля доступа.
  • Federated Metadata Serving (Обслуживание федеративных метаданных)
    DataHub поставляется с единой службой метаданных (gms) как часть репозитория с открытым исходным кодом. Однако он также поддерживает федеративные службы метаданных, которыми могут владеть и управлять разные команды — фактически, именно так LinkedIn управляет DataHub внутри. Федеративные службы взаимодействуют с центральным поисковым индексом и графиком с помощью Kafka, чтобы поддерживать глобальный поиск и обнаружение, при этом обеспечивая несвязанное владение метаданными. Такая архитектура очень удобна для компаний, внедряющих data mesh.

Основные компоненты решения DataHub

Платформа DataHub состоит из компонентов, показанных на следующей схеме:

компоненты datahub

Metadata Store (Хранилище метаданных)

Хранилище метаданных отвечает за хранение сущностей и аспектов, составляющих график метаданных. Это включает предоставление API для приема метаданных, выборку метаданных по первичному ключу, поиск сущностей и выборку отношений между сущностями. Он состоит из службы Spring Java, на которой размещается набор конечных точек API Rest.li, а также MySQL, Elasticsearch и Kafka для основного хранилища и индексирования.

Metadata Models (Модели метаданных)

Модели метаданных — это схемы, определяющие форму сущностей и аспектов, составляющих график метаданных, а также отношения между ними. Они определяются с помощью PDL, языка моделирования, очень похожего по форме на Protobuf, но сериализуются в JSON. Сущности представляют собой определенный класс ресурсов метаданных, таких как набор данных, информационная панель, конвейер данных и т.д. Каждый экземпляр Entity идентифицируется уникальным идентификатором, называемым urn. Аспекты представляют собой связанные пакеты данных, прикрепленные к экземпляру объекта, такие как его описания, теги и т.д.

Ingestion Framework

Ingestion Framework — это модульная, расширяемая библиотека Python для извлечения метаданных из внешних исходных систем (например, Snowflake, Looker, MySQL, Kafka), преобразования их в модель метаданных DataHub и записи в DataHub либо через Kafka, либо с использованием API-интерфейсов хранилища метаданных Rest. напрямую. DataHub поддерживает широкий список исходных соединителей на выбор, а также множество возможностей, включая извлечение схемы, профилирование таблиц и столбцов, извлечение информации об использовании и многое другое.

GraphQL API

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

User Interface (Пользовательский интерфейс)

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

Компоненты службы Datahub

Архитектура DataHub:

Datahub можно посчитать за 5 сервисов:

  1. Пользовательский интерфейс Datahub — приложение React.js
  2. Интерфейс Datahub — Java-приложение с Play Framework
  3. Datahub GMS — бэкэнд-приложение на Java
  4. Потребительское приложение Datahub Metadata Change Event (MCE) — потребительское приложение Kafka
  5. Потребительское приложение Datahub Metadata Audit Event (MAE) — потребительское приложение Kafka

Канал в телеграме: DataHub Project

DataHub Project Telegram Channel


Полезные статьи и источники, использованные для написания этой статьи

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x