AWS Data Pipeline 与 Step Functions
AWS Data Pipeline vs Step Functions
我正在解决一个问题,我们打算使用 EMR (SparkSQL) 对数据执行多个转换。
在阅读了 AWS Data Pipelines 和 AWS Step Functions 的文档后,我对每个尝试解决的用例感到有些困惑。我环顾四周,但没有找到两者之间的权威比较。有多个资源展示了我如何使用它们在 EMR 集群上安排和触发 Spark 作业。
我应该使用哪一个来安排和编排我处理的 EMR 作业?
更一般地说,就 ETL/data 处理而言,在什么情况下一个是比另一个更好的选择?
是的,有很多方法可以实现同一件事,区别在于细节和用例。我什至要提供另一种选择:)
如果您正在执行一系列转换并且所有这些都在 EMR 集群上,那么您可能只需要创建包含多个步骤的集群,或者提交包含多个步骤的 API 作业。步骤将在您的集群上按顺序执行。
如果您有不同的数据源,或者您想要处理更复杂的场景,那么 AWS Data Pipeline 和 AWS Step Functions 都可以。 AWS Step Functions 是实现工作流的通用方法,而 Data Pipelines 是处理数据的专用工作流。
这意味着 Data Pipeline 在处理数据源和输出方面将得到更好的集成,并且可以直接与 S3、EMR、DynamoDB、Redshift 或 RDS 等工具一起使用。因此,对于纯数据管道问题,AWS Data Pipeline 可能是更好的选择。
话虽如此,AWS Data Pipeline 并不是很灵活。如果您需要的数据源不受支持,或者如果您想执行一些未集成的 activity,那么您需要使用 shell 脚本进行破解。
另一方面,AWS Step Functions 不是专门的,并且与某些 AWS 服务和 AWS Lambda 有很好的集成,这意味着您可以通过无服务器 API 轻松地与任何东西集成。
所以这实际上取决于您需要实现的目标以及您的工作量类型。
我正在解决一个问题,我们打算使用 EMR (SparkSQL) 对数据执行多个转换。
在阅读了 AWS Data Pipelines 和 AWS Step Functions 的文档后,我对每个尝试解决的用例感到有些困惑。我环顾四周,但没有找到两者之间的权威比较。有多个资源展示了我如何使用它们在 EMR 集群上安排和触发 Spark 作业。
我应该使用哪一个来安排和编排我处理的 EMR 作业?
更一般地说,就 ETL/data 处理而言,在什么情况下一个是比另一个更好的选择?
是的,有很多方法可以实现同一件事,区别在于细节和用例。我什至要提供另一种选择:)
如果您正在执行一系列转换并且所有这些都在 EMR 集群上,那么您可能只需要创建包含多个步骤的集群,或者提交包含多个步骤的 API 作业。步骤将在您的集群上按顺序执行。
如果您有不同的数据源,或者您想要处理更复杂的场景,那么 AWS Data Pipeline 和 AWS Step Functions 都可以。 AWS Step Functions 是实现工作流的通用方法,而 Data Pipelines 是处理数据的专用工作流。
这意味着 Data Pipeline 在处理数据源和输出方面将得到更好的集成,并且可以直接与 S3、EMR、DynamoDB、Redshift 或 RDS 等工具一起使用。因此,对于纯数据管道问题,AWS Data Pipeline 可能是更好的选择。
话虽如此,AWS Data Pipeline 并不是很灵活。如果您需要的数据源不受支持,或者如果您想执行一些未集成的 activity,那么您需要使用 shell 脚本进行破解。
另一方面,AWS Step Functions 不是专门的,并且与某些 AWS 服务和 AWS Lambda 有很好的集成,这意味着您可以通过无服务器 API 轻松地与任何东西集成。
所以这实际上取决于您需要实现的目标以及您的工作量类型。