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-процесс состоит из трёх последовательных этапов:
- Extract (извлечение) — данные считываются из источников: реляционных баз данных, файловых систем, ERP- и CRM-систем, веб-сервисов, API, потоковых источников. Используются механизмы CDC (Change Data Capture) для отслеживания изменений.
- Transform (преобразование) — данные очищаются, нормализуются, обогащаются, приводятся к единому формату и схеме целевого хранилища. На этом этапе выполняются валидация, дедупликация, обогащение справочниками, агрегация, обработка пропусков.
- 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
- Статьи журнала «Открытые системы» (СУБД)
