使用AWS执行按需ETL

时间:2015-10-05 17:44:33

标签: python amazon-web-services etl emr amazon-emr

我想使用AWS架构执行按需ETL作业。

此ETL过程将每天运行,我不想一直为EC2实例付费。例如,这个ETL作业可以用python编写。

我知道在EMR中,我可以按需构建我的集群并执行hadoop作业。

运行简单的按需ETL作业的最佳架构是什么?

4 个答案:

答案 0 :(得分:1)

最简单的方法是启动Amazon EC2实例并在User Data中触发ETL作业。启动实例时,将自动执行通过用户数据传递的脚本。

如果您想获得创意,可以使用竞价定价启动实例。使用高现货价格启动(以确保其运行),但您可能只需要根据当前现货市场支付低价。

答案 1 :(得分:0)

(我是Qubole的员工) 如果您打算使用Hadoop来运行Python脚本,那么Qubole会为您管理集群。它将在提交作业时启动集群,并在集群空闲很长时间时关闭。 常见问题解答中提供了更多详细信息:http://docs.qubole.com/en/latest/faqs/hadoop-clusters/clusters-brought-shutdown.html

答案 2 :(得分:0)

现在,您可以将脚本放在AWS Lambda for ETL上。它支持其他AWS组件上的调度程序和触发器。它是按需的,只有在Lambda函数执行时才会向您收费。

答案 3 :(得分:0)

对于随需应变的ETL作业,您可以使用AWS Lambda触发lambda函数,该函数将包含ETL作业的起始作业代码。 AWS Lambda可以通过其他AWS服务触发,例如:S3,CloudWatch(按照上述时间触发),SNS等。

    You can use boto3 (http://boto3.readthedocs.io/en/latest/) SDK if you are planning to use python based AWS Lambda function to access the AWS services which also include AWS Glue.