0x00 Предисловие
Этот обмен является содержанием управления метаданными, в основном ссылаясь на статью «Товары: организация наборов данных Google», выпущенную Google в 2016 году, и новый проект с открытым исходным кодом Linkedin в 2016 году: WhereHows, конечно, также немного понимает автора.
Общее описание документа Google очень подробное и может быть изучено как теория. LinkedIn открыл исходный код версии системы, которую можно рассматривать как передовой опыт. Сочетание этих двух может все еще расширить ваше мышление.Непонятно, из чего сделаны настоящие системы Google и Linkedin.Это как Gfs, что его надо ликвидировать перед публикацией статей. Но это не важно. Просто узнайте что-то новое.
В этой статье нет конкретной реализации, только различные дизайнерские идеи. Кроме того, другие статьи, связанные с хранилищем данных, см. в исторических статьях.
1. О чем эта статья?
Эта статья будет посвящена товарам, дополненным LinkedIn’s WhereHows и пониманием автора.
Прежде всего, что такое Товар? Это можно понять так:
-
В Google слишком много таблиц данных, и инженеры будут создавать много таблиц данных. Чтобы лучше управлять этими таблицами и повторно использовать их, Google создала систему управления данными.
-
Эта система является открытой, она регулярно собирает метаданные из различных систем (Hive, Hbase, Mysql) и сохраняет их в системе. И создавать зависимости между таблицами.
-
Отличие его от EDM в том, что он сканирует метаданные каждой системы, а затем обобщает их. Это важно и является запоздалой мыслью. Предоставление инженерам большей открытости.
Структура статьи
По моим ощущениям, есть две области, в которых системы метаданных чаще всего ставятся под сомнение: ценность и полезность. Чтобы подчеркнуть важность обоих, я сосредоточусь на написании отдельно.
-
Почему: ценность систем метаданных;
-
Что такое: Понятия, связанные с системами метаданных;
-
Как это сделать: поделитесь некоторыми материалами из статьи Google «Товары: организация наборов данных Google»;
-
Как это сделать: поделитесь дизайном из нового открытого проекта Linkedin, WhereHows.
-
Дополнение: Некоторые мои мысли.
Каково значение 0x01?
1. Проблемы
Существование метаданных имеет свою необходимость, я сделал краткое резюме и перечислил некоторые проблемы, связанные с данными. На самом деле это ценность системы метаданных.
2. Проблемы с данными
Если сложность бизнеса относительно невелика или объем данных относительно невелик, вы можете не чувствовать себя глубоко, но в такой компании, как Google, количество таблиц настолько велико, что систему метаданных для управления таблицами необходимо распределять.
Посмотрите на объем данных Google, он довольно большой.
3. Используйте проблемы
Лично это основное поле битвы системы метаданных. Общий,Людям удобно пользоваться.
В частности, часто очень важны такие малозаметные атрибуты, как сопровождающий и величина таблицы, полнота этих дополнительных сведений напрямую определяет доступность этой таблицы для других.
4. Вопросы управления
Возьмите каштан: Допустим, ваш кластер уже тормозит и тормозит, в это время вам нужно удалить некоторые таблицы, чтобы освободить место, но вы понятия не имеете, какие таблицы полезны, а какие нет? Вы растеряны?
Система метаданных может управлять ими.
Включая управление правами разных сотрудников и контроль качества данных, эти функции могут быть отражены через систему метаданных.
0x02 Фоновые знания и связанные с ними понятия
Большинство из них были добавлены для личного понимания автора, пожалуйста, укажите на любые ошибки.
1. Метаданные
Данные в любой файловой системе делятся на данные и метаданные.
-
Данные относятся к фактическим данным, то есть к записям, которые мы можем видеть.
-
Метаданные относятся к системным данным, используемым для описания характеристик таблицы, таких как информация о полях таблицы, права доступа, владельцы и информация о распределении блоков данных (inode...) и так далее.
Например, у Hive есть собственные метаданные, в которых хранятся имя таблицы, информация о столбце, индекс и другая информация о каждой таблице Hive.
2. Система метаданных
Система управления метаданными. Я не могу найти определение в Интернете, мое личное понимание его таково:
-
Система управления метаданными
-
Может предоставлять удобные операции с метаданными и операции запросов
3. Электроэрозионная обработка
Путь EDM заключается в том, что выпуск и использование данных проходят через эту систему.
Enterprise Data Management (EDM) is one common way to organize datasets in an enterprise setting. However, in the case of EDM, stakeholders in the company must embrace this approach, using an EDM system to publish, retrieve, and integrate their datasets.
Разница с товарами в том, что это запоздалая мысль.
An alternative approach is to enable complete freedom within the enterprise to access and generate datasets and to solve the problem of finding the right data in a post-hoc manner. This approach is similar in spirit to the concept of data lakes , where the lake comprises and continuously accumulates all the datasets generated within the enterprise.
0x03 Дизайн Google
1. Идеи дизайна
Goods, a project to rethink how we organize structured datasets at scale, in a setting where teams use diverse and often idiosyncratic ways to produce the datasets and where there is no centralized system for storing and querying them.
После прочтения статьи я организовал ментальную карту.Идея дизайна всего Товара заключается в следующем, который в основном содержит большинство пунктов в статье.
Во-вторых, общая структура
На следующем рисунке показана вся архитектура дизайна Goods. Есть несколько замечаний по архитектуре:
-
Также учитываются несколько упомянутых выше источников данных, таких как пути Hbase, Hive и Hdfs.
-
Дизайн данных. Google абстрагирует набор моделей данных, часть которых показана на рисунке.
-
использовать. Как и некоторые из перечисленных на картинке.
Уведомление:Я чувствую, что автор статьи очень гордится разработанным им самим анализом крови, который неоднократно упоминался в статье. Глядя на крайнюю правую часть изображения ниже, они проделали большую работу, чтобы получить карту кровного родства.
Overview of Google Dataset Search (Goods). The figure shows the Goods dataset catalog that collects metadata about datasets from various storage systems as well as other sources. We also infer metadata by processing additional sources such as logs and information about dataset owners and their projects, by analyzing content of the datasets, and by collecting input from the Goods users. We use the information in the catalog to build tools for search, monitoring, and visualizing flow of data.
3. Модель данных
Я всегда чувствовал, что этот дизайн самый сложный, потому что необходимо абстрагировать общую модель данных от столь многих систем данных.
Модель данных в целом делится на две части: основные метаданные и зависимости. Английское объяснение очень понятное, поэтому оно больше не переводится.
Basic metadata - The basic metadata for each dataset includes its timestamp, file format, owners, and access permissions. We obtain this basic metadata by crawling the storage systems and this process usually does not necessitate any inference. Other Goods modules often depend on this basic information to determine their behavior. For example, some of the modules bypass catalog entries that have restricted access or the entries that have not been modified recently.
provenance - Datasets are produced and consumed by code. This code may include analysis tools that are used to query datasets, serving infrastructures that provide access to datasets through APIs,or ETL pipelines that transform it into other datasets. Often, we can understand a dataset better through these surrounding pieces of software that produce and use it.
0x03 Дизайн Linkedin
Для дизайна Linkedin больше не нужно рисовать ментальные карты самостоятельно, он в основном дополняет дизайн Google с нескольких точек, чтобы помочь лучшему пониманию.
1. Общая структура
Архитектура WhereHows в основном разделена на три части, что похоже на Google Goods.
-
Data Model
-
Backend ETL
-
Web Service
2. Модель данных
Данные в основном состоят из четырех частей. Картинка нечеткая, более четкой не нашел.
-
Наборы данных: схема набора данных, комментарии, образцы данных…
-
Operational data: flow group, flow, job, job dependency, execution, id map tables (helper tables to generate unique IDs)
-
Lineage data: input and output of jobs, dependency, partition, high watermark
-
WhereHows ETL and Web UI/Service: configurations
3. Анализ родословной ETL
Данные анализа кровного родства необходимо получать следующими способами.
Lineage information refers to the dependency of jobs and datasets. It also includes some operation data, such as whether this is a read or write operation, and how many records it can read/write.
0x05 Сводка
1. Резюме
Система метаданных является частью конструкции хранилища данных, и многие ее смыслы и значения на самом деле сильно привязаны к хранилищу данных. Некоторые из проблем систем метаданных, перечисленных в начале, пересекаются с проблемами хранилищ данных, но они также отражают важность систем метаданных.
Что касается дизайна Google и LinkedIn, то они на самом деле очень похожи, но то, что дает Google, это идея, а то, что дает LinkedIn, это реализация.В целом, дизайны двух компаний все еще очень близки, и этого нельзя понять. ., просто посмотрите на два.
Персональное дополнение
И Google, и LinkedIn больше заботятся об улучшении опыта разработчиков, что я и перечислил в предыдущих идеях дизайна.Нет помех. Преимущество этого очень очевидно, то есть это не влияет на эффективность разработки, а инвазивность очень низкая.
Лично я считаю, что можно сделать некоторые дополнения, например, функции управления данными.
Большинство детской обуви интернет-компаний знают, что источников данных будет много, значит, будет система доступа к данным. Мы можем встроить систему доступа к данным в систему метаданных и разработать автоматизированный процесс доступа.Если пользователи хотят получить доступ к новым источникам данных, они могут подать заявку на доступ (офлайн или в режиме реального времени) через систему метаданных.
Настоятельно рекомендуется читать статьи Google и проекты с открытым исходным кодом LinkedIn, и вы получите много, что гораздо надежнее, чем чтение классических книг по хранилищам данных и различных блогов в Интернете.