ETL vs ELT: Explaining the Difference in Plain English (англійською)

Ясне пояснення ETL і ELT для інженерів даних — словник, коли використовувати кожен підхід, компроміси і реальні фрази для технічних обговорень і інтерв'ю.

ETL і ELT є двома фундаментальними шаблонами для переміщення і перетворення даних в сучасній інженерії даних. Ця відмінність має значення — вона впливає на вибір інструменту, вартість, затримку і типи перетворень, які ви можете виконати. У цьому довіднику буде чітко пояснено різницю, наведено словник для обговорення компромісів і надано готові до використання фрази для технічних інтерв’ ю і розмов у команді.


ETL: витягування, перетворення, завантаження

Що це означає

** ETL ** — це абревіатура від ** Extract, Transform, Load ** — традиційний шаблон конвеєра даних, у якому:

  1. ** Витягнути ** — дані читаються з джерел (баз даних, API, файлів)
  2. ** Transform ** — дані очищаються, формуються і збагачуються * на окремому шарі обробки * — перед досягненням місця призначення
  3. ** Завантажити ** — перетворені дані завантажуються до призначення сховища даних або озера

Ключова характеристика: перетворення відбувається ** поза ** системою призначення, у спеціальному рушії обробки.

** Класичні інструменти ETL **: Informatica, IBM DataStage, SSIS, Talend, Apache Spark (використовується в режимі ETL), Apache NiFi

«Наш застарілий конвеєр є ETL — ми витягуємо з Oracle, перетворюємо з кластером Spark і завантажуємо чисті дані в Redshift. Шлях перетворення є окремим кластером, який ми підтримуємо»


Елементи: гравітація, гравітаційна індукція, гравітаційна трансформація

Що це означає

** ELT ** — це абревіатура від ** Extract, Load, Transform ** — сучасний шаблон хмарного сховища даних, у якому:

  1. ** Витягнути ** — дані читаються з систем- джерел
  2. ** Завантажити ** — необроблені дані завантажуються безпосередньо у призначення сховища даних
  3. ** Transform ** — дані перетворюються всередині сховища даних за допомогою SQL

Ключова характеристика: трансформація відбувається всередині системи призначення, використовуючи обчислювальну потужність складу.

** Сучасні інструменти ELT **: dbt (інструмент збирання даних), Fivetran + Snowflake, Airbyte + BigQuery, Stitch + Redshift

«Ми перейшли до шаблону ELT — Fivetran завантажує необроблені дані в BigQuery, а dbt виконує всі перетворення як SQL-моделі всередині сховища. Немає окремого кластера обробки»


Основні відмінності

AspectETLELT
Where transformation happensSeparate processing layerInside the destination system
Raw data in warehouse?No (only transformed)Yes (raw + transformed)
Transformation languageVarious (Spark, Python, SQL)Primarily SQL
InfrastructureSeparate ETL server/clusterJust the data warehouse
Best forComplex transformations, legacy systemsCloud data warehouses, SQL-first teams
Re-processingRe-run extract + transformRe-run SQL models only (data already in warehouse)

Використовується для ETL

Складні або спеціалізовані перетворення

Якщо ваші перетворення вимагають:

  • Машинне навчання інженерних функцій
  • Складні операції з даними, які не можна виразити у SQL
  • Обробка бінарних/пропілерних форматів (наприклад, застарілих форматів EDI або мейнфреймів)

** ETL ** зазвичай більш підходить, тому що шар обробки може запускати Python, Spark або інші інструменти, крім SQL.

Данные должны быть очищены перед посадкой

Якщо джерело даних містить конфіденційну інформацію (PII, PHI), яка повинна бути замаскована або видалена * перед * входом в склад, ETL дозволяє передприземлення трансформації.

«Ми використовуємо ETL для даних, регульованих HIPAA — PII анонімізується в шарі трансформації, перш ніж вона торкнеться нашого хмарного складу»

Інтеграція з попередніми системами

ETL-інструменти з попередньо вбудованими коннекторами до застарілих систем (мейнфрейми, локальні ERP) часто забезпечують ETL-перші архітектури.


Коли використовувати ELT

Хмарне сховище даних є центром стека

Якщо ваш стек складається з Snowflake, BigQuery або Redshift, ці системи призначені для обробки великих завантажень з перетворення. ЕЛЬТ - это естественный выбор.

Перша команда SQL

ELT з dbt означає, що перетворення написані на SQL, версії контролюються у Git, і можуть бути перевірені — доступні як для аналітиків, так і для інженерів даних.

Ви хочете зберегти необроблені дані

У ELT необроблені (неперетворені) дані завжди знаходяться у сховищі як історичний запис. Повторне перетворення його з нуля можливе в будь-який час.

«Бизнес змінив правило визнання доходів — з ELT, ми просто оновили модель dbt і перезапустили її. З нашою старою системою ETL, нам довелося б повторно витягувати дані за два роки»

Розробка ітеративної трансформації

У ELT, аналітики можуть ітерувати на перетвореннях у редакторі SQL складу без очікування повторного запуску завдань ETL.


Ключовий словник

Система джерел

** Система джерела ** — це місце, де дані походять — виробнича база даних PostgreSQL, API програми SaaS (Salesforce, Stripe), поток журналу.

Складальний пристрій / Data Warehouse

** Склад даних ** (Snowflake, BigQuery, Redshift) є центральною аналітичною системою — де зберігаються і запитуються перетворені дані.

Річка — річка Брянська

** Необроблений (бронзовий) шар ** є місцем, куди спочатку надходять дані джерела, незмінні — історичний запис того, що надходить з систем джерела.

Шляховий шар / Срібний шар

** Стадіонний (срібний) шар ** містить очищені, дедупліковані і легко перетворені дані — які можна використовувати у моделях.

Марія Лейтер (нім

**mart (золотий) шар ** містить агрегації, спрямовані на бізнес, і розмірні моделі - те, що аналітики і інструменти BI запитують.

Idempotency

Ідемпотентний конвеєр дає той же результат, коли запускається кілька разів на тому ж вхідному даному — критичний для надійної інженерії даних. “Всі наші перетворення є ідемпотентними — повторне їх запуск не створює дублікатних записів.”

Інформаційно-аналітичний відділ / Упоряд

** Свежість даних ** — це рівень актуальності даних у сховищі у порівнянні з даними джерела. Розклад оновлення на 4 години означає, що дані завжди застаріють на 4 години.

«Бизнес требует T+1 свежести — вчерашние данные продаж должны быть доступны к 6 утра»

dbt (засіб побудови даних)

** dbt ** є домінуючим механізмом перетворення ELT — він запускає моделі SQL всередині сховища даних з контролем версій, тестуванням і відстеженням послідовності.


Розробка та проведення конференцій та семінарів

** При рекомендації ЕЛТ:**

«Ураховуючи, що команда SQL-перший і ми на BigQuery, я б рекомендував ELT підхід з dbt. Ми зберігаємо необроблені дані в сховищі, перетворення в версійно-контрольованому SQL, і аналітики можуть ітерувати без очікування на ETL завдання.”

** При рекомендації ETL: **

“Ядро даних містить інформацію про здоров’я, яка повинна бути анонімною, перш ніж вона дістанеться складу. Нам потрібен підхід ETL — трансформація відбувається до завантаження, тому чутливі дані ніколи не потрапляють в наше хмарне середовище»

** При обсуждении компромисса: **

«ETL є більш гнучким для складної попередньої обробки, але ELT виграв сучасний хмарний ландшафт сховища даних, тому що повторне запуск SQL моделей на порядки дешевше, ніж повторне запуск Spark завдань над вилученням сирих даних.»


Practice

Перевірте ваші знання щодо конвеєра даних за допомогою ** Набір вправ з інженерії даних. Name ** і досліджуйте всі ресурси для інженерів з обробки даних за допомогою ** Інженер з обробки даних **.

На практиці: Навігація дискусій навколо даних трубопроводів

Зрозуміти різницю між ETL і ELT не просто про знання акронімів; це про те, щоб бути в змозі сформулювати * чому * один може бути краще за інший в розмові. Розглянемо типовий сценарій: ви переглядаєте запит на витягування, надісланий колегою Сарою, яка створює новий конвеєр даних для звітування про ефективність маркетингової кампанії. Опис PR говорить: «Впроваджено процес ELT для видобування даних клієнтів з Google Analytics і Salesforce, перетворюючи їх на щоденні агрегати і завантажуючи їх в Snowflake»

Ви помітили, що слово “трансформування” використовується так легковажно. Як старший розробник, ви хочете переконатися, що підхід Сари відповідає найкращим практикам і розумієте обґрунтування її вибору. Ви можете відповісти в Slack: « Привіт, Сара, ця установка ELT виглядає багатообіцяюче! Тільки для пояснення, ви робите всі очищення даних і агрегації * перед * завантаженням у Snowflake? Це чудово для використання обчислювальної потужності Snowflake - але чи можемо ми коротко обговорити конкретні трансформації, які ви виконуєте, і чи вони відповідають встановленим правилам трансформації нашої команди? “Це не про критику; це про сприяння продуктивній дискусії, зосередженій на ефективності, якості даних і довгостроковій підтримці.

Інша ситуація може виникнути під час інтерв’ю на нову роль інженера даних. Менеджер, який приймає на роботу, запитує: « Чи можете ви описати компроміси між ETL і ELT? » Ви можете відповісти: « ETL традиційно включає вилучення необроблених даних з джерельних систем, виконання обширних перетворень у межах зони перевірки — часто за допомогою інструментів, таких як Informatica або SQL- скрипти — перед завантаженням до цільової бази даних. Цей підхід забезпечує тісний контроль над якістю даних на кожному етапі, але може бути повільнішим і ресурсоємнішим. ELT, навпаки, завантажує * необроблені * дані безпосередньо у цільовий склад даних (наприклад, Snowflake), а потім перетворення виконуються у цьому складі за допомогою SQL. Це часто швидше, тому що використовує обчислювальні можливості цільової системи, особливо корисно з великими наборами даних. Однак, це сильно залежить від продуктивності цільової системи і вимагає надійних стратегій трансформації, щоб уникнути перевантаження системи»

Ключова відмінність полягає в тому, де відбувається важкий підйом. ETL централізує обробку, в той час як ELT розподіляє її. Вибір одного з цих варіантів залежить від таких факторів, як об’ єм даних, складність перетворення і існуюча інфраструктура. Також важливо розглянути набір навичок команди - чи вони в основному експерти SQL або вони мають глибокі знання спеціалізованих інструментів ETL?

Ось простий приклад використання команди COPY INTO програми Snowflake для ілюстрації завантаження даних (припустимо, що ви вже виконали перетворення):

COPY INTO marketing_campaigns
FROM @my_stage/raw_google_analytics.csv
FILE_FORMAT = CSV FIELD DELIMITER ',' SKIP_HEADER = 1;

Це демонструє основний сценарій ELT - безпосереднє завантаження даних в Snowflake з зовнішнього етапу, припускаючи, що перетворення вже були застосовані в іншому місці (можливо, в Python або іншому інструменті ETL).

Поширені запитання

Про що ця стаття "ETL vs ELT: Explaining the Difference in Plain English (англійською)"?

Ясне пояснення ETL і ELT для інженерів даних — словник, коли використовувати кожен підхід, компроміси і реальні фрази для технічних обговорень і інтерв'ю.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "ETL vs ELT: Explaining the Difference in Plain English (англійською)"?

Приблизно 8 min.