image

ETL и ELT — самые широко используемые способы доставки данных из одного или нескольких источников в централизованную систему для удобства доступа и анализа. Обе этих методики состоят из этапов extract (извлечения), transform (преобразования) и load (загрузки). Разница заключается в последовательности действий. Хотя можно подумать, что небольшое изменение в порядке этапов никак не влияет, на самом деле для потока интеграции это меняет всё.

В этом посте мы подробно рассмотрим процессы ETL и ELT, а также сравним их по важным критериям, чтобы вы могли понять, какой лучше подходит для вашего конвейера данных.

Краткое описание ETL и ELT


Как говорилось выше, ETL и ELT — это два способа интеграции данных в одно хранилище. Основное различие между ними заключается в том, ГДЕ и КОГДА выполняются преобразование и загрузка данных. При ETL данные преобразуются на временном этапе подготовки до того, как попадут в целевой репозиторий (например, в корпоративное хранилище данных), в то время как ELT позволяет преобразовывать данные после их загрузки в целевую систему (облачные хранилища данных или озёра данных). Почему это так важно? Давайте разбираться.

Что такое ETL?


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

Инструменты ETL используются для интеграции данных, чтобы удовлетворить требованиям систем управления реляционными базами данных и/или традиционных хранилищ данных с поддержкой OLAP (online analytical processing, аналитической онлайн-обработки). Инструменты OLAP и запросы (SQL) требуют, чтобы массивы данных структурировались и стандартизировались при помощи серии преобразований, выполняемых до того, как данные попадут в хранилище.


Рабочий процесс ETL.

Эта методика возникла в 1970-х, когда компании начали использовать множественные репозитории данных для работы с разными типами бизнес-информации. С ростом объёмов разрозненных баз данных росла и потребность консолидации всех этих данных в централизованную систему. ETL возник как решение этой проблемы и стал стандартным методом интеграции данных. С конца 1980-х, когда появились хранилища данных, и до середины 2000-х ETL был основным способом создания баз данных, используемых как основа для бизнес-аналитики (business intelligence, BI).

С дальнейшим ростом объёмов и типов данных ETL становился не только довольно неэффективным, но более дорогостоящим и времязатратным. И тут на помощь пришёл ELT.

Что такое ELT?


Благодаря взрывному росту количества источников данных и всё усиливающейся потребности обработки огромных массивов данных для целей бизнес-аналитики и аналитики big data стала возрастать популярность ELT — альтернативы традиционному методу интеграции данных.

ELT — это сокращение от extraction, loading и transformation. По сути, ELT меняет местами два последних этапа процесса ETL, то есть после извлечения из баз данных данные загружаются напрямую в центральный репозиторий, где происходят все преобразования. Промежуточная база данных отсутствует.


Рабочий процесс ELT.

Такая методика стала возможной благодаря современным технологиям, позволяющим хранить и обрабатывать огромные объёмы данных в любом формате. В том числе и благодаря Apache Hadoop — опенсорсному ПО, которое изначально создавалось для непрерывного получения данных из различных источников вне зависимости от их типа. Облачные хранилища данных наподобие Snowflake, Redshift и BigQuery также поддерживают ELT, поскольку они разделяют ресурсы хранения и вычислений, а также обладают высокой масштабируемостью.

Ключевые этапы процессов ETL и ELT


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

Извлечение (Extract)


Первый этап в обоих процессах

Путешествие данных всегда начинается с их извлечения и копирования из пула источников — систем ERP и CRM, баз данных SQL и NoSQL, приложений SaaS, веб-страниц, неструктурированных файлов, электронных писем, мобильных приложений и так далее. Из-за сложностей каждой из систем-источников первая фаза может быть довольно замысловатой.

Данные обычно извлекаются одним из трёх способов.

  • Полное извлечение применяется к системам, которые не могут отличать новые или изменённые записи. В таких случаях единственным способом получения данных из системы является извлечение всех записей, как старых, так и новых.
  • Частичное извлечение с уведомлениями об обновлениях — самый удобный способ извлечения данных из систем-источников. Он возможен, если в системах есть уведомления об изменениях записей, благодаря чему отсутствует необходимость загрузки всех данных.
  • Инкрементное извлечение или частичное извлечение без уведомлений об обновлениях — это способ извлечения только тех записей, которые были изменены.

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

Преобразование (Transform)


Второй этап в ETL / третий этап в ELT

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

Преобразования могут включать в себя следующие действия:

  • Сортировку и фильтрацию данных для избавления от нерелевантных элементов
  • Устранение дубликатов и очистку
  • Транслирование и преобразование
  • Удаление или шифрование для защиты уязвимой информации
  • Соединение или разделение таблиц и так далее

В ETL все эти операции происходят вне целевой системы, на этапе подготовки. За реализацию этих процессов отвечают дата-инженеры. Например, хранилища данных Online Analytical Processing (OLAP) допускают хранение только реляционных структур данных, поэтому данные предварительно должны преобразовываться в SQL-читаемый формат. Все преобразования могут происходить только один раз, из-за чего ETL оказывается довольно негибким. В случае, если необходимо применить к уже преобразованным данным новый тип анализа, то может потребоваться модификация всего конвейера данных с нуля.

Метод ELT гибок и удобен для преобразований, поскольку данные передаются напрямую в хранилище данных, озеро данных или data lakehouse, где они могут валидироваться, структурироваться и преобразовываться различным образом и в любой момент. Более того, «сырые» данные могут подвергаться бесчисленным преобразованиям, поскольку они хранятся неограниченно. Так как всё происходит внутри целевой системы, аналитики данных могут помогать дата-инженерам в выполнении преобразований, используя для этой цели SQL.

Загрузка (Load)


Второй этап в ELT/третий этап в ETL

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

ELT, в свою очередь, направляет массив «сырых» данных непосредственно в целевое место хранения, минуя промежуточный уровень. Это сильно экономит время цикла «извлечение-доставка». Как и в случае с извлечением, данные могут загружаться или полностью, или частично.

ELT и ETL: подробное сравнение


Чтобы помочь вам понять преимущества и ограничения обоих подходов к интеграции данных, мы выделили самые важные критерии, по которым будем сравнивать ETL и ELT.


Сравнение ETL и ELT по существенным критериям.

Зрелость технологий


ELT — относительно новая методология, поэтому для неё существует меньше наработок и профессиональных компетенций. Такие инструменты и системы всё ещё находятся на ранней стадии развития. Знающих процесс ELT специалистов сложнее найти.

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

Ключевой вывод: ETL надёжнее и взрослее.

Тип и размер данных


Наряду со структурированными данными, ELT позволяет обрабатывать большие объёмы нереляционных и неструктурированных данных, которые требуются для аналитики big data и бизнес-аналитики.

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

Ключевой вывод: гибкий и масштабируемый ELT превосходит своего предка с точки зрения возможностей потребления больших массивов различных типов данных.

Поддержка хранилищ/озёр данных


ETL применяется при работе с хранилищами данных OLAP, легаси-системами и реляционными базами данных. Он не имеет поддержки озёр данных.

ELT — современный метод, который можно использовать с облачными хранилищами и озёрами данных.

Ключевой вывод: различные методы подходят в разных случаях использования.

Затраты


ELT не только экономически эффективнее по сравнению с высокопроизводительными решениями на мощностях компании, но и обеспечивает более низкие первоначальные расходы. Многие поставщики облачных услуг предлагают гибкие тарифные планы.

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

Ключевой вывод: ELT относительно менее затратен по сравнению с ETL на мощностях компании.

Обслуживание


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

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

Ключевой вывод: с точки зрения обслуживания ELT превосходит ETL на мощностях компании.

Время загрузки


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

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

Ключевой вывод: ELT обеспечивает более быструю загрузку.

Время преобразования


При ETL преобразования выполняются на отдельном сервере и происходят существенно медленнее, особенно при больших объёмах данных.

При ELT за преобразования отвечает целевая система. Благодаря разделению хранения и вычислений данные можно хранить в их исходном формате и преобразовывать по необходимости. Размер данных не влияет на скорость.

Ключевой вывод: при ELT преобразования занимают меньше времени.

Комплаенс


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

ETL позволяет редактировать, шифровать и удалять уязвимые данные перед их передачей в хранилище данных. Следовательно, компаниям проще защищать данные и соблюдать различные стандарты комплаенса, в том числе HIPAA, CCPA и GDPR.

Ключевой вывод: старый добрый ETL имеет преимущество с точки зрения комплаенса.

Инструменты и компетенции


Реализация обоих процессов требует глубоких знаний существующих инструментов и высоких навыков.

Из-за незрелости ELT специалистов с компетенциями в этой методологии найти сложно. Kafka, Hevo Data, Talend и некоторые другие программы предоставляют исчерпывающие возможности ELT и ETL.

Для выполнения таких процессов, как передача, экспорт, преобразования и миграция данных, требуются опытные специалисты по ETL. К счастью, в этой сфере найти компетентного специалиста проще. Одними из примеров традиционных инструментов ETL являются Informatica, Cognos и Oracle.

Ключевой вывод: инструменты и компетенции ETL на рынке представлены шире.

Подведём итог: оба процесса имеют свои преимущества и ограничения. Чтобы выбрать победителя в этой схватке (если он вообще есть), давайте рассмотрим возможные способы применения ETL и ELT.

Области применения ETL и ELT


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

Лучше использовать ETL, если...

  • Вам нужно обеспечить соответствие установленным стандартам защиты уязвимых данных клиентов. Например, организации в сфере здравоохранения должны обеспечивать соответствие требованиям HIPAA Security Rule. Поэтому они могут выбрать ETL, чтобы маскировать, шифровать или удалять уязвимые данные перед загрузкой в облако.
  • Вы работаете только со структурированными данными и/или с небольшими частями данных.
  • В вашей компании работает легаси-система или реляционные базы данных на собственных мощностях. Примерами использования ETL в реальной жизни может быть извлечение данных электронных медицинских карт (EHR) при модернизации легаси-системы EHR: данные пациентов сначала должны быть селективно извлечены из легаси-системы, а затем преобразованы в нужный формат для новой системы.

Лучше использовать ELT, если...

  • Самым важным фактором вашей стратегии является принятие решений в реальном времени. Скорость интеграции данных — ключевое преимущество ELT, поскольку целевая система способна выполнять преобразование и загрузку данных параллельно. Это, в свою очередь, позволяет генерировать аналитику практически в реальном времени.
  • Ваша компания работает с огромными объёмами данных, как структурированных, так и неструктурированных. Например, транспортной компании, использующей телематические устройства в своих машинах, может требоваться обработка больших объёмов данных, генерируемых датчиками, видеорегистраторами, GPS-трекерами и так далее. Для обработки всех этих данных требуются огромные ресурсы, а также инвестиции в эти ресурсы. ELT позволяет экономить деньги и обеспечивать улучшенную производительность.
  • Вы работаете с облачными проектами или гибридными архитектурами. Хотя современный ETL открыл свои двери облачным хранилищам данных, он всё равно требует отдельного движка для выполнения преобразований перед загрузкой данных в облако. ELT устраняет потребность в установке промежуточных движков обработки, а потому лучше подходит для облачных и гибридных систем.
  • Вы собираетесь запускать проект с Big Data. ELT как раз и разрабатывался для достижения основных задач Big Data: объёма, разнообразия, скорости и достоверности.
  • У вас есть команда дата-саентистов, которой требуется доступ ко всем «сырым» данным для их использования в проектах машинного обучения.
  • Ваш проект будет масштабироваться и вы хотите воспользоваться преимуществами большой масштабируемости облачных хранилищ и озёр данных.

Будущее ETL и ELT


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

Распространение озёр данных тоже играет на руку ELT, потому что всё больше организаций предпочитают выполнять миграцию своих процессов работы с данными с собственных мощностей в облако. Управление озёрами данных выполняется при помощи платформ big data наподобие упомянутой выше Apache Hadoop или при помощи системы управления базами данных NoSQL. ELT также предпочтителен для команд дата-саентистов, поскольку предоставляет им возможность использовать «сырые» данные и преобразовывать их под собственные уникальные требования.

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

Комментарии (9)


  1. SLASH_CyberPunk
    22.11.2022 12:49
    +2

    Использование pl/sql в том же оракле - по факту это тоже ELT. Технология эта вообще не облачная, а используется она очень и очень давно, я бы даже не удивился, если дольше, чем ETL...


    1. Geckelberryfinn
      22.11.2022 13:07
      +2

      Кроме того, существуют вполне себе необлачные ELT решения типа Oracle Data Integrator (устарела уже даже), Stambia. То, что ELT чаще применяется теперь в облаках совершенно не означает, что подхода не было раньше. Идея старая, но её обоснование применения немного изменилось. Если раньше были распространены массово-параллельные БД, кластерные БД, которые лучше знали как быстрее обработать хранящиеся у них данные (иногда и нет, надо отметить), то сейчас это воркер-ноды различных систем, будь то Spark, BigQuery, Synapse и т.д.

      И я уж не говорю о том, что на любом ETL решении можно построить ELT, если это поддерживает или источник или целевая система (или staging). Не всегда, правда, это будет соответствовать Best practices, но в теории можно.


      1. SLASH_CyberPunk
        22.11.2022 13:20

        ELT решения - это когда трансформация делается на уровне уже сохраненных данных, а Oracle DI - это ETL решение...


        1. Geckelberryfinn
          22.11.2022 13:51
          +2

          Нет, все таки ELT, у него нет своего движка трансформации. Например, чтоб совершить преобразования над данными из CRM или из другого любого не SQL источника, необходимо его загрузить. Поэтому ELT

          Ну, и в Википедии, если достоверный для вас источник : https://en.m.wikipedia.org/wiki/Oracle_Data_Integrator


          1. Ivan22
            22.11.2022 17:10
            +1

            давайте вместо вики попробуем на официальном сайте оракла посмомтреть:

            https://docs.oracle.com/cd/E28280_01/integrate.1111/e12643/intro.htm#ODIDG118

            Oracle Data Integrator supports both ETL- and E-LT-Style data integration. See Section 11.5, "Designing Integration Interfaces: E-LT- and ETL-Style Interfaces" for more information.


            1. Geckelberryfinn
              22.11.2022 20:13
              +2

              Не хочу спорить с различными чтениями терминологии, но даже на сайте Oracle написано:

              In an ETL-style interface, ODI processes the data in a staging area, which is different from the target. The data is first extracted from the source(s) and then loaded to the staging area. The data transformations take place in the staging area and the intermediate results...

              По мне это ELT в чистом виде. Для того чтобы трансформировать нужно загрузить либо в целевую систему, либо в другую (но в случае ODI - только в СУБД), но которая умеет делать трансформации. Сам ODI ничего в этом плане не умеет, он только генерирует SQL скрипты. А уж целевая это система или нет - это не столь важно в подходе ELT. Строго говоря это ELTL подход.


  1. Ivan22
    22.11.2022 16:15
    +5

    "ETL .. не имеет поддержки озёр данных " что за чушь про не имеет поддержи?

    "При ELT за преобразования отвечает целевая система. Благодаря разделению хранения и вычислений данные можно хранить в их исходном формате и преобразовывать по необходимости. Размер данных не влияет на скорость. "

    А мужики то не знают, что размер не влияет на скорость. Facepalm


  1. Ninil
    23.11.2022 00:31
    +4

    Если зрить в корень, то ETL отличается от ELT по сути только тем, где именно (в какой именно системе) происходит T: если уже в целевой системе, то это ELT, если нет — то ETL. Это и есть ключевое отличие, а все остальное — логическое следствие из этого.

    А вообще, ИМХО, деление ELT/ETL было актуально лет 7 назад. Сейчас при проектировании высоконагруженных БигДата систем никто уже не задается вопросом, какой из этих подходов использовать — просто делают «как надо» и все. А как это называется — дело десятое. Вы же не задумываетесь, с какой ноги начинаете шагать?


  1. Shadilan
    23.11.2022 07:39
    +2

    Куча современных инструментов это всё-таки ETL. Тот же Спарк или трансформации данных через python pandas это вариации ETL подхода, хотя со спарком можно поспорить, так как зачастую он использует ресурсы hdfs. Но если поставим его в условном Standalone будет вполне себе ETL. Куча инструментов предлагает оба варианта обработки. Облачные движки так же могут давать ETL подход. Кроме того стримовые движки типа флинка это тоже по факту etl. В статье очень странно описаны плюсы/минусы каждого из подходов, статья очень похожа на продажу ЕLT подхода с которой лет 10 или 15 назад выходил оракл со своим odi, рассказывая что придумал новый вариант интеграции данных. Например "Вы работаете только со структурированными данными и/или с небольшими частями данных" почему etl не подходит для слабоструктурированные данных и как вы загрузите произвольный json в целевую базу и будете жечь проц на парсинг этого json в базе?

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

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