По мере развития цифровой трансформации управление данными становится частью повестки дня все большего числа компаний. Как новое поколение Управления метаданными платформами, Datahub быстро развивался за последний год и во многом заменил старое Управление метаданным инструментом Атлас импульс. О отечественном Datahub очень мало данных. Большинство компаний хотят использовать Datahub в качестве собственной базы данных. метаданными платформами, но справочных материалов слишком мало.
Поэтому я составил этот документ, чтобы каждый мог его изучить и использовать.。Этот документ основан наДатахаб последняя версия 0.8.20,Организовано из части контента официального сайта.,Различные блоги и практические процессы. Статья длиннее,Рекомендуемая коллекция。Новую версию документа, пожалуйстасосредоточиться на публичном аккаунте большой поток данных,Буду продолжать обновлять~
через этот документ,Быстро начните работу с Datahub,успешная сборкаDatahubИ получить информацию о метаданных базы данных。изНачало работы Документ от 0 до 1,Более продвинутые функции Datahub,Можетсосредоточиться Последующие обновления статьи.
Всего текста: 10289 слов, 32 картинки.
Примерное время чтения: 26 минут.
Документ разделен на 6 частей, иерархическая структура показана на рисунке ниже.
Авторские права на документ - публичный аккаунт большой поток данных Всем, пожалуйста, не используйте его в коммерческих целях.
Зачем нам нужно управление данными? Существует много предприятий, много данных, и бизнес-данные постоянно повторяются. Наблюдается поток кадров, неполная документация и неясная логика. Данные сложно понять интуитивно и сложно их поддерживать в дальнейшем.
В исследованиях и разработках больших данных существует множество баз данных и таблиц для необработанных данных.
После агрегирования данных будет много таблиц измерений.
В последние годы объем данных бешено растет, что повлекло за собой ряд проблем. Что касается поддержки данных для команд искусственного интеллекта, наиболее частый вопрос, который мы слышим, — «им нужен правильный набор данных для анализа». Мы начали понимать, что, хотя мы создали масштабируемое хранилище данных, вычисления в реальном времени и другие возможности, наша команда по-прежнему тратила время на поиск подходящих наборов данных для анализа.
То есть у нас нет праваактивы данныхуправление。фактически,Многие компании предлагают Открытый исходный Решением кода для решения вышеуказанной проблемы является обнаружение данных с помощью Управления. метаданнымиинструмент。
Проще говоря, Управление метаданными предназначено для эффективной организации активов данных. Он использует метаданные для управления своими данными. Это также помогает специалистам по данным собирать, систематизировать, получать доступ и обогащать метаданные.,для поддержки управления данными.
Тридцать лет назад активом данных могла быть таблица в базе данных Oracle. Однако на современном предприятии мы имеем ошеломляющее количество различных типов информационных активов. Это может быть таблица в реляционной базе данных или хранилище NoSQL, потоковые данные в реальном времени, функция в системе искусственного интеллекта, метрика в платформе метрик, панель мониторинга в инструменте визуализации данных.
современный Управление метаданными должны содержать все эти типы активностей. данных,и дать возможность работникам обработки данных использовать эти ресурсы для более эффективного выполнения своей работы.
Таким образом, функции, которые должно иметь Управление метаданными, заключаются в следующем:
Управление представлено ниже Архитектура реализация метаданная, разные архитектуры соответствуют разным Открытый исходный код реализован.
На диаграмме ниже изображена архитектура метаданных первого поколения. Обычно это классический монолитный интерфейс (вероятно, приложение Flask), подключенный к основному хранилищу для запросов (обычно MySQL/Postgres), поисковому индексу для обслуживания поисковых запросов (обычно Elasticsearch) и для этого поколения 1.5 этой архитектуры, возможно, один раз. был достигнут предел «рекурсивных запросов» реляционных баз данных, использовались индексы графов, которые обрабатывали запросы графов происхождения (обычно Neo4j).
Вскоре появилась архитектура второго поколения. Монолитное приложение было разделено на службы, расположенные перед базой данных хранилища метаданных. Служба предоставляет API, который позволяет записывать метаданные в систему с использованием механизма push.
Архитектура третьего поколения — это событийно-ориентированная архитектура Управления метаданными, в которой клиенты могут взаимодействовать с базой метаданных по-разному в зависимости от своих потребностей.
Поиск метаданных с малой задержкой, возможность выполнять полнотекстовый и ранжированный поиск по атрибутам метаданных, графические запросы по связям метаданных, а также возможности полного сканирования и анализа.
Datahub использует эту архитектуру.
Следующая диаграмма представляет собой простое визуальное представление современного ландшафта метаданных:
(Включая некоторые решения с закрытым исходным кодом)
В качестве основного направления исследования можно использовать и другие варианты, но они не являются предметом данной статьи.
Прежде всего, у Alibaba Cloud также есть продукт под названием DataHub, который представляет собой платформу потоковой обработки, упомянутая в этой статье, не имеющая к этому никакого отношения.
Управление данными — горячая тема, обсуждаемая в последнее время крупными парнями. независимо от национального уровня,Или дело в том, что на корпоративном уровне этому вопросу уделяется все больше внимания. Управление данными должно решать проблему качества данных,Управление данными,активы данных,Безопасность данных и многое другое。Ключом к управлению данными являетсяУправление метаданными,Нам нужно знать все тонкости данных,Для комплексного управления данными,монитор,Понимание.
DataHub — это инструмент с открытым исходным кодом, предоставленный командой данных LinkedIn, который обеспечивает поиск и обнаружение метаданных.
Говоря о LinkedIn, мы должны вспомнить знаменитую Kafka, исходный код которой открыт для LinkedIn. Kafka с открытым исходным кодом LinkedIn напрямую повлияла на развитие всей области вычислений в реальном времени, а команда данных LinkedIn изучает вопросы управления данными и постоянно работает над расширением своей инфраструктуры для удовлетворения потребностей растущей экосистемы больших данных. По мере роста объема и богатства данных ученым и инженерам, работающим с данными, становится все сложнее обнаруживать доступные активы данных, понимать их происхождение и предпринимать соответствующие действия на основе полученной информации. Чтобы способствовать росту и одновременно продолжать повышать производительность и инновации в области данных, был создан DataHub, универсальный инструмент поиска и обнаружения метаданных.
Распространенными на рынке являются следующие системы управления метаданными:
a) linkedin datahub: https://github.com/linkedin/datahub
b) apache atlas: https://github.com/apache/atlas
c) lyft amundsen https://github.com/lyft/amundsen
Ранее мы также представили Atlas, который имеет очень хорошую поддержку hive, но его очень сложно развернуть. Amundsen все еще является развивающейся структурой и еще не выпустил релизную версию. Еще неизвестно, сможет ли она развиваться в будущем.
Подводя итог, можно сказать, что datahub в настоящее время является новой звездой, но информации о datahub все еще меньше. В будущем мы продолжим уделять внимание и обновлять больше информации о datahub.
В настоящее время количество звезд DataHub на GitHub достигло 4,3 тыс.
Официальный сайт Датахаба
Официальный сайт Датахабаза его описание как Данные ecosystems are diverse — too diverse. DataHub's extensible metadata platform enables data discovery, data observability and federated governance that helps you tame this complexity.
Экология данных разнообразна, и DataHub обеспечивает масштабируемое Управление метаданнымиплатформа,Может удовлетворить обнаружение данных,Наблюдаемость и управление данными. Это также значительно решает проблему сложности данных.
Datahub обеспечивает обширную поддержку источников данных и отображение происхождения.
При получении источника данных вам нужно всего лишь написать простой файл yml для завершения получения метаданных.
С точки зрения поддержки источников данных,Datahub поддерживает друида,hive,kafka,mysql,oracle,postgres,redash,metabase,источники данных, такие как расширенный набор,и поддерживает прохождениеairflowСбор данных о происхождении。Может说实现了从Полная ссылка от источников данных к инструментам BIРодословная данных открыта。
Давайте кратко рассмотрим функции, которые Datahub может выполнять на странице Datahub.
Сначала после входа в Datahub вы попадаете на домашнюю страницу Datahub. На домашней странице имеется строка меню Datahub, окно поиска и список метаданных. Это сделано для того, чтобы каждый мог быстро управлять метаданными.
Информация метаданных классифицируется по таким типам, как наборы данных, информационные панели, диаграммы и т. д.
Ниже находится информация о платформе, которая включает в себя коллекцию Hive, Kafka, Airflow и другую информацию о платформе.
Ниже приведены некоторые статистические данные поиска. Используется для подсчета последних и наиболее популярных результатов поиска.
Включает некоторую маркировку и глоссарную информацию.
Страница анализа представляет собой статистику метаданных и статистику пользовательской информации с использованием datahub.
Его можно понимать как страницу отображения, которая очень необходима для понимания общей ситуации.
Другие функции — это, в основном, контроль пользователей и разрешений.
Если вы хотите хорошо изучить Datahub, вы должны понимать общую архитектуру Datahub.
Вы можете четко понять архитектурную структуру Datahub с помощью диаграммы архитектуры Datahub.
Архитектура DataHub состоит из трех основных частей.
Интерфейс — это интерфейс Datahub, который отображает страницу на интерфейсе.
Богатый внешний вид дает Datahub возможность поддерживать большинство функций. Его интерфейс разработан на основе React. Компаниям, имеющим второстепенные планы исследований и разработок, следует обратить внимание на совместимость этого стека технологий.
Серверный сервис Datahub предоставляет услуги внутреннего хранилища.
Языком внутренней разработки Datahub является Python, а хранилище основано на ES или Neo4J.
Прием Datahub используется для извлечения метаданных.
Datahub предоставляет активный метод извлечения метаданных на основе API и метод сбора метаданных в реальном времени на основе Kafka. Это очень гибко для получения метаданных.
Эти три части также являются нашим основным направлением в процессе развертывания. Далее мы развернем Datahub с нуля и получим метаданные базы данных.
Развертывание концентратора данных предъявляет определенные требования к системе. Эта статья основана на установке CentOS7.
Сначала вам необходимо установить docker, jq и docker-compose. В то же время убедитесь, что версия системы Python — Python 3.6+.
Docker — это механизм контейнеров приложений с открытым исходным кодом, который позволяет разработчикам упаковывать свои приложения и пакеты зависимостей в портативный контейнер, а затем публиковать их на любом популярном компьютере с операционной системой Linux или Windows. Он также может реализовывать виртуализацию и контейнеры. Он полностью использует «песочницу». механизм, и между ними не будет интерфейса.
Вы можете быстро установить докер через yum
yum -y install docker
После завершения используйте docker -v, чтобы проверить статус версии.
# docker -v
Docker version 1.13.1, build 7d71120/1.13.1
Вы можете запустить и остановить докер с помощью следующих команд
systemctl start docker // Запустить докер
systemctl stop docker // Закрыть окно настройки
Затем установите Docker Compose.
Docker Compose — это инструмент командной строки, предоставляемый Docker для определения и запуска приложений, состоящих из нескольких контейнеров. Используя Compose, мы можем декларативно определить каждую службу приложения через файлы YAML, а также создать и запустить приложение с помощью одной команды.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Изменение разрешений на выполнение
sudo chmod +x /usr/local/bin/docker-compose
Установить мягкое соединение
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Проверьте версию и убедитесь, что установка прошла успешно.
docker-compose --version
docker-compose version 1.29.2, build 5becea4c
Установить jq
Сначала установите исходный код EPEL. Пакеты дополнений Enterprise Linux (далее называемые EPEL) — это специальная группа по интересам Fedora, используемая для создания, поддержки и управления высококачественным набором дополнительных пакетов для Enterprise Linux. не ограничиваются Red Hat Enterprise Linux (RHEL), CentOS, Scientific Linux (SL), Oracle Linux (OL).
Пакеты EPEL обычно не конфликтуют с пакетами в официальных репозиториях Enterprise Linux и не заменяют файлы друг друга. Проект EPEL по сути такой же, как Fedora, включая полную систему сборки, менеджер обновлений, менеджер образов и т. д.
Установить исходный код EPEL
yum install epel-release
После установки исходного кода EPEL вы можете проверить, существует ли пакет jq:
yum list jq
Установить jq:
yum install jq
Установить зависимости
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
Загрузите установочный пакет
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
tar -zxvf Python-3.8.3.tgz
Скомпилируйте и установите
mkdir /usr/local/python3
cd Python-3.8.3
./configure --prefix=/usr/local/python3
make && make install
Измените системное указание Python по умолчанию.
rm -rf /usr/bin/python
ln -s /usr/local/python3/bin/python3 /usr/bin/python
Измените системный указатель пипса по умолчанию
rm -rf /usr/bin/pip
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
проверять
python -V
исправь ням
python3 приведет к неправильной работе yum
vi /usr/bin/yum
Пучок #! /usr/bin/python Изменить на #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
Пучок #! /usr/bin/python Изменить на #! /usr/bin/python2
vi /usr/bin/yum-config-manager
#!/usr/bin/python Изменить на #!/usr/bin/python2
Если нет, то не нужно его изменять
Первый пункт обновления
python3 -m pip install --upgrade pip wheel setuptools
Нужно увидеть успешный возврат ниже.
Attempting uninstall: setuptools
Found existing installation: setuptools 57.4.0
Uninstalling setuptools-57.4.0:
Successfully uninstalled setuptools-57.4.0
Attempting uninstall: pip
Found existing installation: pip 21.2.3
Uninstalling pip-21.2.3:
Successfully uninstalled pip-21.2.3
Проверьте среду
python3 -m pip uninstall datahub acryl-datahub || true # sanity check - ok if it fails
Получение такого сообщения означает, что проблем нет.
WARNING: Skipping datahub as it is not installed.
WARNING: Skipping acryl-datahub as it is not installed.
Установите datahub. Этот шаг занимает много времени, поэтому наберитесь терпения.
python3 -m pip install --upgrade acryl-datahub
Получение такого запроса означает, что установка прошла успешно.
Successfully installed PyYAML-6.0 acryl-datahub-0.8.20.0 avro-1.11.0 avro-gen3-0.7.1 backports.zoneinfo-0.2.1 certifi-2021.10.8 charset-normalizer-2.0.9 click-8.0.3 click-default-group-1.2.2 docker-5.0.3 entrypoints-0.3 expandvars-0.7.0 idna-3.3 mypy-extensions-0.4.3 progressbar2-3.55.0 pydantic-1.8.2 python-dateutil-2.8.2 python-utils-2.6.3 pytz-2021.3 pytz-deprecation-shim-0.1.0.post0 requests-2.26.0 stackprinter-0.2.5 tabulate-0.8.9 toml-0.10.2 typing-extensions-3.10.0.2 typing-inspect-0.7.1 tzdata-2021.5 tzlocal-4.1 urllib3-1.26.7 websocket-client-1.2.3
Наконец, мы видим версию datahub.
[root@node01 bin]# python3 -m datahub version
DataHub CLI version: 0.8.20.0
Python version: 3.8.3 (default, Aug 10 2021, 14:25:56)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
Затем запустите центр данных
python3 -m datahub docker quickstart
Процесс загрузки займет много времени, пожалуйста, подождите терпеливо.
Запустите автозагрузку и обратите внимание на сообщение об ошибке. Если скорость сети недостаточна, вам нужно выполнить это еще несколько раз.
Если вы видите следующий экран, установка прошла успешно.
Посетите ip: 9002, введите логин datahub datahub.
После входа в Datahub появится дружелюбная страница приветствия. Предоставить советы о том, как собирать метаданные.
Прием метаданных использует архитектуру подключаемых модулей, вам нужно только установить необходимые подключаемые модули.
Существует много источников поступления
Название плагина Команда установки Обеспечить функциональность
mysql pip install 'acryl-datahub[mysql]' MySQL source
Установите два плагина здесь:
Источник: MySQL
раковина: datahub-rest
pip install 'acryl-datahub[mysql]'
Установлено много пакетов, и вы получите следующее приглашение, подтверждающее успешность установки.
Installing collected packages: zipp, traitlets, pyrsistent, importlib-resources, attrs, wcwidth, tornado, pyzmq, pyparsing, pycparser, ptyprocess, parso, nest-asyncio, jupyter-core, jsonschema, ipython-genutils, webencodings, pygments, prompt-toolkit, pickleshare, pexpect, packaging, nbformat, matplotlib-inline, MarkupSafe, jupyter-client, jedi, decorator, cffi, backcall, testpath, pandocfilters, nbclient, mistune, jupyterlab-pygments, jinja2, ipython, defusedxml, debugpy, bleach, argon2-cffi-bindings, terminado, Send2Trash, prometheus-client, nbconvert, ipykernel, argon2-cffi, numpy, notebook, widgetsnbextension, toolz, ruamel.yaml.clib, pandas, jupyterlab-widgets, jsonpointer, tqdm, termcolor, scipy, ruamel.yaml, jsonpatch, ipywidgets, importlib-metadata, altair, sqlalchemy, pymysql, greenlet, great-expectations
Successfully installed MarkupSafe-2.0.1 Send2Trash-1.8.0 altair-4.1.0 argon2-cffi-21.3.0 argon2-cffi-bindings-21.2.0 attrs-21.3.0 backcall-0.2.0 bleach-4.1.0 cffi-1.15.0 debugpy-1.5.1 decorator-5.1.0 defusedxml-0.7.1 great-expectations-0.13.49 greenlet-1.1.2 importlib-metadata-4.10.0 importlib-resources-5.4.0 ipykernel-6.6.0 ipython-7.30.1 ipython-genutils-0.2.0 ipywidgets-7.6.5 jedi-0.18.1 jinja2-3.0.3 jsonpatch-1.32 jsonpointer-2.2 jsonschema-4.3.2 jupyter-client-7.1.0 jupyter-core-4.9.1 jupyterlab-pygments-0.1.2 jupyterlab-widgets-1.0.2 matplotlib-inline-0.1.3 mistune-0.8.4 nbclient-0.5.9 nbconvert-6.3.0 nbformat-5.1.3 nest-asyncio-1.5.4 notebook-6.4.6 numpy-1.21.5 packaging-21.3 pandas-1.3.5 pandocfilters-1.5.0 parso-0.8.3 pexpect-4.8.0 pickleshare-0.7.5 prometheus-client-0.12.0 prompt-toolkit-3.0.24 ptyprocess-0.7.0 pycparser-2.21 pygments-2.10.0 pymysql-1.0.2 pyparsing-2.4.7 pyrsistent-0.18.0 pyzmq-22.3.0 ruamel.yaml-0.17.19 ruamel.yaml.clib-0.2.6 scipy-1.7.3 sqlalchemy-1.3.24 termcolor-1.1.0 terminado-0.12.1 testpath-0.5.0 toolz-0.11.2 tornado-6.1 tqdm-4.62.3 traitlets-5.1.1 wcwidth-0.2.5 webencodings-0.5.1 widgetsnbextension-3.5.2 zipp-3.6.0
Затем проверьте установленные плагины Datahub – это метод установки плагинов. Вы можете проверить источник данных, чтобы получить подключаемый модуль Source, подключаемый преобразователь преобразования и подключаемый модуль Sink.
python3 -m datahub check plugins
Видно, что плагин Mysql и плагин интерфейса Rest установлены. Следующая конфигурация предназначена для получения метаданных из MySQL и использования интерфейса Rest для хранения данных в DataHub.
vim mysql_to_datahub_rest.yml
# A sample recipe that pulls metadata from MySQL and puts it into DataHub
# using the Rest API.
source:
type: mysql
config:
username: root
password: 123456
database: cnarea20200630
transformers:
- type: "fully-qualified-class-name-of-transformer"
config:
some_property: "some.value"
sink:
type: "datahub-rest"
config:
server: "http://ip:8080"
# datahub ingest -c mysql_to_datahub_rest.yml
Далее следует длительный процесс сбора данных.
После получения следующего запроса это доказывает, что приобретение прошло успешно.
{datahub.cli.ingest_cli:83} - Finished metadata ingestion
Sink (datahub-rest) report:
{'records_written': 356,
'warnings': [],
'failures': [],
'downstream_start_time': datetime.datetime(2021, 12, 28, 21, 8, 37, 402989),
'downstream_end_time': datetime.datetime(2021, 12, 28, 21, 13, 10, 757687),
'downstream_total_latency_in_seconds': 273.354698}
Pipeline finished with warnings
Обновите страницу datahub здесь, и информация метаданных mysql будет успешно получена.
Введите таблицу, чтобы просмотреть метаданные и информацию о полях таблицы.
Страница анализа метаданных также подробно отображалась ранее.
На данный момент мы завершили построение Datahub от 0 до 1. За весь процесс, кроме простой установки и настройки, практически никаких работ по разработке кода не проводилось. Но в datahub есть больше функций, таких как получение происхождения данных, выполнение операций преобразования в процессе получения метаданных и так далее. Руководства по обновлению этих функций также будут включены в будущие статьи.