Включите исполнение JavaScript в браузере, чтобы запустить приложение.
31 мар 2025

Что такое ETL и как это связано с аналитикой данных

Что такое системы ETL для аналитики и обработки данных в бизнесе? Выгрузка информации, преобразование и загрузка Big Data в компаниях: как это работает, и какие инструменты используются.

Зачем нужна ETL-система

ETL — это процесс транспортировки данных, то есть когда Big Data берут из одного источника и «перекладывают» в другой. Аббревиатура ETL расшифровывается как «Extract, Transform, Load» — «извлечение, трансформация, загрузка».

В крупных компаниях данные из разных источников постепенно накапливаются: ими все сложнее управлять. Например, информация о клиентах может храниться в разных структурированных и неструктурированных источниках: CRM-системе, чатах менеджеров, Excel, 1С, бумажных документах бизнеса и прочих. Собрать сведения «в одном месте» становится сложно. И еще труднее — обновлять и поддерживать. Поэтому и появились ETL-системы, позволяющие автоматизировать процессы: извлекать, трансформировать и загружать Big Data.

ETL простыми словами

Представьте продавца в магазине перед новогодними праздниками. 

Ему нужно:

  • взять товар на полке или на складе (извлечь);
  • обернуть в подарочную упаковку (преобразовать);
  • передать покупателю (загрузить).

Приблизительно так и работает система ETL (Extract, Transform, Load), но только в бизнесе и с BigData.

Инструменты нужны, чтобы:

  • извлечь информацию из различных структурированных и неструктурированных источников;
  • преобразовать в нужный формат;
  • загрузить в «конечную точку» (место назначения).
Как работает ETL-система
Как работает ETL-система

Как работает ETL-система

ETL-система подразумевает основные этапы: 

  • extract (извлечение);
  • transform (трансформация);
  • load (загрузка). 

Но в рамках этих стадий существуют и дополнительные. Ниже разберем, как и для чего используется каждая.

Загрузка (Extract). В систему загружают «сырые исходники» из разных источников. На этом этапе нет валидации. Все, что делает система, — сверяет количество строк у источника и в результате загрузки. Если у источника было условно 55, а в систему завели 34, где-то в загрузке случился сбой.

Валидация. Система проверяет данные: полноту, корректность, ошибки. В результате валидации пользователь получает отчет. Если в нем есть ошибки, их необходимо исправить.

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

Маппинг (mapping). Часть процесса трансформации/преобразования (transform) подразумевает преобразование под нужный формат. В ходе маппинга работают специальные скрипты для изменения исходных сведений. Например, преобразуют строки в числа, нормализуют даты, приводят информацию к единому формату.

Агрегация. Релевантные сведения, которые были очищены, объединены и разделены (в зависимости от специфики задачи), теперь собираются в один источник. Например, сведения о среднем чеке в офисах продаж из 120 регионов.

Выгрузка (Load). На этом этапе подготовленные данные выгружают из системы и отправляют в целевую БД, озеро данных (Data Lake) или хранилище. Загрузка может быть полной (все сведения из источников ETL отправляет в хранилище) или добавочной (новые записи создаются только в случае, если никаких записей нет).

Таким образом, разобрали основные этапы выгрузки, преобразования и загрузки.

Откуда брать данные для ETL

Зависит от специфики бизнеса и компании. Основные источники:

  • базы данных (реляционные, NoSQL и нереляционные);
  • файлы (JSON, XML, CSV);
  • SaaS (API);
  • вебхуки (WebHooks) и прочие.

У каждого из источников свой способ предоставления доступа. Для загрузки файла нужна ссылка, для получения сведений с API требуется токен авторизации, к БД необходимо подключаться напрямую и так далее. Сами файлы могут иметь разные характеристики: формат, размер, структуру. Поэтому и нужно будет преобразование.

ETL-процесс позволяют обработать их, «причесать» и привести к единой структуре, чтобы потом положить в хранилище.

Где и как используется

ETL-процессы нужны инженерам и аналитикам в крупных компаниях. Как правило, необходимость внедрять системы «Extract, Transform, Load» возникает, когда:

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

Проблема разрозненных источников

К примеру, в 2024 году программист Иван открыл счет в Сбербанке. Информация о нем (ФИО, дата рождения, место проживания) хранится в базе Сбера. 

В начале 2025 разработчик зарегистрировался на платформе для работы с исходным кодом GitVerse: указал номер телефона, заполнил сведения о себе. Сведения попадают в новую базу — уже GitVerse.

Маркетолог приходит к аналитику и спрашивает: «Сколько пользователей GitVerse являются клиентами Сбера?» (например, чтобы разработать систему бонусов или запустить акцию). Чтобы ответить на вопрос, нужно объединить данные из разных систем в аналитическое хранилище и вывести закономерности.

Примеров, как собрать информацию из разрозненных источников может быть и больше. 

  1. Банк выдает кредит. Сведения о поступлениях на карту хранятся в одной БД, а заявка на кредит приходит во вторую. Нужно объединить системы, чтобы понять влияние доходов на погашение кредитов.
  2. Производитель анализирует продажи. Например, у компании две торговые точки на рынке, один интернет-магазин и тридцать оптовых покупателей. Информация о продажах из магазина хранится в одной базе, данные о продажах из ИМ — в другой, сведения по «оптовикам» в третьей. Аналитику нужно их объединить, чтобы выявить закономерности: что покупают чаще.
  3. Сервис доставки еды хочет проверить, как персональные рекомендации влияют на продажи. Корзина — это одна БД, а рекомендации — другая. Нужен  ETL-процесс, чтобы сравнить информацию.

Проблема, когда данных становится слишком много

К примеру, компания «Программисты» хранит информацию в БД класса OLTP (Online Transaction Processing — обработка транзакций в реальном времени). Такие базы используют для решения задач в разных сферах — автоматизированные банковские системы, ERP-системы, складской и бухгалтерский учет. Преимущество OLTP — количество транзакций в секунду. С задачей быстрой записи OLTP справляются хорошо. Правда, для аналитики не подходят: если нужно извлечь определенные сведения, система будет перебирать все строчки. 

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

IDСумма заказаВерсия браузераДата заказаМетод оплатыГеолокацияДоставка
Строка 1
Строка 2
Строка 3

Когда количество строк увеличивается, запросы становятся очень медленными. Иногда из-за ограничений БД аналитик получает ошибку.

Для решения этой проблемы появились «колоночные» OLAP (Online Analytical Processing). Они позволяют получить данные из запрашиваемой колонки, не перебирая все строчки. Количество операций значительно меньше.

IDСумма заказаВерсия браузераДата заказаМетод оплатыГеолокацияДоставка
Строка 1
Строка 2
Строка 3

Система ETL нужна, чтобы переместить данные в базу, предназначенную для аналитики. Это позволит быстрее получать нужные сведения: геолокация покупателей, средний чек, способы оплаты и прочие.

Преимущества и недостатки ETL

Основные плюсы:

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

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

Существуют ELT-системы (extraction, loading и transformation). Отличие в том, что данные сначала загружаются в хранилище, а потом обрабатываются. Метод ELT подходит для работы с облачными хранилищами и Data Lake.

Примеры ETL-систем

В России доступна платформа Сбера (SberData Platform). Это набор интегрированных сервисов работы с данными, который упрощает развертывание и настройку сервисов, сокращает время на создание решений для работы с Big Data.

Ниже расскажем об инструментах, которые помогут перенести данные из источника, обработать и загрузить в хранилище.

Платформа SberData
Платформа SberData

Сбор и подготовка данных (ETL)

Platform V DataFlow — сервис для приема, передачи и обработки данных в режиме реального времени и в режиме пакетной обработки. Поддерживает разные форматы: журналы, социальные сети, геолокацию и иные (структурированные и неструктурированные). Работает с протоколами SFTP, HDFS и KAFKA и большинством СУБД.

Обработка и оценка качества 

Platform V DataQuality помогает контролировать качество данных, обеспечивает визуализацию состояния и проверку SQL- и Hadoop-источников. Сервис поддерживает версионность и визуализацию проверок, запуск и исполнение пользовательских проверок.

Platform V Hadoop — инструмент для работы с Big Data с возможностью хранения структурированных и неструктурированных данных, обработки с применением модели распределенных вычислений, управления кластером компонентов. В рамках Platform V Hadoop представляются Ambari, MapReduce, ZooKeeper, Sqoop.

Хранение

Для построения аналитических хранилищ используется SDP AnalyticDB. Инструмент с полноценным SQL-доступом поддерживает интеграция с ETL-компонентами или BI-платформами. 

Машинное обучение для продвинутой аналитики

Platform V DataLab — сервис разработки ML-моделей и реализации алгоритмов Data Science. Инструмент помогает анализировать данные в корпоративном хранилище, Data Lake и других системах. 

С помощью Platform V DataLab можно проверять исследовательские гипотезы, строить графики на базе предобработанных данных, искать корреляционные зависимости, создавать витрины данных для оперативной обработки запросов и делать многое другое.

Визуализация

Platform V SDP Analytics — набор из BI-инструмента и оркестратора ETL-сценариев на основе Apache Superset и Apache Airflow. Позволяет создавать витрины с использованием встроенного ETL, изолировать рабочие области, работать с Pangolin/PostgreSQL, SDP Greenplum, Hive, ClickHouse, Druid и иными.

Таким образом в экосистеме продуктов Platform V представлены решения для ETL. Преимущества — отечественное ПО и отказоустойчивость сервисов.

Но можно использовать и иные инструменты для извлечения и преобразования: Apache Airflow, PySpark, Scriptella ETL Project, Apatar.

Как реализовать ETL-процесс

Процессы обработки (пайплайны) могут отличаться в зависимости от того, какие инструменты использует аналитик. В Airflow пайплайны описываются при помощи DAG (Directed Acyclic Graph). Сам же Airflow — оркестратор ETL. Он не выполняет тяжелую работу по перекладке данных. Airflow говорит другим системам и фреймворкам что делать и отслеживает ход выполнения процесса. 

Для настройки процесса ETL необходимо:

  • понять задачу;
  • получить доступ к data;
  • проверить data;
  • написать и отладить код.

Понять задачу 

В зависимости от специфики задачи нужно уточнить:

  • откуда приходят данные и в каком формате (БД, API, Excel, 1C);
  • как выглядит таблица-приемник, куда попадает итоговая информация (строки, колонки);
  • как часто нужно обновлять информацию (раз в час, раз в сутки, раз в неделю);
  • какую информацию обновлять (ту, которая в базе, или новую);
  • какие ошибки могут возникнуть (несовместимые форматы, текст, пропуск);
  • как система будет предупреждать об ошибках.

На основе этого принимают решение, как работать дальше.

Получить доступ к данным

В крупной компании могут быть не только разрозненные источники, но и разные уровни доступа. Поэтому обычно на этом этапе нужно:

  1. Согласовать доступы и объем информации. 
  2. Создать отдельную учетную запись для автоматического процесса ETL.
  3. Завести учетную запись аналитика или инженера для проверки и отладки. Как правило, у нее ограниченный доступ. Это нужно, чтобы сохранить персональные и конфиденциальные сведения тех пользователей, которые попадают в систему.
  4. Получить доступ к тестовому контуру. На этих данных можно настраивать и тестировать ETL-процесс.

Проверить данные

Этап называют «препроцессинг данных». На этой стадии проверяют, какие сведения можно отсеять: тестовые, ненужные, невалидные. При написании кода нужно предусмотреть предобработку, чтобы «лишние сведения» не мешали в будущем.

Написать код ETL-процесса

На этой стадии пишут код ETL-процесса, который потом и становится ETL-пайплайном (ETL pipeline). Шаги на примере DAG (Directed Acyclic Graph) для языка программирования Python:

  1. Импортировать в файл библиотеки для работы.
  2. Объявить DAG и указать параметры: дата и время старта, расписание запусков, расчет за предыдущие даты (dag_id, start_date, schedule_interval, catchup).
  3. Задать параметры, которые будут использоваться в ITL-процессе: переменные, классы функции.
  4. Определить Таски DAG — шаги задачи, отвечающие за определенную операцию в процессе (операторы, сенсоры или триггеры Airflow).
  5. Указать порядок, в котором будут запускаться Таски DAG (цепочка зависимостей).
Пример запуска DAG
Пример запуска DAG

После написания кода инженер должен убедиться, что все работает исправно.

Запустить автоматическое исполнение кода

Apache Airflow, PySpark и другие инструменты выполняют код автоматически (в соответствии с заданными настройками). Процессы выполнения задач можно отслеживать в логах или в интерфейсе.

Выполненные сценарии DAG
Выполненные сценарии DAG

В статье мы рассмотрели технологии и инструменты для анализа BigData на проектах. Используйте ETL, чтобы находить точки роста в бизнесе!