Раскрытие возможностей инструментов ETL для AWS

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

Я помню времена от 15 до 20 лет назад, когда термин ETL был чем-то, что лишь немногие понимали, что это такое. Когда различные пользовательские пакетные задания достигли своего пика на локальном оборудовании.

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

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

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

История ETL и ее связь с настоящим

Источник: aws.amazon.com

Основные функции ETL всегда были одинаковыми.

Инструменты ETL извлекают данные из различных источников (будь то базы данных, плоские файлы, веб-службы или, в последнее время, облачные приложения).

Обычно это означало использование файлов в файловой системе Unix в качестве входных данных, а также предварительную обработку, обработку и постобработку.

Вы могли видеть многократно используемый шаблон имен папок, например:

  • Вход
  • Выход
  • Ошибка
  • Архив

В этих папках также существовала другая структура подпапок, в основном основанная на датах.

Это был просто стандартный способ обработки поступающих данных и подготовки их к загрузке в какую-то базу данных.

Сегодня нет файловых систем Unix (не так, как раньше) — может быть, даже файлов. Сейчас есть API — интерфейсы прикладного программирования. Вы можете, но вам не нужно иметь файл в качестве входного формата.

Все это можно хранить в кэш-памяти. Это все еще может быть файл . Что бы это ни было, оно должно соответствовать определенному структурированному формату. В большинстве случаев это означает формат JSON или XML. В некоторых случаях подойдет и старый добрый формат с разделителями-запятыми (CSV).

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

Трансформация

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

Как и раньше, данные проходили через некоторую сложную пользовательскую логику Pro-C или PL/SQL процедурного хранения данных, преобразования данных и хранения целевой схемы данных. Это был такой же обязательный стандартный процесс, как и разделение входящих файлов на подпапки в зависимости от стадии обработки файла.

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

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

Нагрузка

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

Шаг загрузки, вероятно, единственный, который следует одной и той же схеме на протяжении веков. Единственное отличие — целевая база данных. Если раньше в большинстве случаев это был Oracle, то теперь это может быть все, что доступно в облаке AWS.

ETL в современной облачной среде

Если вы планируете перенести свои данные из локальной среды в облако (AWS), вам понадобится инструмент ETL. Без этого не обойтись, поэтому эта часть облачной архитектуры стала, пожалуй, самой важной частью головоломки. Если этот шаг будет неверным, за ним последует что-то еще, распространяя один и тот же запах повсюду.

И хотя соревнований много, сейчас я бы сосредоточился на трех, с которыми у меня больше всего личного опыта:

  • Data Migration Service (DMS) — собственный сервис от AWS.
  • Informatica ETL — вероятно, главный коммерческий игрок в мире ETL, успешно трансформирующий свой бизнес из локального в облачный.
  • Matillion для AWS — относительно новый игрок в облачных средах. Не родной для AWS, но родной для облака. Ни с чем не сравнимой истории с Informatica.

AWS DMS как ETL

Источник: aws.amazon.com

AWS Data Migration Services (DMS) — это полностью управляемый сервис, позволяющий переносить данные из разных источников в AWS. Он поддерживает несколько сценариев миграции.

  • Однородные миграции (например, с Oracle на Amazon RDS для Oracle).
  • Разнородные миграции (например, с Oracle на Amazon Aurora).

DMS может переносить данные из различных источников, включая базы данных, хранилища данных и приложения SaaS, в различные целевые объекты, включая Amazon S3, Amazon Redshift и Amazon RDS.

AWS рассматривает службу DMS как лучший инструмент для переноса данных из любого источника базы данных в облачные целевые объекты. Хотя основной целью DMS является просто копирование данных в облако, он также хорошо справляется с преобразованием данных по пути.

Вы можете определить задачи DMS в формате JSON, чтобы автоматизировать различные задания преобразования для вас при копировании данных из источника в цель:

  • Объедините несколько исходных таблиц или столбцов в одно значение.
  • Разделите исходное значение на несколько целевых полей.
  • Замените исходные данные другим целевым значением.
  • Удалите все ненужные данные или создайте совершенно новые данные на основе входного контекста.

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

Фактор пригодности

Хотя DMS предоставляет некоторые возможности ETL, в первую очередь речь идет о сценариях переноса данных. Однако в некоторых сценариях лучше использовать DMS вместо инструментов ETL, таких как Informatica или Matillion:

  • DMS может обрабатывать однородные миграции, когда исходная и целевая базы данных совпадают. Это может быть преимуществом, если целью является миграция данных между базами данных одного типа, например, из Oracle в Oracle или из MySQL в MySQL.
  • DMS предоставляет некоторые базовые возможности преобразования и настройки данных, но в этом отношении она может быть не очень зрелой. Это все еще может быть преимуществом, если у вас ограниченные потребности в преобразовании данных.
  • Потребности в качестве данных и управлении, как правило, довольно ограничены DMS. Но это области, которые можно улучшить на более поздних этапах проекта с помощью других инструментов, более подходящих для этой цели. Вам может понадобиться, чтобы часть ETL была сделана как можно проще. Тогда DMS — идеальный выбор.
  • DMS может быть более экономичным вариантом для организаций с ограниченным бюджетом. DMS имеет более простую модель ценообразования, чем инструменты ETL, такие как Informatica или Matillion, что может упростить организациям прогнозирование и управление своими расходами.
  • Матиллион ETL

    Источник: matillion.com

    — это облачное решение, и вы можете использовать его для интеграции данных из различных источников, включая базы данных, приложения SaaS и файловые системы. Он предлагает визуальный интерфейс для построения конвейеров ETL и поддерживает различные сервисы AWS, включая Amazon S3, Amazon Redshift и Amazon RDS.

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

    С другой стороны, Matillion — это своего рода tabula rasa. Он имеет некоторые предопределенные потенциальные функции, но вы должны настроить его, чтобы воплотить в жизнь. Вы не можете ожидать, что Matillion сделает всю работу за вас из коробки, даже если такая возможность есть по определению.

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

    Фактор пригодности

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

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

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

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

    Однако для многих организаций Matillion for AWS может обеспечить достаточную масштабируемость и возможности параллельной обработки для удовлетворения их потребностей.

    Информатика ETL

    Источник: информатика.com

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

    Некоторые из основных характеристик Informatica для AWS включают в себя:

  • Informatica предназначена для увеличения или уменьшения масштаба в зависимости от реальных потребностей. Он может обрабатывать большие объемы данных и может использоваться для интеграции данных из различных источников, включая базы данных, хранилища данных и приложения SaaS.
  • Informatica предоставляет ряд функций безопасности, включая шифрование, контроль доступа и контрольные журналы. Он соответствует различным отраслевым стандартам, включая HIPAA, PCI DSS и SOC 2.
  • Informatica предоставляет визуальный интерфейс для создания конвейеров ETL, который упрощает пользователям создание рабочих процессов интеграции данных и управление ими. Он также предоставляет ряд готовых соединителей и шаблонов, которые можно использовать для подключения систем и запуска процесса интеграции.
  • Informatica интегрируется с различными сервисами AWS, включая Amazon S3, Amazon Redshift и Amazon RDS. Это упрощает интеграцию данных между различными сервисами AWS.
  • Фактор пригодности

    Очевидно, что Informatica — самый многофункциональный инструмент ETL в списке. Однако он может быть более дорогим и сложным в использовании, чем некоторые другие инструменты ETL, доступные в AWS.

    Informatica может быть дорогостоящей, особенно для малых и средних организаций. Модель ценообразования основана на использовании, а это означает, что организациям может потребоваться платить больше по мере увеличения их использования.

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

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

    Кроме того, Informatica может оказаться не столь эффективной для интеграции данных из источников, не принадлежащих AWS. В этом отношении DMS или Matillion могли бы быть лучшим вариантом.

    Наконец, Informatica — очень закрытая система. Существует лишь ограниченная возможность настроить его в соответствии с конкретными потребностями проекта. Вам просто нужно жить с настройкой, которую он предоставляет из коробки. Таким образом, это как-то ограничивает гибкость решений.

    Заключительные слова

    Как и во многих других случаях, не существует универсального решения, даже такого, как инструмент ETL в AWS.

    Вы можете выбрать самое сложное, многофункциональное и дорогое решение с Informatica. Но имеет смысл сделать больше всего, если:

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

    Если что-то сверху не так, вы можете попробовать Matillion:

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

    Для чего-то еще менее сложного очевидным выбором является DMS для AWS в качестве собственного сервиса, который, вероятно, хорошо подойдет для вашей цели.

    Затем ознакомьтесь с инструментами преобразования данных, чтобы лучше управлять своими данными.