Аналитика больших данных напрямую связана с их качеством, которое необходимо отслеживать на каждом этапе непрерывного конвейера их обработки (Pipeline). Сегодня рассмотрим методы и средства обеспечения Data Quality на примере корпорации Airbnb. Читайте далее про лучшие практики повышения качества больших данных от компании-разработчика самого популярного DataOps-инструмента в мире Big Data, Apache Airflow.
Как все начиналось: эволюция Data Quality в Airbnb
Мы уже писали, что такое качество данных (Data Quality) и как дата-стюарды помогают владельцам данных держать его на приемлемом уровне в рамках отдельного бизнес-подразделения. Однако, это не единственная практика Data Governance/Management, которая может повысить качество данных. Проблема качества больших данных является комплексной и охватывает, как минимум 3 стороны: организационную, архитектурную и техническую. Именно эти аспекты, прежде всего, выделяет известная data-driven компания Airbnb, которая не только является крупнейшей площадкой по краткосрочной аренде частного жилья по всему миру, но и выпускает успешные решения стека Big Data. В частности, Apache Airflow и Apache Superset были изначально разработаны этой корпорацией для собственных нужд, а затем перешли в статус open-source продуктов под эгидой фонда ASF.
Обычно бизнес начинает задумываться о качестве данных тогда, когда их количество перестает поддаваться ручным методам управления. Например, Airbnb всего за несколько лет превратился из небольшого стартапа в огромную корпорацию с распределенной организационной структурой, офисами и удаленными сотрудниками по всему миру. При этом понимание о том, как обеспечить Data Quality в случае такого стремительного роста, пришло далеко не сразу.
В частности, владение активами данных было распределено между группами разработчиков, где инженеры-программисты или ученые по данным были основными владельцами конвейеров и наборов данных. Однако, ответственность за владение данными не была четко определена, что и являлась узким местом организационных проблем с Data Quality.
Кроме того, большинство конвейеров обработки больших данных были построены в первые дни компании, без четко определенных стандартов качества и комплексной стратегии архитектуры данных. Это привело к чрезмерному усложнению моделей данных и возложило дополнительную операционную нагрузку на дата-инженеров. Наконец, кроме комплексной стратегии для разработки единой архитектуры данных, Airbnb также требовался централизованный процесс управления (Data Governance), позволяющий командам придерживаться согласованной стратегии и унифицированных стандартов.
Поэтому в начале 2019 года компания сформировала комплексный план решения организационных и технических проблем по обеспечению Data Quality, начав масштабный проект по реорганизации корпоративного хранилища данных с использованием новых процессов и технологий. При этом в рамках разработке комплексной стратегии повышения качества данных были поставлены 5 основных целей [1]:
- обеспечить четкое владение всеми важными наборами данных;
- убедиться, что важные данные всегда соответствуют SLA (Service Level Agreement, соглашение об уровне предоставления услуг, один из важнейших показателей качества предоставления услуги потребителю, внешнему по отношению к процессу);
- убедиться, что конвейеры обработки данных построены согласно высоким стандартам качества с использованием лучших DataOps-практик и современных технических средств;
- убедиться, что важные данные заслуживают доверия и регулярно проверяются;
- убедиться, что данные хорошо задокументированы и легко обнаруживаются.
Для этого был реализован ряд мероприятий по следующим направлениям:
- организационное, включая четкое разделение и закрепление ответственности за источники данных и процессы их обработки, обучение и непрерывное профессиональное развитие собственных инженеров данных, а также наем новых сотрудников;
- архитектурное, куда вошли изменения корпоративных моделей и процессов аналитики больших данных, разработка процедур дата-инженерии, внедрение новых технологий Big Data и построение единой платформы каталогизации показателей и измерений для выгрузки в дэшборды BI-систем;
- техническое для реализации архитектурных и организационных инициатив с помощью современных инструментальных средств.
Особенности этой трансформации мы подробнее рассмотрим далее.
Организационные изменения
Примечательно, что до 2019 года у Airbnb не было официальной роли инженера данных (Data Engineer). Большую часть работы по инженерии данных выполняли ученые по данным (Data Scientist) и инженеры-программисты, которых нанимали под разными именами. Это несоответствие сильно усложняло набор навыков инженерии данных и создавало некоторую путаницу в отношении карьерного роста. Поэтому Airbnb уточнил свое понимание обязанностей и профессиональных компетенций дата-инженера, включив туда моделирование данных, разработку конвейеров и разработку программного обеспечения. Также в рамках предприятия были созданы новые профессиональные сообщества [1]:
- ежемесячный форум инженеров данных для каскадирования контекста и сбора отзывов о Data Quality и смежных аспектах от более широкой аудитории;
- рабочая группа архитекторов данных из старших дата-инженеров для принятия основных архитектурных решений и проведение обзоров для сертификации data pipeline’ов;
- рабочая группа по инструментам проектирования данных из дата-инженеров со всей компании для разработки видения инструментов и рабочих процессов инженерии Big Data;
- группа лидеров в инженерии данных из менеджеров по разработке данных и ТОП-овых руководителей для принятия организационных и кадровых решений.
Новые технологии и архитектурные модели для эффективной обработки и быстрой аналитики Big Data
Изначальная основа аналитики больших данных в компании представляла собой модель данных со звездообразной схемой, оптимизированную для простоты использования. Она была централизованная, принадлежала одной команде и включала в себя множество источников данных из разных предметных областей. Эта модель отлично зарекомендовала себя в 2014 году, но по мере роста бизнеса и увеличения объема данных ее стало сложно управлять. Поэтому было принято решение о децентрализации архитектурной модели с помощью платформы, которая каталогизирует показатели и измерения и вычисляет соединения между этими объектами. При этом были разработаны новые модели данных по следующим принципам:
- таблицы должны быть нормализованы и иметь как можно меньше зависимостей, чтобы облегчить работу платформы по объединению моделей данных;
- таблицы, описывающие схожие домены, сгруппированы по предметным областям, у каждой из которых только один владелец.
Также были радикально изменены существующие data pipeline’ы. Сперва аналитика больших данных в Airbnb выполнялась через SQL в Apache Hive. Этот подход не был особенно популярен среди инженеров, поскольку SQL не обладает преимуществами функциональных языков программирования, таких как повторное использование кода, модульность, безопасность типов и пр. Поэтому было решено перейти на Apache Spark со Scala API в качестве основного интерфейса. Также с помощью Spark были упрощены шаблоны чтения/записи и интеграционное тестирование конвейера данных. Кроме того, был создан и внедрен в новые data pipieline’ы новый инструментарий проверки качества данных и обнаружения аномалий. Было установлены строгие требования в области операций с данными. В частности, все важные наборы данных должны иметь соглашение об уровне обслуживания для времени загрузки, а конвейеры должны быть настроены с помощью PagerDuty [1], системы оповещения и отслеживания инцидентов, управления ИТ-операциями. Она помогает как можно быстрее разрешить критические ошибки, обеспечивая интеграцию со всеми инструментами мониторинга ИТ-инфраструктуры: Splunk, New Relic, Nagios, Zenoss и др. Умеет предупреждать о проблемах по телефону, SMS, по почте, планировать операции и автоматическая эскалировать критические проблемы [2].
Немного о Data Governance
При реорганизации хранилища данных Airbnb, стало ясно, что нужен механизм, обеспечивающий согласованность между моделями данных и высокое Data Quality для всех команд. Также требовался оптимальный способ показать конечным пользователям самые надежные наборы данных. Для этого был запущен процесс согласования проектных спецификаций перед построением конвейеров данных. В спецификации описываются показатели и измерения, схемы таблиц, диаграммы data pipeline’а, а также неочевидную бизнес-логика и другие предположения. После утверждения спецификации дата-инженер строит наборы данных и конвейеры их обработки. Полученные данные и код затем проверяются и получают сертификат, который виден во всех инструментах обработки данных, ориентированных на потребителя. Сертифицированные данные имеют приоритет в инструментах обнаружения данных, поэтому каждая команда-владелец данных заинтересована в получении такого Data Quality знака.
Наконец, были созданы новые механизмы для обеспечения подотчетности, связанной с качеством данных. В частности, изменен процесс сообщения об ошибках, связанных с Data Quality, и организована еженедельная встреча по их обзору для выявления высокоприоритетных инцидентов, а также обсуждения и согласования корректирующих действий. Кроме того, внесено требование о том, чтобы каждая команда включала SLA конвейера данных при планировании своих квартальных целей и показателей (OKR, Objectives and Key Results) [1].
Таким образом, совокупность организационных, архитектурных и технических изменений помогла Airbnb повысить качество корпоративных данных и стала важным этапом цифровой трансформации этой data-driven компании. Завтра мы продолжим разговор про инженерию больших данных и рассмотрим 10 лучших практик, которые помогут повысить качество данных и позволят эффективно управлять data pipeline’ами.
А какие управленческие приемы Data Governance, а также инструментальные средства инженерии и аналитики больших данных подходят для цифровизации частного бизнеса, а также государственных и муниципальных предприятий, вы узнаете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
- Аналитика больших данных для руководителей
- Архитектура данных
- Построение конвейеров обработки данных с Apache Airflow и Arenadata Hadoop
Источники
- https://medium.com/airbnb-engineering/data-quality-at-airbnb-e582465f3ef7
- https://habr.com/ru/company/funcorp/blog/481656/