Для того чтоб разобраться, что же это чудо система давайте прибегнем к «легкой» теории:
ETL - от англ. Extract, Transform, Load — дословно «извлечение, преобразование, загрузка»
Предлагаю разобрать каждое компонент системы отдельно, чтобы иметь понимание, о чем мы тут разговариваем:
- Extract иными словами извлечение данных из внешних источников. Что мы делаем:
Подключаемся к источнику где хранятся наши данные, если источник — это база данных, то нам необходимо изучит что такое язык-запросов SQL и как он работает и с его помощью мы можем составить запрос для получения необходимых таблиц. А вот если источником наших данных являются внешние источники (к примеру, CRM, файлы из почты, и в принципе сторонние приложения) то нам необходимо пользоваться API* для получения данных из приложения.
* API – если простыми словами это язык, на котором общаются два приложения (подобно диалогу 2-х человек), если чуть посложнее - это кодовые интерфейсы, которые позволяют двум приложениям взаимодействовать друг с другом.
После того как мам удалось извлечь данные они помещаются в так называемую «промежуточную область», вот именно здесь мы будем заниматься процессом преобразования данных.
- Transform – в переводе дословно преобразование, на этом этапе в зависимости от наших потребностей (потребностей бизнеса) данные которые мы поместили в предыдущем этапе в «промежуточную область» мы можем преобразовать следующими способами:
· Очистить данные путем удаления дубликатов, замены или удаления нулевых значений, поиска и исправление ошибок. Задача этого преобразования - улучшить качество данных и получить набор данных, готовый к использованию в целевой базе данных.
· Разделить либо объединить данные, чтобы облегчить с ними дальнейшую работу. Один из простых примеров, но часто встречающихся в работе – преобразовывать адрес и одного поля в три — улица, город, страна.
· Извлечение данных если нам нужно достать отдельную информацию из поля данных. Например, извлечь месяц заказа из поля формата «день-месяц‑год», чтобы в дальнейшем можно было сортировать таблицу, помесячно не опираясь на день.
На этом этапе извлечённые данные преобразуются для дальнейшей подготовки их к загрузке в конечный целевой контейнер.
Load - после наших преобразовательных мероприятий с данными их необходимо загрузить в хранилище чтобы специалисты по работе с данными могли ими с удовольствием пользоваться. Преобразованная информация из промежуточной области отправляется в целевую базу данных, озеро данных или хранилище данных. При этом выделяют два метода:
Полная загрузка — всё, что поступает из источников, отправляется в хранилище. При полной загрузке хранилище данных передается новая, ранее не существовавшая информация, но у этого есть нюансы: это может длиться долгое время и нуждаться в больших вычислительных ресурсах;
Добавочная загрузка - в этом случае происходит сравнение входных данные с уже имеющимися и создаёт новые записи только в том случае, если в источниках данных будет новая информация. Это считается более управляемым подходом
Для распределения загружаемых данных на потоке используются средства данных. Они фиксируют состояние данных в некоторые моменты времени и определяют, какие данные были изменены или дополнены.
ETL следует рассматривать не только как процесс переноса данных из одного места в другое, но и как инструмент подготовки данных к анализу.
Рассмотрим плюсы и минусы системы.
Плюсы:
1. Систематизация данных. Процессы системы позволяют структурировать данные и привести их в более удобный для анализа вид.
2. Снижение объема ручного труда – ручные процессы обработки, теперь можно автоматизировать, для снижения ошибок из-за «человеческого фактора».
3. Объединение данных - собираем данные из разных источников и объединяем их в одном хранилище.
Минусы:
1. ETL-процессы достаточно непросты по сути своей поэтому необходимы специалисты соответствующего уровня.
2. ETL-инструменты обычно не выбирают для маленьких проектов с ограниченными финансовыми возможностями, так как их внедрение имеет высокую стоимость.
И в ИТОГЕ, что мы получаем,
ETL – это процесс, который извлекает данные из сторонних баз данных или ПО, преобразует их и загружает в хранилище данных.
Инструменты ETL используют, когда нужно быстро перенести много разнородных данных. Такие решения автоматизируют процесс и экономят ресурсы, потому что вам не придётся создавать собственные конвейеры данных.
В следующих статьях разберемся что такое SQL и API, подпишись чтобы не пропустить.
Всем добра!