Мы уже затрагивали тему корпоративных хранилищ данных (КХД), управления мастер-данными и нормативно-справочной информаций (НСИ) в контексте технологий 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
Ближайшая дата курса
16 декабря, 2024
Продолжительность
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