Открыть сервисСервис

ETL — технология извлечения, преобразования и загрузки данных

ETL (англ. Extract, Transform, Load — «извлечение, преобразование, загрузка») — это технология и класс программных процессов, используемых для переноса данных из нескольких источников в единое хранилище с предварительной обработкой. Термин возник в конце 1970-х годов в связи с развитием хранилищ данных (data warehouse) и стал одним из ключевых понятий в области управления данными (Data Management) и бизнес-аналитики.

История

Концепция ETL сформировалась в конце 1970-х — начале 1980-х годов, когда компании начали создавать корпоративные хранилища данных для аналитической обработки больших объёмов операционной информации. Термин «data warehouse» ввёл Билл Инмон в 1992 году, и именно с этим понятием тесно связана ETL-методология. Ранние ETL-системы выполнялись в виде скриптов и пакетных заданий на мейнфреймах. В 1990-е годы появились специализированные ETL-инструменты — PowerCenter от Informatica, DataStage от Ascential (впоследствии IBM), Oracle Warehouse Builder. В 2000-е годы с развитием open-source-экосистемы возникли Apache Sqoop, Apache NiFi, Talend Open Studio, Kettle (Pentaho Data Integration). К 2010-м годам на смену классической ETL-схеме пришла модель ELT, при которой преобразование выполняется уже внутри целевого хранилища, часто на основе облачных платформ.

Принцип работы

Классический ETL-процесс состоит из трёх последовательных этапов:

  1. Extract (извлечение) — данные считываются из источников: реляционных баз данных, файловых систем, ERP- и CRM-систем, веб-сервисов, API, потоковых источников. Используются механизмы CDC (Change Data Capture) для отслеживания изменений.
  2. Transform (преобразование) — данные очищаются, нормализуются, обогащаются, приводятся к единому формату и схеме целевого хранилища. На этом этапе выполняются валидация, дедупликация, обогащение справочниками, агрегация, обработка пропусков.
  3. Load (загрузка) — подготовленные данные записываются в целевое хранилище: витрину данных, озёрно хранилище (data lake), оперативное хранилище (ODS) или аналитическую базу. Загрузка может быть полной или инкрементальной.

Классификация ETL-решений

ТипОсобенности
Batch ETLОбработка данных пакетами по расписанию (ночные задания, ежедневные выгрузки)
Real-time / Streaming ETLНепрерывная обработка потоковых данных (Kafka, Flink, Spark Streaming)
ELTЗагрузка «как есть», преобразование выполняется средствами целевой платформы (Snowflake, BigQuery, ClickHouse)
Cloud ETLОблачные сервисы: AWS Glue, Azure Data Factory, Yandex DataProc, VK Cloud Data Pipeline

Основные инструменты

На рынке присутствуют как коммерческие, так и открытые решения. К числу коммерческих относятся IBM InfoSphere DataStage, Informatica PowerCenter, Oracle Data Integrator, SAP Data Services, Microsoft SQL Server Integration Services (SSIS). Среди open-source-инструментов распространены Apache NiFi, Apache Sqoop, Talend Open Studio, Pentaho Data Integration (Kettle), Airflow (оркестрация), а также российские разработки — в частности, платформа Data Virtuality и решения на базе отечественных СУБД (PostgreSQL, ClickHouse, 1С:Предприятие). В России ETL-системы активно применяются в банковской сфере, ритейле, телекоме и госсекторе, включая проекты импортозамещения зарубежных платформ.

Применение

ETL-процессы используются для построения корпоративных хранилищ данных, подготовки данных для бизнес-аналитики и BI-отчётности, миграции данных между системами, интеграции ИТ-ландшафта при объединении компаний, подготовки обучающих выборок для машинного обучения. В России ETL-технологии применяются в Центральном банке, крупных банках (Сбер, ВТБ, Альфа-Банк), телекоммуникационных компаниях (МТС, МегаФон), розничных сетях и государственных информационных системах.

Отличие ETL от ELT и ETLT

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

Источники

  • Инмон Б. «Построение хранилища данных»
  • Kimball R., Ross M. «The Data Warehouse Toolkit»
  • Материалы документации IBM InfoSphere DataStage, Informatica PowerCenter, Apache NiFi
  • Статьи журнала «Открытые системы» (СУБД)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru