Да, это возможно, но не используйте HiveActivity вместо EMRActivity.Если вы посмотрите документацию конвейера данных для HiveActivity , в ней четко указано его назначение и он не подходит для вашего случая использования:
Запускает запрос Hive в кластере EMR.HiveActivity упрощает настройку активности Amazon EMR, а автоматически создает таблицы Hive на основе входных данных , поступающих из либо Amazon S3, либо Amazon RDS .Все, что вам нужно указать, это HiveQL для запуска на исходных данных.AWS Data Pipeline автоматически создает таблицы Hive с $ {input1}, $ {input2} и т. Д. На основе полей ввода в объекте HiveActivity.
Ниже показано, как работает конвейер данных.должен выглядеть так.Существует также встроенный шаблон Export DynamoDB table to S3
в пользовательском интерфейсе для AWS Data Pipeline, который создает базовую структуру для вас, а затем вы можете расширять / настраивать в соответствии с вашими требованиями.
К следующему вопросу, используя Lambda . Конечно, лямбда может быть настроена на запуск по событиям или по расписанию , но я бы не рекомендовал использовать AWS Lambda
для любых операций ETL, поскольку они ограничены по времени , а обычные ETL длиннее лямбда-времени.
AWS предлагает специальные оптимизированные функции для ETL, AWS Data Pipeline
& AWS Glue
, я всегда рекомендовал бы выбирать между одним из двух.Если ваш ETL включает источники данных, не управляемые в сервисах вычислений и хранения AWS, ИЛИ какой-либо особый вариант использования, который не может быть удовлетворен указанными выше двумя вариантами, тогда AWS Batch
будет моим следующим соображением.