Ракеты и снаряды дата-инженеров: коллекция инструментов по управлению большими данными

от автора

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

Поэтому при подготовке этой коллекции мы с помощью экспертов из Ростелекома постарались решить несколько задач. Во-первых, дать представление — для чего возникли и используются те или иные инструменты управления большими данными. На примерах показать, как они выглядят и работают. И во-вторых, обязательно найти кейсы их применения в компаниях, которых без Big Data, наверное, просто не было бы.


Дата-инженер, компаньон дата-сайентиста, отвечает за управление рабочими процессами, конвейерами обработки и ETL-пайплайнами. Статья начинается со своеобразной пирамиды Маслоу, а ещё сюда подходит метафора цирковой пирамиды, в которой дата-инженер — это самый могучий атлет, тот гигант, на плечах которого стоят аналитики данных и специалисты по машинному обучению. Основа его мощи — Hadoop, Spark, Cassandra. Он знает Java, а может быть, даже и Scala. А в облаках ему знакома каждая платформа.

Вопрос:

Может ли дата-сайентист всё-таки обойтись без дата-инженера и, как Мюнхгаузен, поднять себя самого за волосы? В каких масштабах и каких задачах? И надо ли, чтобы пайплайн стал таким прозрачным, что дата-сайентисты забудут о существовании дата-инженеров?

В несложных проектах роли дата-сайентиста и дата-инженера может совмещать один человек. В крупных же компаниях требуется собирать много данных из разных систем и за каждый процесс отвечает отдельный дата-инженер или команда дата-инженеров. Дата-сайентисты же занимаются только функциями моделирования и анализа.
Евгения Гертовская
руководительница направления системной разработки

Да, DS может обойтись без DE, при этом область применения DS будет существенно сужаться, так как знать все системы компании, особенно крупной, невозможно. Кроме того, процесс станет сильно медленнее, ведь будет уходить время на изучение систем вместо работы с моделями и данными.
Михаил Солоницын
архитектор проектов

Архитектура хранилища очень масштабная, чтобы осилить её только одним направлением. Можно, конечно, чтобы DS выполнял и подготовку данных, и анализ архитектуры. Но давайте не забывать хорошую поговорку: «За двумя зайцами погонишься…» Можно попробовать как-то оптимизировать домены, управлять шаблонными действиями, но полностью обеспечить под ключ решение для потребителей, на мой взгляд, не получится.
Илья Тищенко
архитектор проектов

Чтобы дата-сайентист мог начать работу, дата-инженер создаёт инфраструктуру хранения и обработки данных. Современный пайплайн данных состоит из трёх шагов: Extract, Transform и Load, из первых букв этих слов и составлена аббревиатура ETL. Есть десятки фреймворков ETL, какой из них выбрать? Кроме того, ETL могут быть SQL- и JVM-ориентированные. И есть множество моделей данных, позволяющих найти компромисс между лёгкостью создания аналитических запросов и сложностью поддержки. Одна из популярных — схема звезды. Автор делится примером построения пайплайна из опыта Airbnb и приводит пример запроса с использованием Airflow.

Вопрос:

Действительно ли популярна схемы звезды за пределами Airbnb? Какие модели используются сегодня? Хранилище данных — конечная точка ETL, дальше — только модели ML, принятие решений и управление?

Схема звезды — один из паттернов при создании модели в хранилищах данных, «одна из наиболее популярных [схем]» — как сказано в статье. Сейчас используются разные модели и подходы при проектировании ХД — модели «звезда» и «снежинка», якорная модель, Data Vault.

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

Евгения Гертовская
руководительница направления системной разработки

Когда нужна пакетная (batch), а когда потоковая обработка (streaming)? Чем аналитика товарных запасов отличается от аналитики веб-портала? Базовый инструментарий для обработки потоков данных — это загрузчик данных, шина обмена и хранилище данных. Загрузить данные помогут Apache Flue, Apache NiFi и StreamSets. Для обмена популярны Kafka и RabbitMQ. Хранить данные можно в HDFS, Kudu, ClickHouse и т. д. В качестве практического примера в статье построен пайплайн для сбора виртуального пользовательского следа (clickstream) — ценных данных для маркетологов. Путешествие данных начинается с захвата их через Divolte, продолжается полётом в «Кафку» и завершается прибытием в ClickHouse.

Вопрос:

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

Пакетная загрузка — самый быстрый способ передачи большого объёма данных и в обозримом будущем никуда не исчезнет. Одним из главных двигателей в развитии потоковой обработки сегодня является скорость принятия оперативных управленческих решений: принять решение о выдаче кредита прямо сейчас, показать рекламу на основании 10 последних запросов…
Михаил Солоницын
архитектор проектов

Нет универсальных инструментов. Каждый класс инструментов хорош в одних задачах, но не обеспечивает требования в других. Нельзя сказать, что пакеты уходят в прошлое, основываясь только на появлении новых инструментов. Они лишь только дополняют общий стек, что покрывает больше задач, оптимизируя затраты и повышая производительность. Драйвером изменений всегда является потребитель. Если есть спрос, то появятся и предложения.
Илья Тищенко
архитектор проектов

Big Data начинаются тогда, когда данные становятся так велики, что ни за какие разумные деньги уже нельзя купить достаточную конфигурацию, чтобы все данные поместились в памяти одного сервера. Новые подходы к параллельной обработке попали в центр внимания после того, как был предложен MapReduce. Подсчёт частот слов во входной коллекции файлов, распределённый grep, инвертирование графа Всемирной паутины и поискового индекса — все эти задачи распараллеливаются при помощи известных из функционального программирования map и reduce. Параллельное программирование этих и многих других задач стало доступным широким кругам разработчиков. Приверженцы обязательного чтения классических статей могут обратиться и к статье авторов на английском языке.

Вопрос:

Автор утверждает: «Без MapReduce ты не можешь утверждать, что твоя платформа поддерживает Big Data!». Просто провокационное заявление? Или Big Data без MapReduce — это, возможно, и терабайты, но не настоящая Big Data, а что-то в стороне от сегодняшнего мейнстрима?

Заявление, на мой взгляд, слишком смелое. Можно его сделать про класс подобных средств. Гибкие средства реализации распределённой обработки данных, как MapReduce, и альтернативы (Tez, Spark и т. п.) обеспечивают свойство универсальности, без которого нет современных платформ Big Data.
Роман Генис
архитектор проектов

MapReduce — это один из фреймворков, но он не обязателен для решения задач Big Data.

Автор также это указывает в статье: «Существует множество альтернативных программных моделей, работающих с большими данными, которые могут даже оказаться лучше или гибче, чем MapReduce, но тот однозначно может считаться самым упрощённым, хотя, может быть, и не самым эффективным».

Скорее имеются в виду пользовательские ожидания от платформ для Big Data (где пользователи — это команда, выбирающая платформу для разработки), а не обязательность использования в Big Data.

Евгения Гертовская
руководительница направления системной разработки

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

Apache Hadoop

Более пятнадцати лет назад инженеры Google описали изобретённую ими распределённую файловую систему GFS и парадигму обработки больших данных MapReduce. Идея всех захватила, и вскоре появился Hadoop — проект с открытым кодом на Java. А чтобы отобразить привычные SQL-запросы в job’ы Hadoop, возникли фреймворки Apache Hive и Apache Pig — движки языков SQL-подобных запросов. Развитием GFS стала файловая система HDFS, а аналогом использующей её проприетарной базы данных BigTable — HBase.

Вопрос:

Благодаря каким ключевым достоинствам экосистема Hadoop до сих пор используется и сохраняет популярность?

Главное ключевое достоинство — это стоимость хранения и обработки массивных данных. Также очень важны для неугасающего распространения широко освещённый опыт применения и распространившаяся экспертиза. Профессиональное сообщество верит в Hadoop благодаря многочисленным удачным применениям (внедрениям) командами тысяч организаций по всему миру, в т. ч. лидерами, на протяжении десятка лет. К тому же крупные вендоры приложили множество усилий, чтобы проложить Hadoop дорогу в индустрии.
Роман Генис
архитектор проектов

Hadoop относительно дешёвая платформа для хранения большого объёма данных. При этом есть хорошие возможности для масштабирования при развитии системы и увеличении объёма данных. Hadoop как набор утилит, библиотек позволяет выбрать те, которые требуются компании для решения её задач.
Евгения Гертовская
руководительница направления системной разработки

Среди достоинств можно выделить: пониженные требования к аппаратному обеспечению, Open-Source-реализация, наличие большого сообщества и де-факто стандарт в хранении большого объёма данных и работе с ним.
Михаил Солоницын
архитектор проектов

Open Source — это одно из достоинств данной системы. Интерес разработчиков в том, чтобы на базе одного продукта реализовать и покрыть большинство решаемых задач.
Илья Тищенко
архитектор проектов

По мере коммерциализации технологий бинарные сборки популярных дистрибутивов, которые раньше были в открытом доступе, уходят в платную подписку. Для тех, кто не хочет переходить на платную версию, но хочет использовать свежие версии компонентов кластера, в статье рассказано про Arenadata Hadoop — новый и пока ещё мало кому известный дистрибутив отечественной разработки.

Hadoop — не монолитный продукт, а множество инструментов вокруг распредёленной файловой системы HDFS. При установке бинарных версий компонентов Hadoop всегда возникает вопрос о совместимости загруженных версий компонентов между собой. Эту проблему помогает решить сборка с помощью Apache Bigtop. Bigtop позволит выполнить сборку из maven-репозиториев Apache, прогнать тесты и собрать пакеты.

Онлайн-конференция Ростелекома DataTalks 2.0

Онлайн конференция Ростелекома DataTalks 2.0. День 1

Онлайн конференция Ростелекома DataTalks 2.0. День 2

DataTalks 2.0 — конференция по управлению данными, которую организует Ростелеком. Первый день проходит в форме лектория для начинающих специалистов. Второй — в формате разговоров с CDO.

Как эффективно управлять данными? Какие подходы к работе с большими данными сейчас популярны? Какие проблемы находятся в фокусе внимания CDO России? И кто такие CDO, которые на конференции дискутируют на темы построения Data Governance и внедрения data-driven-культуры в корпорациях? Об этом — в видеодокладах конференции.

Вопрос:

Каково главное направление конференции Data Talks 2.0? Что ожидается на этой конференции в 2021 году?

На DataTalks 2.0 мы сосредоточились на вопросах, которые были недораскрыты на первом курсе лекций: архитектура хранилища, качество данных, DataOps и MLOps. Самый важный вопрос, который мы хотели осветить на DataTalks 2.0, — подходы к построению Data Governance. Для внедрения дата-инициатив в компаниях важны не только технологии, но и люди и процессы. Вопросы баланса между ключевыми компонентами Data Governance волнуют каждого, кто работает в этом направлении и задумывается об эффективности.

Мы пока не готовы анонсировать программу DataTalks 3.0. Но мы будем раскрывать темы, о которых не успели поговорить на предыдущих мероприятиях. Это будет интересно и начинающим, и профессионалам.

Марина Кормщикова
директор направления департамента управления справочной информацией

Какие задачи можно распараллелить на большом кластере при помощи Hadoop? Это, к примеру, быстрый и регулярный обход спайдерами URL-ов. Масштаб задачи — 40 миллиардов адресов, ресурс — 170 серверов. Каждый день спайдеры скачивали около миллиарда страниц. Разработчики поиска Mail.ru реализовали патч, который ускорил проходы по таблице HBase. Разработчики переложили формирование очередей, разбор страниц и импорт ссылок на MapReduce, а сам краулер стал выполнять только функцию скачивания.

Вопрос:

Какие ещё крупные задачи можно реализовать на Hadoop?

На Hadoop достаточно широко распространены архивы детальных исторических данных, в т. ч. не структурированных. Дешёвое накопление в одном месте данных за старые периоды из всех бизнес-систем организаций даёт возможность в будущем получать пользу, даже если мы сейчас не представляем, какого рода она будет и на какой обработке будет реализована. Можно сказать, что Hadoop хорош как стратегическое средство накопления данных.
Роман Генис
архитектор проектов

Hadoop может использоваться как основа для Data Lake, кроме того на этой экосистеме можно выполнять множество распределённых задач — обработка научных данных (статистика, химия, генетика, и т. д.).
Михаил Солоницын
архитектор проектов

Доклады «Яндекса»

Парадигма MapReduce развивается и за пределами Hadoop. В «Яндексе» построили систему YT, где есть свои аналоги экосистемы Hadoop: распределённая файловая система, хранилище метаинформации, вычислительный фреймворк, «ключ-значение» и так далее. При помощи подхода MapReduce реализован планировщик заданий («джобов»).

Вопрос:

Много ли у нас компаний, которым недостаточно Hadoop? Каков должен быть масштаб задач, чтобы пришлось строить собственную альтернативу?

На мой взгляд, здесь вопрос скорее в позиционировании компании на IT-рынке. Надо понимать, что «Яндекс» и Mail.ru являются IT-компаниями и рассматривают новые технологии (Big Data, in-memory, key-value СУБД и прочее) как свой потенциальный актив, в котором они могут создавать дополнительную ценность и далее монетизировать её. Для этого в IT-компаниях есть команды архитекторов, аналитиков, разработчиков и тестировщиков решений. Сложно представить, чтобы компании ритейла, банковского или нефтегазового секторов так же активно инвестировали собственные ресурсы в создание новых технологий. За исключением компаний, которые выбрали свою стратегическую цель создания цифровой экосистемы и начали выходить за рамки своей профильной деятельности.
Сергей Семененко
директор департамента технологического развития управления данными

Влияет не только масштаб, но и другие условия, такие как специфика отрасли, задач. У всех больших компаний есть специфика компании, задач, архитектуры, и часто решения, первоначально разработанные для другой специфики, сложно использовать (в том числе и Hadoop).
Евгения Гертовская
руководительница направления системной разработки