Происхождение данных(Данные Lineage):управление даннымисередина Подкатегория в области управления метаданными.,Это процесс отслеживания данных,Получить ссылку для генерации данных,Откройте для себя взаимосвязи данных,Цель состоит в том, чтобы решить"Три философских вопроса о данных":кто я,откуда я родом,Куда мне идти?
Общие линии передачи данных в основном включают две категории:
Решения по внедрению в отрасли, сравнение родословных данных проектов с открытым исходным кодом
проект | способность крови |
---|---|
Apache Atlas | Реализовано на основе движка Hive, поддерживает только ограничение происхождения и типа Hive (Query, CreateTable/View). |
LinkedIn DataHub | Поддержка планирования задач, Родословная Поддержка SQL слабая и не поддерживает полевую родословная |
Lyft Amundsen | Поддерживает только линию планирования задач. |
Апач Производство родословной Улья Атласа в качестве примера。Hive Информация о кровном родстве, сгенерированная Хуком, будет отправлена в сообщение промежуточного программного обеспечения середина.,на основеHiveроднойHookContextсерединаполучать Информация о родословной,SQL типа Hive, который поддерживает анализ родословной:
на основеLineageRESTКласс предоставляет запрос кровного родства объекта сущности.REST APIинтерфейс,на основеинтерфейсAtlasLineageService#getAtlasLineageInfo Реализуйте операции просмотра метаданных. Для получения более подробной информации см.«Управление отраслевыми метаданными: обзор разработки решения»
SQLFlowЭто коммерческий продукт,Родословная SQL-анализ для нескольких диалектов,поддерживать Родство、полевая родословная:
Более распространенные методы анализа происхождения задач включают в себя:1. Серия задач на основе системы планирования 2. Отслеживание на основе скрытых точек URL-запись。Потому что метод его реализации тесно связан с конкретным бизнесом.,Нет универсального шаблона проектирования,Поэтому я пока не буду вдаваться в подробности.。 Далее основное внимание будет уделено Родословной. SQL-анализ для уточнения.
Родословная SQL-анализ Ядро реализации:На основе абстрактного синтаксического дерева AST определите кровное родство таблиц и полей.。Поэтому анализ кровного родства требует как минимум следующих способностей::
в публичном облаке,Столкновение с разнообразными потребностями,определять Родословная SQL-анализ Цель:Поддержка происхождения данных для нескольких диалектов SQL, включая происхождение таблиц и происхождение полей.。 Для достижения этой цели план проведения демонтажа следующий.
Потому что разные диалекты SQL имеют разный синтаксический анализ.,Реализация синтаксического и семантического анализа непосредственно на основе собственного механизма SQL.,будет существоватьПроблема с сильным заеданием двигателя.
Согласно вышеизложенному,Выполняется на основе возможностей SQL-анализа каждого механизма.,Для многихSQLАнализ родословной диалектов невозможен.。Поэтому окончательный выбор был основан на конкретной реализации компонента SQL-анализа.,Сравнение решений для разных компонентов парсинга выглядит следующим образом:
Параметры | Структура компиляции | производительность | Универсальность | Поддержка диалектов | рабочая нагрузка |
---|---|---|---|---|---|
Calcite | JavaCC | отличный | отличный+ | Средний+ | Высокий+ |
JSqlParser | JavaCC | отличный | середина- | отличный- | высокий |
Marble | JavaCC | отличный | Средний+ | Плохо+ | высокий- |
Hqlsql | ANTLR | середина | середина | Средний+ | Средний+ |
SparkSQL | ANTLR | середина | середина- | Плохо+ | высокий- |
PrestoSQL | ANTLR | середина | середина- | Плохо+ | высокий- |
Druid | Без рамки | отличный+ | Средний+ | отличный | середина |
Alibaba DruidЭто платформа облачных вычислений Alibaba.DataWorksПродюсировано командой,Пул соединений с базой данных для мониторинга。Druid SQL — это встроенный уровень SQL.,Хотя у него нет полного SQLотличного функционала.,Но с хорошим SQL большая поддержка диалектов.,Поддерживает преобразование нескольких диалектов в абстрактное синтаксическое дерево AST. поэтому,С Друидом Уровень SQL может более удобно реализовать структуру разрешения кровного родства.
Druid SQL Можно разделить на три модуля: Парсер, AST, Посетитель.
Кальцит также может поддерживать анализ происхождения данных.,Поскольку Calcite в основном ориентирован на единый диалект SQL,Слаб против родного поли. Поддержка диалектов.,Так что будет много рабочей нагрузки, расширяющей собственный диалект SQL.,К этой реализации можно отнести Linkedin Coral иметь дело с. Кальцит JavaCC SQL-анализ зависимости В файлах конфигурации FMPP и файлах шаблонов FreeMarker официальные лица рекомендуют настраивать расширения шаблонов и стараться избегать изменения файла Parser.jj.
Примечание:Если бизнес-сценарий имеет только одинSQLАнализ родословной диалектов,Больше рекомендуетсяна основеCalciteиметь дело с. Кальцит Более подробную информацию можно найти в графе«Анатомия кальцита».
идентификация родословной обходит древовидную структуру AST на основе режима Посетителя для получения Родства, полевой родословная информация. Диаграмма происхождения включает в себя:
идентификация родословнойVisitorмодельМожет пересекать кровные родства на основе восходящей рекурсии,Сохраняйте информацию о происхождении на основе узлов таблицы и узлов полей.
Пример(CREATE AS SELECT заявление): создать table table_02 as select id,name from table_01,получатьГрамматически разобранный ASTнравиться Вниз:
Обходя синтаксическое дерево AST, мы можем получить следующее
Данные о происхождении в основном поддерживают отношения между вершинами и ребрами.,Соответствующие данные поддерживают сохранение в реляционной базе данных середина.。нонравитьсяфруктовые отношенияслойуровень превышает3слой,Узкое место в производительности возникает при запросе,Дополнительное хранилище графовой базы данных。
База данных графов — это база данных, использующая структуру база данных графа для семантических запросов,Он использует узлы, ребра и атрибуты для представления и хранения данных. Ключевым понятием этой системы является граф,Он напрямую хранит элементы данных середина.,Связан с узлом данных и набором ребер, представляющих отношения между узлами.
в соответствии сТип языка базы данных графаДелимыйнравиться Вниз类型:
В связи с ограниченной своевременностью данных,,И объем данных обычно большой,Обычно для обработки разделения выбирается промежуточное программное обеспечение середина сообщений.。Процесс подачи заявления на анализ родословнойнравиться Вниз:
Службу кровного родства можно разделить на три модуля: анализ кровного родства, «Хранение родословной» и расследование кровного родства.
Происхождение данных — одно из важных применений управления данными.,Зависимости между таблицами можно четко определить с помощью информации о происхождении.,Отслеживайте происхождение и поток данных. Происхождение данных играет важную роль в управлении качеством данных, соблюдении требований и безопасности данных. В сложных средах данныхсередина,Поддержание точной информации о происхождении данных является сложной проблемой. В этой статье сначала рассказывается об истории происхождения данных, а во-вторых, об отраслевых решениях;,против Родословная Подробно объяснен принцип реализации SQL, который в основном включает в себя три процесса: SQL-анализ、идентификация родословной、Хранение Родословной Наконец, общий обзор данных линии Архитектура; приложения。