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

ELT аналогичен, но загружает данные в необработанном формате, оставляя преобразования для людей, чтобы они могли применить их для «самостоятельной аналитики». Оба метода являются типичными примерами развертывания конвейера данных.

Что такое ETL?

ETL (Extract, Transform, Load) — это аббревиатура автоматизированной методологии разработки конвейера данных, с помощью которой данные собираются и подготавливаются для последующего использования в аналитической среде, такой как хранилище данных.

Извлечение данных (Extract)

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

Трансформация (Transform)

На этапе преобразования к данным применяются правила и процессы для их подготовки к загрузке в целевую систему. Обычно это делается в промежуточной рабочей среде, называемой «площадкой подготовки» («staging area» ). Здесь данные очищаются для обеспечения надежности и согласования для обеспечения совместимости с целевой системой. Могут быть применены многие другие преобразования, в том числе:

  • Очистка: исправление любых ошибок или отсутствующих значений

  • Фильтрация: выбор только необходимого

  • Присоединение: объединение разрозненных источников данных

  • Нормализация: преобразование данных в общепринятые единицы

  • Структурирование данных: преобразование одного формата данных в другой, например JSON, XML или CSV, в таблицы базы данных.

  • Разработка функций: создание KPI для информационных панелей или машинного обучения.

  • Анонимизация и шифрование: обеспечение конфиденциальности и безопасности

  • Сортировка: упорядочивание данных для повышения эффективности поиска.

  • Агрегирование: суммирование подробных данных

Нагрузка (Load)

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

Сценарий использования:

  1. Процесс извлечения получает данные из одного или нескольких источников.

  2. Процесс преобразования преобразует данные в формат, подходящий для их назначения и предполагаемого использования.

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

Что такое ELT?

ELT (Extract, Load, Transform) — это аббревиатура для конкретной методологии проектирования автоматизированных конвейеров данных. 

Почему появился ELT? 

Решения для облачных вычислений развиваются с огромной скоростью из-за требований больших данных. Они могут легко обрабатывать огромные объемы асинхронных данных, которые могут быть распределены по всему миру. Ресурсы облачных вычислений практически не ограничены и могут масштабироваться. В отличие от традиционного локального оборудования, вы платите только за используемые вычислительные ресурсы.

С ELT у вас есть четкое разделение между перемещением данных и обработкой данных (раздел конвейер данных от обработки). Конечно, облачные вычисления в равной степени готовы справиться с самыми сложными случаями для любой из этих двух задач. Может быть много причин для преобразования ваших данных и столько же способов сделать это. 

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

Сценарий использования:

  1. Процесс извлечения получает данные из всех источников и считывает данные, часто асинхронным образом. 

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

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

Варианты использования процессов ELT обычно относятся к области высокопроизводительных вычислений и больших данных.

Кейсы включают в себя: 

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

  • расчет аналитики в режиме реального времени для потоковой передачи больших данных; 

  • объединение источников данных, сильно разбросанных по всему миру. 

Сравнение ETL и ELT

ETL 

ELT

Преобразование

В конвейере данных.

В области назначения.

Гибкость

Конвейеры проектируются в соответствии со спецификацией пользователя.

Конечные пользователи строят свои преобразования (гибкий подход). 

Поддержка больших данных

Используется для реляционных данных, локально — масштабируемость затруднена.

Решает проблемы масштабируемости, обрабатывая как структурированные, так и неструктурированные большие данные в облаке.

Затрачиваемое время

Рабочие процессы требуют времени для уточнения и разработки.

Поддерживает интерактивную аналитику самообслуживания в режиме реального времени.

Комментарии (3)


  1. Grigorenkovic
    26.04.2022 09:36

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


  1. zlexxx
    26.04.2022 16:54
    +1

    А нет ощущения, что статья про сравнение ETL и ELT опоздала так лет на 15?

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

    Ну или хоть что-то, что не тупо скопировано из 30 похожих статей.


  1. zlexxx
    26.04.2022 18:36

    https://habr.com/ru/post/662746/#:~:text=ELT аналогичен%2C но загружает данные в необработанном формате%2C оставляя преобразования для людей%2C чтобы они могли применить их для «самостоятельной аналитики». Оба метода являются типичными примерами развертывания конвейера данных.
    тут же в корне неверно написано
    тут написано про ODS - залили данные как есть, и будем дальше обрабатывать
    E, L и T делаются сразу, а не так, что сделали EL, а потом кто-то пришел и сделал T

    разница в TEL, ETL, ELT в том, где происходит непосредственно обработка данных: на сорсе, на промежуточном сервере, или на таргете