ETL vs ELT
Друзья, после небольшого перерывчика начинаем новую серию постов, в которых мы будем рассматривать всякие теоретические аспекты, которые помогут вам как просто лучше разобраться, так и круто отвечать на собесах 😎
Сегодня у нас на разборе самая база в Больших данных, шесть крутых букв — ETL и ELT. Куда бы вы не попали, везде работа с данными и хранилища будут устроены в одной из этих парадигм. Ну давайте же разбираться!
ETL
Происходит от трех слов(Extract, Transform, Load) – это классический подход к обработке данных, когда данные извлекаются из источников (из различных БД, CRM систем и прочих 1С-ов), затем обрабатываются на промежуточном уровне (Informatica, Debezium, SAP DS) и только после этого загружаются в основное хранилище данных, например, Greenplum, Clickhouse или Postgres.
Такой подход удобен для сценариев, где важны контроль качества данных, строгие схемы и подготовленные агрегированные данные.
Звучит круто, но очевидно, у данного метода есть недостатки, и они довольно очевидны: возникает узкое место в трансформации данных, т.к. приходится сразу чистить от дубликатов, приводить к одной схеме и т.д. И кроме этого эта промежуточная зона должна успевать обрабатывать огромное количество данных!
Поэтому возник другой подход к выстраиванию процессов.
ELT
Как можно понять — это перестановка предыдущих слов: Extract, Load, Transform.
ELT более гибкий метод, при котором сырые данные сначала загружаются в хранилище, а потом уже обрабатываются внутри него и загружаются в целевое хранилище. Такой подход характерен для облачных решений и аналитических платформ, например, в Yandex Cloud/Snowflake/Amazon S3, а также наш любимый Hadoop, где данные можно загружать без предварительной очистки, преобразовывать их внутри, а после этого загружать в тот же Greenplum, Clickhouse(но бывает и без загрузки, мы позже поговорим про подход Data Lakehouse). Плюсы тут понятны: данные у нас всегда доступны, особенно при отслеживании истории(этому помогает SCD, или же Slow Changing Dimensions, тоже очень интересная тема, которую мы рассмотрим в дальнейшем), их можно переиспользовать в будущем без дополнительной нагрузки на источники.
На собеседованиях часто спрашивают, какой подход чаще используется и тут можно смело отвечать, что это ELT: в большинстве компаний используются классическую схему с загрузкой данных в Data Lake, а после этого загрузкой в Data Warehouse.
Также могут спросить минусы у ELT подхода и их два основных: нужно держать целых два хранилища, одно из которых может начать бесконтрольно расти и хранить в себе кучу бесполезных данных, если должным образом не подходить к их хранению.
Из инструментов для ELT чаще всего используют связку Airflow + Spark, Flink и похожие фреймворки для оркестрации и загрузки
Пишите ваши вопросы в комменты, а если хотите продолжения постов про архитектуру построения хранилищ, ставьте реакции и записывайтесь на наши курсы по дата инженерии
Есть еще куча тем, которые мы рассмотрим 😎
@bigdata_postupashki
Post #17
4.46K
- 🔥 9
- ❤ 4
- 👍 1