Мы уже затрагивали тему корпоративных хранилищ данных (КХД), управления мастер-данными и нормативно-справочной информаций (НСИ) в контексте технологий 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 в Москве:
- Подготовка данных для Data Mining на Python
- Hadoop для инженеров данных
- Анализ данных с Apache Spark
- https://www.dvbi.ru/articles/reading/data-profiling-is-necessary-step-towards-building-DWH
- https://en.wikipedia.org/wiki/Data_profiling
- https://globalcio.ru/live/projects/3040/
- https://habr.com/ru/post/441538/
- https://www.ataccama.com/ru/customers/success-stories/x5
- https://www.osp.ru/news/2019/1227/13038206