Big Data в профиль: что такое профилирование больших данных

Big Data, Большие данные, обработка данных, архитектура, Hadoop, ETL, DWH, нефтянка, нефтегазовая промышленность, Spark

Мы уже затрагивали тему корпоративных хранилищ данных (КХД), управления мастер-данными и нормативно-справочной информаций (НСИ) в контексте технологий Big Data. В продолжение этого, сегодня рассмотрим, что такое профилирование данных, зачем это нужно, при чем тут озера данных (Data Lake) и ETL-процессы, а также прочие аспекты инженерии и аналитики больших данных.

Что такое Data Profiling и как это связано с Big Data

Начнем с определения: профилирование данных (Data Profiling) – это процесс исследования данных для выяснения их статистических характеристик, таких как характер распределения величин, наличие выбросов, параметры выборки. Также сюда входит предварительная оценка качества данных: поиск пропущенных значений, нарушения целостности и бизнес-логики связей между значениями полей и пр. [1]. Можно выделить следующие практические приложения, когда профилирование данных является обязательной процедурой:

  • исследование данных из систем-источников перед разработкой ETL/ELT-процессов;
  • организация процессов работы с озером данных (Data Lake) или КХД;
  • проверка качества данных в рамках их подготовки к интеллектуальному анализу (Data Mining) с помощью алгоритмов Machine Learning или других методов Data Science;
  • интеграция данных или информационных систем.

Во всех этих кейсах профилирование данных позволяет ответить на следующие вопросы [2]:

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

Таким образом, профилирование данных помогает не только понять аномалии и оценить качество данных, но также обнаружить, выявить и оценить корпоративные метаданные, снижая риски возникновения проблем с Data Quality в таких дорогостоящих проектах, как построение озера данных или КХД. Также профилирование повышает эффективность работы всех Big Data специалистов: Data Scientist’ов, аналитиков и инженеров данных. В частности, инструменты профилирования и автоматической разметки всех данных в едином каталоге включены в состав «умного озера данных» – комплексной платформы обработки, хранения и анализа больших данных с интегрированными средствами Data Governance в ПАО «Газпромнефть» [3]. Подробнее об этом проекте на базе Arenadata Hadoop мы рассказывали здесь.

Подготовка данных для Data Mining на Python

Код курса
DPREP
Ближайшая дата курса
в любое время
Продолжительность
32 ак.часов
Стоимость обучения
72 000

Когда и как делать профилирование больших данных

Поскольку профилирование данных является одним из инструментов обеспечения их качества, это постоянный процесс. В частности, Ральф Кимбалл, известный DWH-архитектор, который предлагает проектировать КХД «снизу вверх» по важности витрин данных с точки зрения бизнеса [4], подчеркивает, что профилирование данных выполняется несколько раз и с различной интенсивностью на протяжении всего процесса разработки Data Warehouse (DWH). Первоначальное профилирование следует проводить сразу после определения исходные системы, а также после удовлетворения бизнес-требований к DWH и аналитике данных с помощью BI-инструментов (Business Intelligence). Такой первоначальный анализ позволит на ранней стадии выяснить, доступны ли нужные данные на соответствующем уровне детализации и можно ли обработать выявленные аномалии. Иначе, проект по построению DWH может быть прекращен из-за его нецелесообразности [2]. Эта же рекомендация применима и к Data Lake. Подробнее о применимости профилирования данных в ETl и ELT-конвейерах для работы с DWH и Data Lake читайте в нашей новой статье.

Углубленное профилирование данных выполняется до моделирования измерений OLAP-кубов с целью оценки того, что потребуется для преобразования данных в модель измерений, по сути, витрину (Data Mart). Детальное профилирование входит в проектирование ETL-системы, чтобы определить соответствующие данные для извлечения и фильтры, которые следует применить к набору данных. Также профилирование данных может выполняться в процессе разработки КХД уже после того, как данные загружены в Stage, витрины данных и прочие слои DWH-архитектуры. Это позволяет гарантировать корректность процедур очистки и преобразования данных в соответствии с корпоративными требованиями [2].

С учетом количества потенциальных проблем с данными, начиная от пропущенных значений и до нарушения целостности, сегодня профилирование стало практически полностью автоматизированным. В частности, большинство комплексных систем для анализа и интеграции Big Data от Informatica, Oracle, SAP, IBM, SAS и других крупных вендоров включают специальные модули для профилирования данных. Также есть локальные решения, ориентированные непосредственно на задачи профилирования, например, Datiris Profiler, DataCleaner, Precisely, Ataccama и пр. [1]. Например, продукт Ataccama используется в X5 Retail Group вместе с Apache Spark и Hadoop для оптимизации торговой логистики, мерчендайзинга и подготовки надежной BI-отчетности [5]. Похожее решение в декабре 2019 года предложила платформа управления данными Informatica Intelligent Data Platform, выпустив на российский рынок новые функции на базе искусственного интеллекта CLAIRE, среди которых профилирование данных с помощью Apache Spark. Это в 3-5 раз повышает производительность обработки данных в среде Apache Hadoop, обеспечивая гибкую масштабируемость до миллиардов строк [6]

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

Наконец, какие-то уникальные операции профилирования Big Data, не входящие в состав типовых продуктов, могут быть реализованы вручную, например, через разработку собственных функций на Python или Java. В частности, здесь мы рассказываем о согласовании (сверке) данных при миграции и сложных ETL-процессах с Apache Spark в облачных сервисах AWS. 

Про профилирование программного кода на примере PySpark-приложения читайте в нашей новой статье.

Анализ данных с помощью современного Apache Spark

Код курса
SPARK
Ближайшая дата курса
12 мая, 2025
Продолжительность
32 ак.часов
Стоимость обучения
96 000

Как запустить профилирование больших данных и обеспечить их качество, вы узнаете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://www.dvbi.ru/articles/reading/data-profiling-is-necessary-step-towards-building-DWH
  2. https://en.wikipedia.org/wiki/Data_profiling
  3. https://globalcio.ru/live/projects/3040/
  4. https://habr.com/ru/post/441538/
  5. https://www.ataccama.com/ru/customers/success-stories/x5
  6. https://www.osp.ru/news/2019/1227/13038206