ETL
ETL (англ. Extract, Transform, Load – Извлечь, преобразовать и загрузить) группа процессов, происходящих при переносе данных из нескольких систем в одно хранилище.
Если у вас есть данные из нескольких источников, которые вы хотите перенести в централизованную базу данных, вам необходимо:
- Извлекать данные из исходного источника, будь то другая база данных или приложение
- Преобразовывать информацию путем их очистки, очистки от дубликатов, объединения и других способов подготовки
- Загружать результат в целевую базу
Как правило, один инструмент ETL выполняет все три из этих шагов и является критически важной частью обеспечения полноты и пригодности данных, необходимых для отчетности, аналитики, а теперь и для Машинного обучения (ML). Природа процесса сильно изменилась за последнее десятилетие.
Краткая история
ETL уходит своими корнями в 1970-е годы к появлению централизованных хранилищ данных. Но только в конце 1980-х и начале 1990-х годов, когда они заняли центральное место, мир ощутил потребность в специализированных инструментах, помогающих загружать данные в эти новые хранилища. Первым пользователям нужен был способ «извлекать» информацию из разрозненных систем, «преобразовывать» ее в целевой формат и «загружать». Первые инструменты ETL были примитивными, но они выполняли свою работу. Конечно, объем данных, которые они обрабатывали, был скромным по сегодняшним меркам.
По мере роста объема данных росли и хранилища данных, а программные инструменты ETL множились и становились все более сложными. Но до конца 20-го века хранение и преобразование данных осуществлялось в основном в локальных хранилищах. Однако произошло нечто, навсегда изменившее наш взгляд на хранение и обработку.
Облачные вычисления
Объем данных, которые мы генерируем и собираем, продолжает расти с экспоненциальной скоростью. Более того, у нас есть все более сложные инструменты, которые позволяют нам использовать все наши данные для получения реального представления о нашем бизнесе и клиентах. Традиционная инфраструктура хранилища данных не может масштабироваться для хранения и обработки такого большого объема данных — по крайней мере, неэффективно с точки зрения затрат и своевременно. Если мы хотим выполнять высокоскоростную, сложную аналитику и анализ всех наших данных, облако — единственное место, где это можно сделать. Облачные хранилища данных, такие как Amazon Redshift, Snowflake и Google BigQuery, могут бесконечно масштабироваться для размещения практически любого объема данных. Облачное хранилище данных также поддерживает Массовую параллельную обработку (MPP), которая позволяет координировать огромные рабочие нагрузки между горизонтально масштабируемыми кластерами вычислительных ресурсов. Локальные инфраструктуры просто не обладают такой скоростью или масштабируемостью. Облако меняет то, как мы обрабатываем данные, а также то, как мы определяем и доставляем ETL.
Почему ETL важен?
Многие спрашивают, зачем нам ETL? Это все еще важно? Ответ – да. ETL имеет несколько бизнес-преимуществ, которые выходят за рамки простого извлечения, очистки, согласования и доставки данных из точки A (источник) в точку B (назначение):
- Контекст: ETL помогает предприятиям получить глубокий исторический контекст с данными
- Укрепление: он обеспечивает консолидированное представление данных для упрощения анализа и составления отчетов
- Производительность: это повышает производительность за счет повторяющихся процессов, не требующих сложного ручного кодирования
- Точность: это повышает точность данных и возможности аудита, которые необходимы большинству предприятий для соблюдения правил и стандартов.
Причина, по которой вам нужен ETL в облаке, такая же, как и в традиционном хранилище данных. Ваши данные по-прежнему должны быть доставлены в центральный репозиторий — теперь из большего количества источников, чем когда-либо, в структурированной и полуструктурированной форме. Эти огромные хранилища данных необходимо преобразовать в форматы, наиболее подходящие для анализа. ETL подготавливает данные для быстрого доступа и, таким образом, быстрого анализа. Данные должны быть собраны и подготовлены для использования в инструментах бизнес-аналитики, таких как программное обеспечение для визуализации данных, иначе в облаке они будут не более полезны, чем в необработанном формате в каком-либо центре обработки данных.
Как работает ETL?
Традиционно ETL извлекает данные из одной или нескольких баз данных оперативной обработки транзакций. Такие приложения содержат большой объем транзакционных данных, которые необходимо преобразовать и интегрировать с операционными данными, чтобы их можно было использовать в дальнейшем.
Эти данные обычно извлекаются в промежуточную область, хранилище, которое находится между источником данных и целью данных. В этой промежуточной области инструмент ETL преобразует данные, очищает, объединяет и иным образом оптимизирует их для анализа.
Затем инструмент загружает данные в базу данных системы поддержки принятия решений (DSS), где группы бизнес-аналитики могут выполнять запросы к ним и представлять результаты и отчеты бизнес-пользователям, чтобы помочь им принимать решения и определять стратегию.
Часто, несмотря на полезность инструментов ETL, процесс ETL все еще несколько запутан и сложен, поскольку сами данные запутаны и сложны. Традиционный ETL по-прежнему требует от специалистов по работе с данными значительных трудозатрат в виде ручного кодирования, повторной обработки и других задач ручного обслуживания.
Современный ETL (ELT)
Для современной аналитики данных и ELT облако навсегда изменило все. Несмотря на то, что в локальных хранилищах данных все еще есть некоторая бизнес-аналитика и ELT, только облако обладает сочетанием скорости, масштабируемости и практичности, необходимым для обработки огромных объемов структурированных и полуструктурированных данных буквально из десятков или сотен источников.
Мощные облачные хранилища данных, такие как Amazon Redshift, Snowflake и Google BigQuery, не нуждаются во внешних ресурсах (например, в промежуточном сервере ETL) для выполнения преобразований. Данные можно анализировать из предварительно рассчитанных сводок, что еще больше упрощает и ускоряет процесс ETL (или, на данном этапе, ELT, поскольку данные загружаются, а затем преобразуются в облачном хранилище данных).
Преобразования и моделирование данных выполняются с помощью SQL — языка, общего для профессионалов в области бизнес-аналитики, специалистов по данным и аналитиков.
Задачи ETL
ETL может быть невероятно сложным процессом, и у него есть некоторые неотъемлемые проблемы. Помните об этих проблемах и о том, как они могут повлиять на ваш бизнес, выбирая продукт ETL. Различные продукты используют разные подходы, но то, что вы выберете, зависит от ваших бизнес-требований и того, как вы используете данные.
- Задача №1 – масштабирование, одна из важнейших функций ETL. Количество данных, которые собирают компании, будет только расти. Теперь вы можете перемещать данные пакетами, но всегда ли это будет актуально для вашего бизнеса? Сколько заданий вы можете запустить? Вы должны иметь возможность масштабировать процессы и емкость ETL, если это возможно, до бесконечности.
- № 2 – точное преобразование данных, обеспечение точности и полноты преобразуемых данных. Ручное кодирование и изменения или отсутствие планирования и тестирования перед выполнением задания ETL иногда могут приводить к ошибкам, включая загрузку дубликатов, отсутствующие данные и другие проблемы. Инструмент ETL может уменьшить потребность в ручном кодировании и помочь сократить количество ошибок. Тестирование точности данных может помочь обнаружить несоответствия и дубликаты, а функции мониторинга могут помочь выявить случаи, когда вы имеете дело с несовместимыми типами данных и другими проблемами управления данными.
- № 3 – обработка разнообразных источников данных, которые растут в объеме. Одно предприятие может обрабатывать разнообразные данные из сотен или даже тысяч источников данных. Это могут быть структурированные и частично структурированные источники, источники в реальном времени, файлы CSV, бакеты Amazon S3, потоковые источники. Некоторые из этих данных лучше всего преобразовывать пакетами, в то время как для других лучше работает потоковое, непрерывное преобразование данных. Обработка каждого типа данных наиболее эффективным и практичным способом может оказаться огромной проблемой.
Как используется ETL?
Существует несколько различных способов наиболее частого использования ETL:
- Хранилище: предприятия традиционно использовали ETL для сбора данных из различных источников, преобразования их в согласованный, готовый к аналитике формат и загрузки их в хранилище данных, где группы бизнес-аналитики могут анализировать их для бизнес-целей.
- Облачная миграция: с появлением облачных вычислений предприятия переносят данные в облако в целом и, в частности, переносят данные в облачные хранилища данных, чтобы ускорить получение информации. Облачные инструменты ETL используют преимущества облака, в том числе скорость и масштабируемость, для загрузки данных непосредственно в облако и преобразования их в облачной инфраструктуре, что позволяет специалистам по данным экономить время и деньги.
- Машинное обучение: хотя машинное обучение и Искусственный интеллект (AI) еще не стали обычным явлением в бизнесе, многие предприятия начинают изучать, как интегрировать их в аналитику и науку о данных. Облако — единственное практическое решение для крупномасштабных операций машинного обучения и ИИ. Кроме того, оба метода требуют больших хранилищ данных для построения и обучения аналитических моделей, а также для автоматизированного анализа данных. Облачные инструменты ELT (в отличие от традиционных ETL) необходимы как для переноса больших объемов данных в облако, так и для их преобразования для обеспечения готовности к аналитике.
- Интеграция маркетинговых данных: сегодня клиенты взаимодействуют с компаниями по нескольким каналам, регистрируя множество взаимодействий и транзакций в день или даже в час. Маркетологам может быть сложно получить представление обо всех этих каналах, чтобы понять потребности и поведение клиентов. Программное обеспечение ETL может иметь решающее значение для сбора и интеграции данных о клиентах из электронной коммерции, социальных сетей, веб-сайтов, мобильных приложений и других платформ. Это также может помочь интегрировать другие контекстные данные, чтобы маркетологи могли применять гиперперсонализацию, улучшать взаимодействие с пользователем, предлагать стимулы и многое другое.
- Интернет вещей: в настоящее время одним из самых быстрорастущих источников данных для бизнеса являются подключенные устройства и системы, являющиеся частью Интернета вещей. Говорим ли мы о носимых устройствах или встроенных датчиках в местах, транспортных средствах или оборудовании, IoT производит астрономические объемы вычислений. И эксперты ожидают, что этот объем будет расти на 28,5% в год в среднем до 2025 года. Технология ELT, особенно облачная ETL, будет абсолютно необходима для интеграции и преобразования данных из источников IoT.
- Репликация (синхронизации) частей базы данных: часто это включает перемещение данных из локального хранилища данных в облачное хранилище данных, но по мере того, как все больше предприятий переходят в облако, это может означать переход от одной облачной инфраструктуры или поставщика облачных услуг к другому. Вот почему важно иметь инструмент ETL или ELT, который не только работает в облаке, но и гибок на нескольких облачных платформах.
- Бизнес-аналитика: одна вещь, которая никогда не изменится, заключается в том, что предприятия должны анализировать данные, чтобы предоставлять бизнес-аналитику, которая позволяет менеджерам и заинтересованным сторонам принимать обоснованные решения. Чтобы эти решения были действительно обоснованными, они должны основываться на всех данных организации, а не только на том количестве, которое может обрабатывать устаревшая архитектура данных. Облачное хранилище данных становится важным элементом для анализа данных и бизнес-аналитики, поэтому облачная технология ETL также имеет решающее значение для управления информацией и позволяет ускорить получение информации.
Автор оригинальной статьи: matillion.com