Конвейер данных AWS и пошаговые функции - PullRequest
4 голосов
/ 08 марта 2019

Я работаю над проблемой, когда мы собираемся выполнить несколько преобразований данных с использованием EMR (SparkSQL).

Изучив документацию по конвейерам данных AWS и шаговым функциям AWS, я немного озадачен тем, какой вариант использования пытается решить каждый. Я оглянулся, но не нашел авторитетного сравнения между ними. Существует несколько ресурсов, показывающих, как я могу использовать их для планирования и запуска заданий Spark в кластере EMR.

  1. Какой из них следует использовать для планирования и организации моих заданий обработки EMR?

  2. В целом, в какой ситуации один будет лучшим выбором по сравнению с другим в отношении ETL / обработки данных?

1 Ответ

6 голосов
/ 08 марта 2019

Да, есть много способов достичь одного и того же, и разница в деталях и в вашем случае использования.Я собираюсь даже предложить еще одну альтернативу:)

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

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

Это означает, что конвейер данных будет лучше интегрирован, когда речь идет об источниках и выходных данных, иработать напрямую с такими инструментами, как S3, EMR, DynamoDB, Redshift или RDS.Так что для решения проблемы с конвейером данных, скорее всего, AWS Data Pipeline будет лучшим кандидатом.

При этом AWS Data Pipeline не очень гибок.Если необходимый вам источник данных не поддерживается или если вы хотите выполнить какое-то действие, которое не является интегрированным, вам нужно взломать сценарии оболочки.

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

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

...