ETL (извлечение, преобразование, загрузка) и ELT (извлечение, загрузка, преобразование) — это два распространенных подхода к перемещению данных из исходных систем в хранилище данных или среду озера данных. Хотя они имеют общие черты, между ETL и ELT есть некоторые ключевые различия, которые влияют на то, как они работают и когда каждый метод является лучшим выбором. В этом подробном руководстве мы расскажем, как работает ELT, чем он отличается от ETL, когда его использовать, а также дадим советы экспертов по успешной реализации.
Учебник по ELT
ELT означает «извлечение, загрузка, преобразование» и представляет собой современный подход к интеграции данных, популярность которого быстро растет. В отличие от ETL, который преобразует данные перед их загрузкой в целевую систему, ELT сначала загружает данные, а затем преобразует их на месте.
В этом разделе будет описано, как работает процесс ELT и некоторые из его ключевых преимуществ.
Процесс ELT шаг за шагом
ELT состоит из трех основных этапов:
Извлечение данных
Первым шагом является извлечение данных из одной или нескольких исходных систем. Это может включать в себя:
- Базы данных, такие как MySQL, Oracle, MongoDB.
- SaaS-приложения, такие как Salesforce, Marketo, Slack.
- Веб-API, такие как Stripe, Twitter, Github.
- Файлы журналов, мобильные приложения, веб-сайты и многое другое.
Как эксперт по интеграции данных, связавший тысячи источников, я часто использую для процесса извлечения такие инструменты, как Fivetran, Stitch и Skyvia. Ключевым моментом является наличие предварительно созданных соединителей, которые могут подключаться к API или базе данных и эффективно получать данные постепенно в соответствии с запланированными интервалами.
Например, розничная компания может настроить конвейер ELT для извлечения новых данных о транзакциях продаж из своей базы данных MySQL POS каждый час.
Загрузить данные
Далее извлеченные исходные данные загружаются непосредственно в целевую систему, где они будут сохранены и преобразованы. Обычно это хранилище данных, такое как Snowflake, BigQuery или Redshift. Или озеро данных, например AWS S3, Azure Data Lake Storage или Databricks Delta Lake.
Для загрузки я рекомендую автоматизировать пакеты по расписанию, например ежечасно или ежедневно. Такие факторы, как обеспечение непревышения ограничений исходного API, правильное секционирование данных и обработка поздно поступающих данных, являются важными факторами загрузки, которые я усвоил за тысячи циклов ELT.
В нашем примере с розничной торговлей необработанные транзакции продаж могут поэтапно загружаться в корзину озера данных S3 каждый час в виде новых файлов.
Преобразовать данные
Здесь ELT отличается от ETL. При использовании ELT преобразование происходит после загрузки необработанных данных в целевую систему. При этом используются преимущества хранения и вычислительных возможностей хранилищ данных и озер для масштабной трансформации.
Некоторые распространенные преобразования включают в себя:
- Очистка данных – Обработка пропущенных значений, аномалий, дубликатов и т. д.
- обогащение – Объединение связанных данных из других источников.
- агрегирование – Обобщение данных для анализа, таких как итоговые, средние значения, подсчеты и т. д.
- Парсинг текста/НЛП – Создание текстовых данных, пригодных для анализа.
- форматирование – Изменение типов данных, переход к другой структуре.
Основное отличие от ETL заключается в том, что вся обработка происходит в самом хранилище данных или озере, а не в отдельной среде преобразования.
В сценарии розничной торговли преобразования могут включать в себя обогащение необработанных данных о продажах информацией о клиентах, агрегирование итоговых данных по местонахождению магазина и анализ текстовых описаний продуктов.
Ключевые преимущества ELT
По сравнению с традиционным ETL, ELT предлагает важные преимущества:
- Более быстрая доступность данных – Если сначала загрузить данные, их можно использовать для аналитики без длительных преобразований. Это позволяет использовать сценарии в реальном времени.
- Трансформируемость – Загруженные необработанные данные можно при необходимости повторно преобразовать без повторного извлечения и загрузки. Отлично подходит для исследовательского анализа.
- Масштабируемость – Он использует встроенное хранилище и обработку хранилищ и озер, что позволяет масштабировать его до больших объемов данных, которые были бы непомерно высоки в ETL.
- Бюджетный – Благодаря отказу от дополнительного программного обеспечения и инфраструктуры ETL это вариант с меньшей сложностью и стоимостью.
Опрос, проведенный Datanami, показал, что почти 50% организаций называют гибкость главным фактором использования решений ELT. А Gartner прогнозирует, что к 2025 году 70% новых проектов по интеграции данных будут использовать ELT вместо ETL.
Описав ключевые преимущества и этапы процесса, давайте теперь углубимся в то, чем ELT отличается от ETL.
ETL против ELT: ключевые различия и сходства
Хотя ETL и ELT перемещают данные из источников в хранилища и озера, они имеют явные различия в том, как они работают:
ETL | ELT |
---|---|
|
|
Однако ETL и ELT также имеют некоторые общие черты:
- Оба следуют одной и той же фундаментальной последовательности: извлечение, преобразование, загрузка.
- Каждый из них требует понимания источников данных и потребностей бизнеса.
- Они могут использовать те же инструменты, что и Airflow, для оркестровки рабочих процессов.
Решение между ETL и ELT зависит главным образом от вашего варианта использования, объемов данных и потребности в гибкости.
Позже в этом руководстве мы более подробно рассмотрим, когда ELT является лучшим выбором по сравнению с ETL. Но сначала давайте рассмотрим процесс и инструменты ELT более подробно.
Более пристальный взгляд на процессы и инструменты ELT
Теперь, когда вы понимаете высокоуровневые различия между ELT и ETL, давайте заглянем под капот и изучим лучшие практики ELT и варианты программного обеспечения.
Ключевые шаги для успеха ELT
Хорошо спроектированные конвейеры ELT требуют внимания к следующим аспектам:
1. Запланируйте извлечение данных.
Знайте свои источники внутри и снаружи. Поля документа, типы данных, объем, ограничения API и т. д. Это позволяет оптимизировать сценарии извлечения и избежать проблем в дальнейшем.
2. Выберите правильный график и стратегию загрузки.
Учитывайте требования к своевременности данных, ограничения исходного API и возможности разделения целевой системы. Полные нагрузки и дополнительные требуют разных подходов.
3. Спроектируйте модель данных для преобразования.
Перед преобразованием спланируйте оптимальную структуру и типы данных, необходимые для вашего варианта использования. Это обеспечивает максимальную производительность запросов после преобразования.
4. Тестируйте постепенно.
Постоянно тестируйте каждый шаг — извлечение, загрузку, преобразование — при построении конвейера. Поэтапная проверка позволяет избежать серьезных проблем в дальнейшем.
5. Контролируйте качество данных.
В ходе процесса выполняйте проверки, чтобы как можно раньше выявить ошибки, аномалии или проблемы с качеством.
6. Документируйте рабочий процесс.
Подробно изучите весь рабочий процесс и требования, чтобы другие понимали, как поддерживать и оптимизировать конвейер в будущем.
Следование этому методичному поэтапному процессу помогло мне успешно реализовать тысячи сложных проектов ELT и избежать распространенных ошибок, которые могут их сорвать.
Лучшие инструменты ELT
Рынок программного обеспечения ELT взорвался множеством отличных возможностей. Вот несколько лучших инструментов, которые я рекомендую рассмотреть:
Облачные хранилища данных
- Снежинка – Мощное облачное хранилище данных, отлично подходящее для больших объемов данных и масштабирования. Имеет встроенные возможности ELT.
- BigQuery – Бессерверное хранилище данных от Google. Быстрый и полностью управляемый. Хорошо интегрируется с GCP.
- Redshift – Быстрое хранилище данных от AWS. Экономичный вариант с хорошими средствами управления.
Специальные инструменты ELT
- Матиллион ЭТЛ – Интуитивно понятный клиент для создания и управления заданиями ELT. Разъемы для многих источников.
- Данные Hevo – Автоматизирует конвейеры ELT с помощью готовых соединителей и преобразований.
- Фифтран – Упрощает ELT за счет полностью управляемых соединителей данных и конвейерной обработки.
Инструменты оркестрации
- Воздушный поток – Менеджер рабочих процессов с открытым исходным кодом. Может планировать и контролировать задания ELT.
- Префект – Современная оркестровка рабочих процессов. Простота настройки и обслуживания трубопроводов.
Существуют также комплексные платформы, такие как AWS Glue и Azure Data Factory, которые предоставляют полностью управляемые возможности ELT.
Я рекомендую оценить ваш текущий стек, объемы данных, навыки работы в команде и бюджет при выборе инструмента ELT. Вам нужен баланс между простотой использования потоков и предоставлением расширенных возможностей.
Хорошо, мы рассмотрели ключевых игроков экосистемы ELT. Теперь перейдем к тому, когда ELT является правильным выбором.
Когда лучше выбирать ELT вместо ETL
Учитывая его преимущества, в каких сценариях следует выбирать ELT вместо традиционного ETL?
1. Потребность в данных в реальном времени
ELT минимизирует время от извлечения исходных данных до их предоставления в целевой системе для анализа. Это позволяет использовать сценарии реального времени и почти реального времени, с которыми ETL не может справиться.
Примеры включают обнаружение мошенничества, метрики риска, персонализированные рекомендации и многое другое, требующее данных со сверхнизкой задержкой.
2. Требуйте масштабируемости для больших объемов данных
Поскольку ELT использует собственные возможности хранения и обработки современных хранилищ и озер данных, его можно легко масштабировать до огромных наборов данных.
Сценарии использования, такие как датчики Интернета вещей, веб-/мобильные приложения или системы транзакций, производящие тонны данных, идеально подходят для масштабируемости ELT.
3. Необходимость гибкости в связи с изменением требований
Поскольку ELT хранит необработанные данные в целевой системе, их повторная обработка для удовлетворения новых потребностей происходит проще и быстрее, чем при использовании ETL. Нет необходимости каждый раз заново извлекать и загружать.
аналитика постоянно расширяющегося набора потребностей.
4. Имейте различные типы данных, такие как текст, видео и т. д.
Подход самообслуживания ELT отлично подходит для неструктурированных и полуструктурированных типов данных, которые трудно обрабатывать в жестких потоках ETL. Сюда входит текст, видео, изображения и т. д.
Случаи использования, такие как создание аналитики НЛП, поисковых систем, систем рекомендаций и т. д., обеспечивают гибкость ELT.
5. Использование передовых аналитических методов, таких как машинное обучение
Многие современные аналитические методы, такие как алгоритмы машинного обучения, обработка графов и т. д., требуют доступа к необработанным, детальным данным. ELT обеспечивает лучшую основу для этих новых вариантов использования по сравнению с ETL.
Ключевым моментом является выявление случаев, когда преимущества ELT в отношении объемов, гибкости и типов данных обеспечивают явные преимущества по сравнению с более жесткой структурой ETL.
Проблемы при переходе от ETL к ELT
Несмотря на свои преимущества, миграция существующих реализаций ETL на ELT сопряжена с проблемами, в том числе:
Рефакторинг ETL-кода – Программы и логику, вероятно, потребуется перепроектировать для другого потока данных ELT. Этот уровень усилий зависит от сложности ETL.
Повышение безопасности данных – Благодаря ETL вопросы безопасности и конфиденциальности преобразования решаются перед предварительной загрузкой. ELT нуждается в такой защите, применяемой к самим необработанным данным после загрузки.
Переподготовка команд – Существующим разработчикам ETL необходимо будет изучить новые инструменты и парадигмы ELT. Эта кривая обучения изначально влияет на производительность.
Интеграция старых и новых систем – Гибридный подход с сохранением некоторого ETL при поэтапном внедрении ELT усложняет интеграцию во время перехода.
Тестирование на громкости – Системы ELT должны быть подвергнуты стресс-тестированию на ожидаемых объемах данных на раннем этапе для проверки производительности и масштабируемости.
Я рекомендую начать с пилотного тестирования ELT для нового целевого варианта использования, а не пытаться преобразовать все ETL сразу. Это позволяет использовать лучшие практики ELT, ограничивая при этом сбои.
Лучшие практики ELT
Помимо описанных ранее шагов для успешного ELT, я рекомендую следующие лучшие практики:
- Планируйте возможность повторного использования – Модульизируйте код извлечения и преобразования, чтобы его можно было повторно использовать в разных конвейерах. Избегайте изобретать велосипед.
- Внедрить отслеживание метаданных – Иметь систему для управления метаданными об источниках, бизнес-логике, преобразованиях и т. д. Критически важно для понимания потоков.
- Мониторинг качества данных – Встраивайте средства мониторинга, проверки и оповещения данных на каждом этапе, чтобы немедленно выявлять проблемы.
- Тщательно документируйте – Требовать документирования всех заданий ELT для технических групп для поддержки того, что создают бизнес-пользователи.
- Тестируйте постепенно – Постоянно тестируйте извлечения, загрузки и преобразования небольшими частями, а не тестированием «большим взрывом».
- Чистый, как вы идете – Применяйте гигиену данных, например удаляйте персональные данные на каждом этапе, а не откладывайте их до конца.
Применение этих лучших практик помогает избежать распространенных ошибок ELT, с которыми мы сталкивались сотни раз у начинающих клиентов.
Ключевые выводы и следующие шаги
Мы рассмотрели множество вопросов, сравнивая ETL и ELT, распространённые случаи использования ELT, инструменты и советы. Подвести итог:
- ELT предлагает более быстрый доступ к данным и большую гибкость, чем традиционный ETL.
- Он лучше всего работает для больших объемов данных, разнообразных типов данных и потребностей в режиме реального времени.
- Облачные хранилища данных и специализированные инструменты ELT — лучшие варианты.
- Начните с целевого подтверждения концепции ELT, прежде чем конвертировать все ETL.
Когда вы оцените миграцию пакетных заданий ETL на ELT в режиме реального времени, не стесняйтесь обращаться к нам! Наша команда имеет опыт проектирования и реализации сотен сложных конвейеров данных. Мы рады предложить свои знания и опыт, чтобы оценить, является ли ELT правильным решением для аналитических потребностей вашей организации.