Блог

Что такое ETL и ELT

26 ноября 2024
7 мин. 167
image
image
Елена Андреева редактор-копирайтер
Что такое ETL и ELT

В эпоху больших данных информацию недостаточно просто хранить, нужно также её качественно обрабатывать. Сегодня поговорим о процессах ETL и ELT — связке между data-сервисами для выполнения сквозных сценариев аналитики. Эти термины относятся к сфере обработки данных и бизнес-аналитики; их используют, когда нужно собрать данные из разных источников, подготовить их для анализа и использовать для принятия решений в бизнесе. В статье разберёмся:

  • Как выглядят процессы ETL и ELT;

  • Как их применять;

  • В чём разница между ними.

А главное — поймём, как с помощью ETL и ELT решать проблему компактного хранения информации и удобно её систематизировать.

Что такое ETL-процессы, зачем и для кого они выполняются

ETL — процесс обработки данных, включающий три этапа: извлечение, преобразование и загрузка (extract, transform, load). ETL — процесс извлечения и сбора данных из различных источников, которые затем передаются во временную базу, где перерабатываются и затем загружаются в единую целевую систему хранения данных.

ELT — это сокращение от «extracting, loading, transformation», альтернатива традиционному методу хранения данных. Характерная особенность ELT в том, что это измененный ETL, процессы которого поменялись местами: после извлечение из базы данных информация загружается напрямую в центральный репозиторий для дальнейшего преобразования.

Основные задачи процессов

Начнём издалека: с принципов хранения данных. Данные компании хранятся в различных местах:

  • папки с файлами на рабочих ПК;
  • Google docs и таблицы;
  • облачные сервера;
  • базы данных;
  • CRM;
  • внутренние и внешние API.

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

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

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

Преимущества ETL-систем

ETL — это один из лучших инструментов для решения следующих бизнес-задач:

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

Технология ETL также решает задачи «с историческим контекстом»: объединить новую информацию со старой, обновить устаревшую, провести анализ сведений за период. Автоматизация таких процессов — всегда хорошая идея, поскольку она экономит время и предотвращает ошибки.

Структура ETL-процесса

Данные компании обычно хранятся в базах. Популярные примеры — сведения о посетителях интернет-магазина, записи разговоров с клиентами, документы. Базы данных класса OLTP (Online Transaction Processing) рассчитаны на моментальную запись и чтение одной строки — единицы данных.

Но с ростом пользователей и увеличения количества запросов требуется больше мощностей на обработку, и скорость обработки запросов замедляется.

Для ускорения был создан специальный класс аналитических систем OLAP (Online Analitical Processing). Такие базы раскладывают информацию по отдельным колонкам, каждая из которых имеет собственное свойство. Для мгновенного анализа обрабатывают одну колонку с нужным видом данных.

ETL расшифровывается как «извлечение, преобразование, загрузка». Хотя в названии всего три процесс, на самом деле выделяют шесть этапов извлечения данных и переноса из OLTP в OLAP:

  1. Подключение к источнику. Используются специальные приложения, например, Apache Airflow. Для автоматизированных процессов создается специальная «сервисная» учетная запись с ограниченными правами.
  2. Выгрузка информации. Для этого отправляют при помощи ETL sql-запрос, представляющий собой набор команд для обращения к табличной базе. Для получения данных из внешнего источника применяют API. Требуется достаточное количество памяти принимающей системы для обработки всего объема принимаемых данных.
  3. Первичная очистка: удаление дублей и тестовой информации. Этим занимается ETL-аналитик или дата-инженер — он прописывает правила в sql-запросах с учетом возможных ошибок.
  4. Маппинг. При сборе в таблицу информации из нескольких источников, каждому свойству задается новое название. При этом данные связываются между собой в единую структуру (map).
  5. Агрегация. Данные соединяются между собой в итоговой таблице. С теми из них, что были связаны по значению в процессе маппинга, производятся расчеты, результаты которых тоже заносятся в таблицу.
  6. Загрузка в приемник. Если это база, то данные загружаются в таблицу, если API или другая система, то загрузка происходит в соответствии с заданными правилами.

ETL обеспечивает процесс переноса данных в аналитическую базу: это «переходное звено» между системами OLTP и OLAP.

Как запустить ETL-процессы в компании

Чтобы наладить и запустить ETL-процессы в компании, специалистам понадобится сделать такие шаги:

  1. Определение задачи. Этим занимается ETL-разработчик. Ему требуются следующие сведения: где хранятся данные, как часто и какую информацию нужно обновлять, как должна выглядеть итоговая таблица, какие возникают проблемы. После этого инженер запрашивает доступ к данным.
  2. Предоставление доступа. Часто информация хранится в различных источниках — в базах, в 1С, таблицах Google. Для инженера создается персональная учетная запись с временным доступом, или обеспечивается подключение к тестовой структуре, на которой настраивается процесс.
  3. Проверка полученной информации. Инженер определяет, какие сведения нужны, какие придется отсеять, и если необходима предварительная обработка, то включает это в код. Этот этап называется еще «предпроцессинг данных».
  4. Написание кода, или ETL-пайплайна.
  5. Автоматизация кода. Чтобы не запускать ETL-процесс вручную, используются специальные инструменты — фреймворки, например, Apache Airflow, PySpark.

Код выполняется как в режиме реального времени, так и по расписанию, например, каждое утро в 10.00 обрабатывается информация, собранная за прошлые сутки.

Различия ETL и ELT

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

Структура процессов

Хранилища OLAP допускают хранение только реляционных дата-структур, поэтому данные преобразуются в sql — совместимый формат, и ETL позволяет удовлетворить эти требования. Однако эти преобразования производятся только один раз, и в случае, если нужно применить к уже преобразованным данным новый вид анализа,приходится менять всю структуру дата-конвейера. В этом смысле ETL недостаточно гибок, и тут на помощь приходит технология ELT.

Извлечение данных из источников бывает полным, частичным и инкрементным — последний термин означает извлечение только тех записей, которые были изменены. При использовании метода ETL планируют заранее, какие данные будут извлечены. ELT позволяет извлечь мгновенно все сведения, а уже потом решить, какие из них будут подвергаться анализу и изменениям.

Информация поступает напрямую в базу, хранилище или озеро данных. О том, как работают и чем отличаются эти хранилища данных, мы писали в отдельной статье. Там данные проходят валидацию, преобразовываются и структурируются. Хранение и преобразование производится без ограничений.

Сравнение по основным параметрам

  1. Зрелость технологий: ELT известна дольше и лучше отработана, для нее создано множество профессиональных инструментов, ETL-разработчиков легче найти. Эта технология более «взрослая» и надежная.
  2. Тип и размер данных: здесь ELT, как новейшая технология, намного превосходит предыдущую — дает потреблять большие массивы с разными типами данных.
  3. Поддержка хранилищ и озер: здесь обе технологии подходят для разных случаев. ETL — для legacy-систем, хранилищ OLAP, реляционных баз данных. Для поддержки озер и облачных хранилищ лучше подходит ELT.
  4. Стоимость. ELT-технология менее затратна, так как работает в облаке и не требует больших вложений в оборудование.
  5. Сервис. ELT не требует обслуживания, так же как и облачные решения ETL с автоматизированными процессами, но решения с физическими серверами на мощностях компании в нем нуждаются.
  6. Время загрузки и преобразований: ELT однозначно быстрее благодаря возможности облачных технологий загружать «сырые» данные без предварительной обработки. Также ELT быстрее преобразовывает данные вне зависимости от размера.
  7. Комплаенс. Здесь у ETL преимущество: редактирование, шифрование и удаление наиболее уязвимых данных перед загрузкой в хранилище способствует лучшей защите от взлома, в отличие от ELT-технологии.
  8. Инструменты, компетенции. Разработчика с опытом в ETL найти проще. Из-за новизны технологии пока что мало профессионалов с опытом в ELT. Традиционные инструменты ETL — Informatica, Oracle, Cognos, в ELT — Kafka, Hevo Data, Talend.

Как выбрать между ETL и ELT?

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

ELT лучше, если требуются решения в реальном времени, объемы информации чересчур большие, используются облачные хранилища, планируется работа с Big Data и масштабирование компании, а также если доступ к «сырым» данным необходим для проектов машинного обучения.

Технологии хранения и анализа данных быстро развиваются. Все больше компаний переходят на облачные сервисы и отказываются от стационарных хранилищ на серверах компании. Поэтому очевидно, что будущее — за ELT-системами. Однако и ETL-технологии еще долго будут востребованы, так как полный переход к облакам и open source-технологиям от привычных способов хранения данных произойдет нескоро.

Зачем внедрять ETL или ELT-системы: польза для бизнеса

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

  • совместимость,
  • наличие инструментов разработки,
  • продуманность функций системы.
  • возможность автоматизации.

Возможные проблемы при внедрении:

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

Преимущество в том, что в хранилище попадает 100% информации, при этом ничего не теряется. А к недостатком — то, что полученные данные «сырые» и нуждаются в обработке, а также стоимость хранения больших объемов необработанных данных.

Саммари

  1. ETL — это процесс переноса, объединения и обработки данных из множества источников в целевую базу, который выполняется в три этапа: извлечение, преобразование и загрузка (extract, transform, load).
  2. ELT — это новая технология, по сравнению с ETL, где последние два этапа меняются местами: по сути это процесс загрузки «сырых» данных и обработка уже загруженных данных в облаке.
  3. ETL- процессы гораздо чаще используются в бизнесе, пока что не всем известно, что такое ELT, однако эта технология становится популярной.
  4. ETL — это файл, в котором содержатся все собранные данные из нескольких систем хранения, которые затем обрабатываются и переносятся в целевую базу. Автоматизация этого процесса экономит время и защищает от ошибок.
  5. Технологии ETL и ELT имеют преимущества и недостатки и подходят для разных целей. Максимум пользы для компании дает их комплексное применение.

Расскажите
о вашем проекте