'
Научный журнал «Вестник науки»

Режим работы с 09:00 по 23:00

zhurnal@vestnik-nauki.com

Информационное письмо

  1. Главная
  2. Архив
  3. Вестник науки №1 (70) том 2
  4. Научная статья № 180

Просмотры  38 просмотров

Артемов А.А.

  


МОНИТОРИНГ КАЧЕСТВА ДАННЫХ С ПОМОЩЬЮ AMAZON DEEQU *

  


Аннотация:
в данной статье рассматривается важность управления качеством данных при принятии решений в различных областях, подчеркивается необходимость инновационных подходов, таких как Amazon Deequ, в условиях экспоненциально растущих объемов данных. Amazon Deequ - это библиотека для Apache Spark, которая предлагает систематические и масштабируемые средства проверки качества данных. Это расширяет возможности тестирования программного обеспечения для управления качеством данных, позволяя использовать разнообразные показатели и проверять большие наборы данных, уделяя особое внимание таким аспектам, как уникальность и согласованность. Интеграция Deequ с InfluxDB для хранения метрик и Grafana для визуализации еще больше повышает его практичность, позволяя осуществлять непрерывный мониторинг и анализ в режиме реального времени. В этом исследовании также рассматривается методология, включающая настройку среды, конфигурацию InfluxDB и Grafana, а также рабочие процессы профилирования данных. На практических примерах в документе демонстрируется применение Deequ для мониторинга качества данных, подчеркивается его масштабируемость, гибкость в определении правил и бесшовная интеграция с современными платформами обработки данных. Это исследование подчеркивает важность инновационных инструментов, таких как Amazon Deequ, для поддержания высокого качества данных в мире, ориентированном на данные, выходя за рамки традиционных методов мониторинга качества данных   

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


DOI 10.24412/2712-8849-2024-170-1060-1077

УДК 004

Артемов А.А.

ведущий инженер данных,

Schwarz Media Plattform GmbH

(г. Мульхайм, Германия)

 

МОНИТОРИНГ КАЧЕСТВА ДАННЫХ С ПОМОЩЬЮ AMAZON DEEQU

 

Аннотация: в данной статье рассматривается важность управления качеством данных при принятии решений в различных областях, подчеркивается необходимость инновационных подходов, таких как Amazon Deequ, в условиях экспоненциально растущих объемов данных. Amazon Deequ - это библиотека для Apache Spark, которая предлагает систематические и масштабируемые средства проверки качества данных. Это расширяет возможности тестирования программного обеспечения для управления качеством данных, позволяя использовать разнообразные показатели и проверять большие наборы данных, уделяя особое внимание таким аспектам, как уникальность и согласованность. Интеграция Deequ с InfluxDB для хранения метрик и Grafana для визуализации еще больше повышает его практичность, позволяя осуществлять непрерывный мониторинг и анализ в режиме реального времени. В этом исследовании также рассматривается методология, включающая настройку среды, конфигурацию InfluxDB и Grafana, а также рабочие процессы профилирования данных. На практических примерах в документе демонстрируется применение Deequ для мониторинга качества данных, подчеркивается его масштабируемость, гибкость в определении правил и бесшовная интеграция с современными платформами обработки данных. Это исследование подчеркивает важность инновационных инструментов, таких как Amazon Deequ, для поддержания высокого качества данных в мире, ориентированном на данные, выходя за рамки традиционных методов мониторинга качества данных.

 

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

  

Введение

В области управления данными и аналитики - обеспечение высокого качества данных имеет первостепенное значение, учитывая их критическую роль в процессах принятия решений в различных областях. По мере экспоненциального роста объемов данных, как представлено на рисунке 1, традиционные методы обеспечения качества данных сталкиваются с проблемами масштабируемости и эффективности [2]. Это требует инновационных подходов, которые могут адаптироваться к растущей сложности и масштабу данных. В этом случае Amazon Deequ, библиотека, разработанная на базе Apache Spark, призвана предложить систематический и масштабируемый способ контроля качества данных. Появление Deequ является ответом на меняющийся ландшафт, где качество данных больше не является простым дополнением, а центральным компонентом стратегии обработки данных.

 

Рисунок 1 - Годовой размер глобальной сферы данных

Figure 1 - Annual Size of the Global Datasphere

 

Библиотека Amazon Deequ (рис. 2), является ключевым инструментом в области обеспечения качества данных. Она разработана в том числе для облегчения "unit tests for data" - концепции, которая переносит строгость тестирования программного обеспечения в сферу управления качеством данных. Deequ позволяет применять различные показатели и проверки к большим наборам данных, обращая внимание на критические аспекты качества данных, такие как уникальность, согласованность и надежность [4].

 

Рисунок 2 - Обзор компонентов Deequ

Figure 2 - Overview of Deequ components

 

Центральное место в функциональности Deequ занимает набор метрик, представленных в таблице 1.

 

Таблица 1. Метрики для оценки качества данных

Table 1. Metrics for evaluating data quality

Метрика

Описание

Пример использования

ApproxCountDistinct

Приблизительное количество уникальных значений.

ApproxCountDistinct("review_id")

ApproxQuantile

Приблизительное значение квантиля.

ApproxQuantile("star_rating", quantile = 0.5)

ApproxQuantiles

Приблизительные значения для нескольких квантилей.

ApproxQuantiles("star_rating", quantiles = Seq(0.1, 0.5, 0.9))

Completeness

Процент заполненных значений в колонке.

Completeness("review_id")

Compliance

Соблюдение определенного условия или правила в наборе данных.

Compliance("top star_rating", "star_rating >= 4.0")

Correlation

Статистическая взаимосвязь между двумя колонками.

Correlation("total_votes", "star_rating")

CountDistinct

Количество уникальных значений в колонке.

CountDistinct("review_id")

DataType

Анализ типов данных в колонке.

DataType("year")

Distinctness

Процент уникальных значений от общего числа значений в колонке.

Distinctness("review_id")

Entropy

Мера разнообразия информации в колонке.

Entropy("star_rating")

Maximum

Максимальное значение среди всех значений в колонке.

Maximum("star_rating")

Mean

Среднее арифметическое всех значений в колонке.

Mean("star_rating")

Minimum

Наименьшее значение среди всех значений в колонке.

Minimum("star_rating")

MutualInformation

Взаимная информация между двумя колонками, измеряющая взаимную зависимость между ними.

MutualInformation(Seq("total_votes", "star_rating"))

PatternMatch

Соответствие значений в колонке определенному шаблону.

PatternMatch("marketplace", pattern = raw"\w{2}".r)

Size

Общее количество записей в наборе данных.

Size()

Sum

Сумма значений в колонке.

Sum("total_votes")

UniqueValueRatio

Отношение количества уникальных значений к общему количеству значений.

UniqueValueRatio("star_rating")

Uniqueness

Уникальность значения в колонке

Uniqueness("star_rating")

 

Эти показатели играют важную роль в оценке различных аспектов качества данных. Например, CountDistinct измеряет количество уникальных значений, помогая выявлять дублирования. Distinctness количественно определяет долю различных значений, что имеет решающее значение для оценки разнообразия данных. Аналогичным образом, такие показатели, как Maximum, Mean, Minimum значения, предоставляют статистическую информацию, которая жизненно важна для понимания распределения данных и тенденций.

Полезность Deequ еще более возрастает благодаря тому, что он основан на Apache Spark (рис. 2). Apache Spark, известный своей высокой производительностью и горизонтальной масштабируемостью, позволяет Deequ эффективно обрабатывать массивные наборы данных. Устойчивые распределенные наборы данных Spark (RDDs) и архитектура на основе распределенной памяти облегчают быструю обработку данных, что делает Deequ исключительно подходящим решением для сред, где требуется быстрый и точный анализ больших объемов данных.

Кроме того, интеграция Deequ с хранилищами метрик, такими как InfluxDB, повышает его практичность. Это позволяет хранить и извлекать показатели качества, обеспечивая настройку непрерывного мониторинга. Возможности визуализации с помощью таких инструментов, как Grafana, еще больше помогают преобразовать эти показатели в полезную информацию, необходимую для принятия обоснованных решений.

Таким образом, внедрение Amazon Deequ в сферу качества данных представляет собой значительный сдвиг в способах управления качеством данных в крупномасштабных средах обработки данных. Подход Deequ заключается не только в поиске проблем с качеством данных, но и во внедрении проверки качества данных в саму структуру процессов обработки данных. Эта интегрированная методология жизненно важна в современном мире, основанном на данных, где качество данных напрямую влияет на точность анализа и эффективность решений, основанных на данных.

 

Методология

Методология внедрения системы мониторинга качества данных с использованием Amazon Deequ включает в себя многоэтапный процесс, включающий настройку среды, конфигурирование InfluxDB и Grafana, а также создание рабочего процесса профилирования данных и мониторинга [1].

Настройка среды:

  • Apache Spark versions 2.2.x to 2.4.x and 3.0.x,
  • Docker,
  • Scala/Java.

Практический аспект включает в себя выполнение примера реализации в среде IDE, которая выполняет проверку качества данных с помощью Amazon Deequ. Затем эти проверки сохраняются в ранее настроенной базе данных InfluxDB. Важно просмотреть эти результаты в InfluxDB, чтобы убедиться, что проверки качества данных были выполнены правильно и ожидаемые показатели зафиксированы [3].

Наконец, создается и настраивается панель мониторинга в Grafana. Это включает в себя настройку нового источника данных, который подключается к базе данных InfluxDB, с последующим созданием различных панелей визуализации в Grafana. Эти панели предназначены для отображения и анализа показателей качества данных, хранящихся в InfluxDB, обеспечивая всестороннее представление о состоянии качества данных. Эта полная настройка обеспечивает комплексный подход к мониторингу, визуализации и управлению качеством данных эффективным способом в режиме реального времени [5, 6].

 

Результаты

Этот практический пример иллюстрирует применение Amazon Deequ для мониторинга качества данных с использованием файла CSV с последующим созданием правил профилирования, сохранением результатов в InfluxDB и визуализацией этих результатов в Grafana.

Начальный этап включает в себя настройку среды, необходимой для запуска Deequ. Для этой настройки требуется Apache Spark, поскольку Deequ построен поверх платформы Spark. Версии, совместимые с нашей реализацией, варьируются от Apache Spark 2.2.x до 2.4.x и 3.0.x. Использование контейнеров Docker как для InfluxDB, так и для Grafana упрощает процесс установки и управления. Docker инкапсулирует необходимое программное обеспечение в изолированных средах, обеспечивая согласованность на разных компьютерах. Для кодирования используется Scala/Java, учитывая их встроенную поддержку в Spark и Deequ. Это объединение технологий обеспечивает надежную и масштабируемую платформу для анализа качества данных.

Следующий шаг включает настройку InfluxDB и Grafana. InfluxDB служит хранилищем метрик, в котором хранятся результаты проверок качества данных, выполняемых Deequ. Настройка начинается с извлечения образа Docker InfluxDB (docker pull influxdb:1.8.4) и запуска экземпляра контейнера. Как только контейнер запущен, пользователь подключается к консоли InfluxDB и создает базу данных для хранения показателей.

 

Grafana, инструмент визуализации, интегрирован с InfluxDB для отображения результатов. Как и InfluxDB, Grafana устанавливается через Docker (docker pull grafana/grafana) и связан с контейнером InfluxDB. После настройки в настройках конфигурации Grafana создается новый источник данных для InfluxDB с указанием URL, имени базы данных и учетных данных пользователя. Эта интеграция позволяет визуализировать и анализировать показатели качества данных в режиме реального времени.

 

Когда среда готова, клонируется необходимый репозиторий, содержащий интеграцию Amazon Deequ с InfluxDB. Затем этот репозиторий открывается в среде IDE, подходящей для Scala/Java [5].

 

В репозитории можно перейти по следующему пути:

 

Здесь находится реализация MetricRepository для InfluxDB, которая необходима для задачи мониторинга качества данных. Этот файл служит входными данными для нашей оценки качества данных. С помощью Apache Spark файл загружается в DataFrame, который предоставляет структурированный формат для выполнения операций Deequ.

В каталоге примеров [5], можно найти полный пример, который охватывает использование InfluxDBMetricRepository.

 

После чего необходимо запустить объект InfluxDBMetricRepository в среде IDE:

 

Это действие инициирует проверку качества данных и сохраняет результаты в базе данных InfluxDB.

 

Рисунок 3 - Проверка качества данных и сохранение результатов

в базе данных InfluxDB

Figure 3 - Checking the data quality and saving the results in the InfluxDB database

 

Примечательно, если запустить этот пример несколько раз с одними и теми же данными, то отобразятся результаты для каждого выполнения. Также в InfluxDB можно определить период хранения (сколько времени должны храниться данные).

Чтобы просмотреть результаты, необходимо вернуться в консоль InfluxDB и запустить use example, затем выбрать * из InfluxDBMetricsRepository. Этот запрос извлекает сохраненные метрики, позволяя просмотреть проверки качества данных или "правил" с использованием Deequ. Эти правила разработаны специально для измерения различных аспектов качества данных, таких как полнота, уникальность и соответствие определенной схеме. Например, правило может проверять полноту критического столбца или проверять уникальность первичного ключа. Deequ предлагает всеобъемлющий API для декларативного определения этих проверок, что позволяет гибко и эффективно выражать правила качества данных.

 

Рисунок 4 - Результаты в базе данных InfluxDB

Figure 4 - Results in the InfluxDB database

 

После применения определенных правил к набору данных - Deequ вычисляет показатели качества данных. Затем эти результаты сохраняются в InfluxDB. Интеграция между Deequ и InfluxDB облегчается благодаря пользовательской реализации MetricRepository, которая является частью библиотеки Deequ. Этот репозиторий действует как мост, передающий вычисленные показатели из Deequ в InfluxDB. В нашем случае результаты записываются в базу данных "example", созданную в InfluxDB.

Заключительный шаг включает визуализацию сохраненных показателей с помощью Grafana. Возможность подключения Grafana к InfluxDB обеспечивает беспрепятственный поиск и отображение показателей качества данных. При такой настройке в Grafana создается панель мониторинга, где различные виджеты визуализации (такие как графики и таблицы) настраиваются для представления различных показателей качества данных.

Для создание панели мониторинга Grafana необходимо получить доступ к Grafana, перейдя по ссылке http://localhost:3000/ в веб-браузере (учетные данные по умолчанию - admin/admin).

В Grafana создается новый источник данных для InfluxDB (рис. 5, 6). Перейдя в Конфигурация > Источники данных > Добавить источник данных и вводятся следующие данные:

 

Рисунок 5 - Создание источника данных для InfluxDB

Figure 5 - Creating a data source for InfluxDB

  

Рисунок 6 - Создание источника данных для InfluxDB

Figure 6 - Creating a data source for InfluxDB

 

После ввода сведений необходимо выбрать “Save & Test”, чтобы убедиться, что подключение к InfluxDB прошло успешно (рис. 7).

 

Рисунок 7 - Новая приборная панель

Figure 7 - New dashboard

 

После чего происходит переход к определению параметров запроса для виджетов панели мониторинга. Этот шаг включает настройку различных визуализаций, которые представляют показатели качества данных, хранящиеся в InfluxDB. Необходимо настроить эти виджеты таким образом, чтобы показатели отображались осмысленно и наглядно (рис. 8).

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

 

Рисунок 8 - Показатели качества данных

Figure 8 - Data quality indicators

 

Последовательно выполнив эти шаги, будет создана надежная среда для мониторинга качества данных с помощью Amazon Deequ, Apache Spark, InfluxDB и Grafana. Эта методология обеспечивает комплексный подход к постоянному отслеживанию и визуализации показателей качества данных, обеспечивая проактивное управление данными и принятие решений.

Обсуждение

Результаты, полученные в результате практического применения Amazon Deequ для мониторинга качества данных позволяют получить существенное представление о полезности и эффективности этого подхода. Показатели, вычисленные Deequ, охватывающие такие аспекты, как полнота, уникальность и соответствие схеме, были сохранены в InfluxDB и визуализированы в Grafana, обеспечивая всестороннее представление о качестве данных.

Эффективность Deequ в мониторинге качества данных подчеркивается его способностью эффективно обрабатывать большие наборы данных благодаря использованию Apache Spark. В отличие от традиционных инструментов контроля качества данных, которые могут испытывать проблемы с масштабируемостью, Deequ использует возможности распределенных вычислений Spark для выполнения проверок качества больших объемов данных без существенного снижения производительности. Кроме того, декларативный API Deequ для определения правил качества данных обеспечивает гибкий и комплексный подход к определению и проверке ограничений качества данных.

По сравнению с другими методами мониторинга качества данных Deequ выделяется в нескольких аспектах. Традиционные методы часто включают ручные проверки или проверки на основе сценариев, которые не только отнимают много времени, но и подвержены человеческим ошибкам и проблемам масштабируемости. Напротив, Deequ автоматизирует процесс проверки качества данных, обеспечивая согласованность и надежность. Кроме того, многим традиционным инструментам не хватает возможности беспрепятственной интеграции с технологиями и платформами больших данных, и этот пробел эффективно заполняет Deequ.

Более того, интеграция Deequ с InfluxDB для хранения метрик и Grafana для визуализации обеспечивает комплексное решение для мониторинга качества данных, чего часто удается достичь с помощью поэтапных решений другими методами. Такой комплексный подход облегчает мониторинг в режиме реального времени и быстрое принятие решений, что крайне важно в динамичных средах обработки данных.

 

Заключение

В заключение, практическое применение Amazon Deequ демонстрирует его эффективность в мониторинге качества данных не только как библиотеки для модульных тестов, но и как основополагающего инструмента для организации регулярного процесса мониторинга качества данных. Его масштабируемость при работе с большими наборами данных в сочетании с гибкостью в определении правил и интеграцией с современными платформами обработки данных делает его лучшим выбором по сравнению с традиционными методами мониторинга качества данных. Например, создание адаптера для InfluxDB, как показано в этом исследовании, демонстрирует адаптивность Deequ. У пользователей есть возможность либо использовать этот InfluxDB MetricRepository, либо выбрать файловую систему Amazon FileSystemMetricRepository, обрабатывая файлы JSON с помощью предпочтительного инструмента. Более того, возможность создавать производные показатели, визуализировать их или даже интегрировать уведомления для хранителей данных еще больше повышает полезность Deequ в поддержании высоких стандартов качества данных. Это исследование подчеркивает важность внедрения инновационных инструментов, таких как Deequ, для обеспечения высокого качества данных во все более ориентированном на данные мире.

 

СПИСОК ЛИТЕРАТУРЫ:

 

  1. A., Monitoring Data Quality with Amazon Deequ. URL: https://lexaneon.medium.com/monitoring-data-quality-with-amazon-deequ-25db142583cf
  2. Глобальный кризис хранения данных. Почему места в хранилищах на всех не хватит. URL: https://habr.com/ru/companies/first/articles/710838/
  3. Amazon Deequ project. URL: https://github.com/awslabs/deequ
  4. Test data quality at scale with Deequ. URL: https://aws.amazon.com/ru/blogs/big-data/test-data-quality-at-scale-with-deequ/
  5. InfluxDB MetricRepository & example. URL: https://github.com/lexaneon/amazon-deequ-addons
  6. InfluxDB key concepts. URL: https://docs.influxdata.com/influxdb/v1/concepts/key_concepts/
  7. Golmgrein, Irina. (2023). A Comprehensive Overview of Monetization Strategies in Creative Industries. International Journal of Latest Engineering and Management Research (IJLEMR). 8. 10.56581/IJLEMR.8.4.90-100

 

Artemov A.A.

Senior Data Engineer,

Schwarz Media Plattform GmbH

(Mülheim, Germany)

 

MONITORING DATA QUALITY WITH AMAZON DEEQU

 

Abstract: this article examines the importance of data quality management in decision-making in various fields, emphasizing the need for innovative approaches such as Amazon Deequ in an exponentially growing data volume. Amazon Deequ is a library for Apache Spark that offers systematic and scalable data quality assurance tools. This expands the testing capabilities of data quality management software, allowing you to use a variety of metrics and validate large datasets, paying special attention to aspects such as uniqueness and consistency. The integration of Deequ with InfluxDB for metric storage and Grafana for visualization further enhances its usability, allowing continuous monitoring and analysis in real time. This study also examines a methodology that includes environment setup, InfluxDB and Grafana configuration, and data profiling workflows. Using practical examples, the document demonstrates the use of Deequ for data quality monitoring, emphasizes its scalability, flexibility in defining rules and seamless integration with modern data processing platforms. This study highlights the importance of innovative tools such as Amazon Deequ to maintain high data quality in a data-driven world, going beyond traditional data quality monitoring methods.

 

Keywords: data quality, amazon deequ, apache spark, influxdb, grafana, data management, scalability, data analytics, visualization, continuous monitoring.

  


Полная версия статьи PDF

Номер журнала Вестник науки №1 (70) том 2

  


Ссылка для цитирования:

Артемов А.А. МОНИТОРИНГ КАЧЕСТВА ДАННЫХ С ПОМОЩЬЮ AMAZON DEEQU // Вестник науки №1 (70) том 2. С. 1060 - 1077. 2024 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/12419 (дата обращения: 17.05.2024 г.)


Альтернативная ссылка латинскими символами: vestnik-nauki.com/article/12419



Нашли грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики) ?
- напишите письмо в редакцию журнала: zhurnal@vestnik-nauki.com


Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2024.    16+




* В выпусках журнала могут упоминаться организации (Meta, Facebook, Instagram) в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25 июля 2002 года № 114-ФЗ 'О противодействии экстремистской деятельности' (далее - Федеральный закон 'О противодействии экстремистской деятельности'), или об организации, включенной в опубликованный единый федеральный список организаций, в том числе иностранных и международных организаций, признанных в соответствии с законодательством Российской Федерации террористическими, без указания на то, что соответствующее общественное объединение или иная организация ликвидированы или их деятельность запрещена.