Что такое Data Lineage? Инструменты и Best Practices
Это процесс понимания, документирования и визуализации данных от момента их возникновения до момента использования. Этот жизненный цикл включает в себя все преобразования, выполняемые с набором данных, на протяжении их «жизни». Data lineage позволяет понять, что происходило с данными на протяжении всего их жизненного цикла. Кроме того, это необходимо для отслеживания ошибок, внесения изменений и осуществления миграции системы для экономии времени и ресурсов в целях повышения эффективности.
Данный процесс сочетает в себе обнаружение данных и использование Data Catalog, который фиксирует метаданные данных с помощью системы отображения данных. Он позволяет пользователю искать данные в обоих направлениях (вперед и назад) между местом происхождения и местом назначения данных. Он позволяет ответить на следующие вопросы:
- Кто создал данные?
- Какую информацию содержат в себе данные?
- Где находятся данные?
- Когда они были созданы?
- Почему они существуют?
Подробнее обсудим эти вопросы чуть позже.
Важность Data Lineage
Для ETL разработчика
ETL - это функция, в которой необходимо извлечь данные из какого-либо определенного источника данных и поместить их в другое место после применения некоторых преобразований. Это может помочь разработчику ETL отследить любую ошибку в задании, проверить изменения в некоторых полях данных, например, удаление, переименование или добавление столбцов. При работе со сложными отчетами data lineage помогает определить источник данных, который должен использоваться в этом отчете.
Для Data Steward
Для того, чтобы являться data steward, человек должен знать о данных, используемых в организации абсолютно все. Data Lineage поможет ему определить наиболее (и наименее) используемые активы данных в процессе ETL. Кроме того, это обеспечит прозрачность для пользователя, который отвечает за конкретный актив данных.
Для бизнес – пользователя
Data lineage помогает бизнес-пользователю находить отчеты на основе какого-либо конкретного поля или столбца данных.
Для оператора по поиску и исправлению ошибок
Когда необходимо устранить неполадки в каком-либо из ошибочных отчетов, data lineage может помочь определить, какие процессы и задания участвуют в создании данного конкретного отчета. В случае, если у нас есть несколько ошибочно выполненных заданий, это может помочь нам найти целевые таблицы и поля, которые используются в отчетах.
Как работают инструменты Data Lineage?
Инструменты data lineage отслеживают данные на протяжении всего их жизненного цикла, включая исходную информацию и любые преобразования данных, используемые в ходе процедур ETL или ELT.
Метаданные позволяют пользователям инструментов data lineage понять, как данные перемещаются по конвейеру передачи данных. Метаданные - это "данные о данных", они содержат информацию о таких активах данных, как тип, формат, структура, автор, дата создания, дата редактирования и размер файла. Инструменты data lineage представляют полную картину метаданных, помогая пользователям определить, полезными будут для них эти данные или нет.
5 вопросов, на которые отвечает Data Lineage
Кто использует данные?
При анализе данных в голову аналитика возникает множество вопросов. Один из них - кто и где использует данные? Когда у нас есть визуальное представление data lineage, нам легко найти ответы на эти вопросы. На основании этого можно проследить и выяснить, кто использует данные.
Когда данные были созданы/обновлены?
Владелец данных несет ответственность за хранение данных в соответствующем месте и предоставление доступа к ним. Знать владельца данных важно, поскольку это дает ясность о том, кто поддерживает эти данные и к кому пользователь может обратиться в случае возникновения каких-либо проблем, связанных с исправлением данных.
Какую информацию содержат данные?
Нам всегда необходимо определять политики доступа к данным. Перед этим важно понять, какую именно информацию содержат в себе данные. Это помогает классифицировать их и определить, какие политики доступа к данным необходимо разработать, чтобы защитить их конфиденциальность.
Как используются данные?
В организации данные используются для создания нескольких отчетов. Эти отчеты используются для принятия решений, направленных на развитие организации. Они создаются на основе нескольких наборов данных, которые генерируются в организации. Диаграмма data lineage показывает, какие наборы данных используются; тогда, в случае получения некорректных отчетов это поможет отследить источник ошибки, если таковые имеются.
Почему данные хранятся/ используются?
Есть еще один важный вопрос, связанный с существованием данных: почему эти данные вообще существуют? Это один из самых важных вопросов, поскольку, если данные не нужны, их следует удалить. Ненужные данные приводят к лишним затратам времени и денег. Поэтому мы должны знать о целесообразности каждого хранящегося набора данных.
Best Practices
При построении системы data lineage нам необходимо отслеживать каждый процесс в системе, в ходе которого мы выполняем преобразование или обработку данных. Нам необходимо отображать элементы данных на каждом этапе, когда актив данных проходит через какие-либо процессы. Так, необходимо отслеживать таблицы, представления, столбцы и отчеты в базах данных, задания ETL и т.д. Для этого необходимо собирать метаданные после каждого преобразования данных. Поэтому метаданные на каждом этапе собираются и хранятся в хранилище метаданных, которое может быть использовано для линейного представления.
Data Ingestion Lineage
Data Ingestion lineage может использоваться для отслеживания полного потока данных, а также для отслеживания любых ошибок в рамках Data Ingestion.
Ниже мы рассмотрим data lineage Apache NiFi с помощью Apache Atlas.
Apache NiFi - платформа, основанная на пользовательском интерфейсе, где нам необходимо определить источник, откуда мы хотим собирать данные, процессоры для преобразования данных и место назначения, где мы хотим хранить данные. Apache Atlas - это система управления и метаданных для Hadoop, который может быть использован в этих целях. Apache NiFi также имеет контроллер, который может быть настроен на передачу метаданных потока данных в Apache Atlas.
Data Processing Lineage
Spark очень популярен в настоящее время для распределенной обработки данных. Когда мы работаем с lineage Apache Spark, единственное, что имеет значение, - это RDD. В spark текущие RDD указывают на свои родительские RDD. Рассмотрим простую задачу:
Первый RDD: когда мы читаем текстовый файл и создаем RDD;
Второй RDD: когда мы применяем операцию map к первому RDD;
Третий RDD: когда мы применяем операцию фильтрации ко второму RDD;
Четвертый RDD: Когда мы применяем операцию count к третьему RDD.
С помощью этой линии можно проследить, где произошел сбой, и какой из разделов был потерян во время последнего сбоя. Сплайн может быть использован для линейки Spark. Он включает в себя веб-интерфейс для визуализации результатов выполнения заданий. Это относительно новый инструмент, разработанный южноафриканским банком Absa.
История запроса
Когда пользователи вводят запрос Data Warehouse, они могут применять различные фильтры, объединять таблицы и т.д. Таким образом, линейка запросов становится необходимой для того, чтобы специалисты по обработке данных могли увидеть, какие фильтры используются наиболее часто, и, соответственно, оптимизировать ключи разметки, денормализацию таблиц и т.д. Пример: Uber Query Parser
Доступ к озерам данных и складам данных
Использование надлежащих средств Data Governance по отношению к озерам данных и складам данных (RBACs, разрешения на уровне строк и столбцов, линии запросов, а также журналы MetaStore) поможет понять, пытается ли какой-либо пользователь получить неавторизованный доступ к данным и в случае необходимости незамедлительно принять соответствующие меры. Пример: Apache Atlas, Cloudera Navigator.
Инструменты, необходимые для Data Lineage
Самые лучшие, на наш взгляд, инструменты:
- Datameer
- Collibra
- OvalEdge
- Octopai
- CloverDX
- Trifacta
- Atlan
- Alation
Заключение
Data Lineage помогает пользователю убедиться в том, что данные поступают из надежного источника и правильно загружены в место назначения, а все преобразования над ними выполнены надлежащим образом. Это играет важную роль в том случае, когда для принятия ключевых решений необходима точная и проверенная информация. Без соответствующих технологий и процессов отслеживание данных может быть практически невозможным или, по крайней мере, слишком дорогостоящим и чрезвычайно трудоемким занятием.






