ETL

ETL — это общий термин для процессов, которые происходят, когда данные переносят из нескольких систем в одно хранилище. Аббревиатура расшифровывается как Extract, Transform, Load, или «извлечение, преобразование, загрузка». Именно это происходит с файлами в процессе переноса.

Обычно ETL-процессы используются, когда нужно перенести много разнородных данных: собрать их, привести к единому виду, загрузить в новую систему и сохранить всю информацию по пути. Системы бывают разными, и задача ETL — в том числе адаптировать под них данные из разных источников.

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

Существует множество платных и бесплатных реализаций ETL. Они называются ETL-системами. Простейшую реализацию программист может написать самостоятельно, но только для конкретной небольшой задачи. Большие системы работают с разными данными «из коробки».

Кто работает с ETL-системами

  • Разработчики, так как для некоторых проектов и задач могут потребоваться собственные внутренние реализации ETL. Обычно это нужно в компаниях, которым важно не зависеть от сторонних клиентов, например в банках. ETL-разработчик — это человек, который занимается проектированием и реализацией ETL-процессов.
  • Бизнес- и дата-аналитики, которые работают с бизнес-логикой и данными, поэтому часто используют разнородную информацию.
  • Дата-инженеры, специалисты, которые занимаются проектированием, поддержкой и оркестрацией систем хранения данных. Оркестрацией называют координирование работы сложных систем.

Где используется ETL

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

Базы данных. Любые хранилища данных так или иначе сталкиваются с миграциями, перемещениями из одного места в другое. Иногда это разовый перенос, но часто компании работают так, что данные поступают в базу из разных источников все время. Пример с магазином хорошо иллюстрирует такое поведение. При работе с базами данных ETL будет отвечать за то, чтобы все было однородно и грамотно.

DWH, или КХД. Аббревиатуру можно расшифровать как Data Warehouse или «корпоративное хранилище данных», склад информации. Так называются специальные базы данных для организационных целей, внутреннего анализа и подготовки отчетов. Это административные и архивные базы данных компании. В них хранится важная бизнес-информация. Чтобы бизнес-процессы и внутренняя аналитика работали корректно, нужно объединить информацию в одном месте. В случае с КХД она всегда поступает из разных источников. Поэтому ETL часто используют в связке со «складами данных» и настройкой бизнес-процессов.

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

  • OLTP — это Online Transaction Processing, обработка онлайн-транзакций. Системы ориентированы на непрерывный поток небольших транзакций, многие из которых повторяются;
  • OLAP — это Online Analytical Processing, аналитическая онлайн-обработка данных. В отличие от предыдущего вида систем, OLAP нужна для обработки крупных аналитических запросов со множеством параметров.

OLAP хорошо работает там, где не справляется OLTP, и наоборот, поэтому данные иногда требуется «перебрасывать» из одной системы в другую. Для этого применяется ETL.

Big Data. Работа с большими данными подразумевает их перемещения по разным системам. ETL-системы иногда описывают как решения для помощи Big Data-разработчикам, хотя на самом деле их функциональность нужна не только для этого.

IoT. Internet of Things — это термин для сети, которая дает возможность «умным» устройствам общаться друг с другом. Благодаря IoT техника может связываться друг с другом по локальной сети и в результате решать более сложные задачи, чем при работе по отдельности. Технологию часто используют при обустройстве «умных домов» и похожих автоматизированных систем.

Информация с разных устройств различается и форматом, и особенностями. Чтобы хранить ее в единой базе, нужно применять ETL. Пример — дашборд в «умном доме», который выводит информацию со всех датчиков и сведения о состоянии всех IoT-приборов.

Машинное обучение. Специалисты по искусственному интеллекту и машинному обучению оперируют огромными массивами данных — датасетами. Данные нужно обрабатывать, загружать в машины, использовать для обучения или анализа. ETL используется для миграции данных в единое хранилище, например при создании датасета.

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

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

Устройство ETL-процесса

ETL — это аббревиатура из трех слов, каждое из которых означает какой-либо процесс. Мы говорили о расшифровке выше, а сейчас подробнее расскажем, что именно скрывается за этими словами.

Устройство ETL-процесса

Extract, или извлечение. Система берет данные из одного или нескольких источников и перемещает в промежуточный буфер для дальнейшей обработки. Также может проводиться валидация, проверка данных на соответствие тем или иным критериям. Система проверяет, можно ли загрузить их без потерь в новое хранилище.

Transform, или преобразование. Процесс, в ходе которого система видоизменяет данные под требования нового хранилища. Она меняет формат представления информации, при необходимости — кодировку, очищает данные от лишнего, приводит все к единому виду.

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

Что делают ETL-системы

На практике реализация принципа работы состоит более чем из трех шагов. При попадании в реальную ETL-систему данные проходят пять основных этапов.

Загрузка. Этап соответствует процессу Extract в аббревиатуре ETL, но сейчас мы смотрим на происходящее «изнутри» системы, и с этой точки зрения происходит загрузка, а не извлечение. Данные, которые загружаются в ETL-систему, называются сырыми — они пока не обработаны и даже не проверены, их качество может быть любым. Единственная проверка на этом этапе — сверка количества строк. Если их меньше, чем было в источнике, при загрузке произошел сбой.

Валидация. В ходе процесса Extract система должна проверить данные. Этот процесс называется валидация: загруженная информация по очереди проверяется и фильтруется. Система анализирует полноту данных, их корректность, наличие или отсутствие ошибок — «битой» информации. После завершения валидации выдается отчет об ошибках. Если есть сбои, их нужно исправить.

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

Мэппинг. Составная часть процесса Transform — преобразования данных под новый формат. После валидации данные чаще всего выглядят как таблица, к которой добавляются нужные столбцы и строки. Мэппинг может происходить по разным алгоритмам в зависимости от ETL-инструмента и его настроек: в системе есть специальные скрипты и формулы.

Агрегация. Это тоже часть трансформации — в системах различаются особенности детализации и представления данных. Чтобы информацию можно было перенести в другую без ошибок, она трансформируется. Это не добавление новых строк и столбцов, как при мэппинге, а изменение связей между самими данными. В результате агрегации информация «склеивается» в новую таблицу — в ней все представлено так, как требует новое хранилище.

Схема преобразования может быть более или менее масштабной в зависимости от поставленной задачи.

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

Примеры ETL-систем

Существуют системы, предназначенные для интеграции данных, их перемещения, объединения и трансформации. В них может входить реализация не только ETL, но и других процессов, связанных с передачей информации. Это, например, программные продукты IBM DataStage, Informatica PowerCenter, Oracle Data Integrator или SAP Data Services. Сюда же можно отнести Sybase ETL Development и Sybase ETL Server, а также многое другое ПО для работы с бизнес-базами. Все это платные решения от ведущих разработчиков.

Кроме специализированных сервисов, ETL-инструменты есть в более общем и более мощном ПО. Это, например, полномасштабная платформа для работы с данными IBM InfoSphere Information Server, СУБД Microsoft SQL Server или российский Cloud Big Data от VK — облачный сервис для больших данных.

Существуют бесплатные решения для работы с ETL: например, проприетарный инструмент Oracle Warehouse Builder или открытые Scriptella ETL Project, Jaspersoft ETL, Apatar и другие.

Как начать пользоваться ETL

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

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

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

Другие термины на букву «E»

Excel

Все термины

Освойте новую профессию

(рейтинг: 5, голосов: 2)
Добавить комментарий