aws glue python shell 作业与 spark 作业的最佳用例是什么?

What are the best use cases for aws glue python shell jobs vs. spark jobs?

一直在使用aws glue python shell jobs构建简单的data etl jobs,对于spark job,只用过一两次转换成orc格式或者执行spark sql 在 JDBC 数据上。那么想知道它们各自的 best/typical 用例是什么? 一些文件说 python shell job 适合简单的工作,而 spark 适合更复杂的工作,对吗?能否请您分享更多这方面的经验?

非常感谢

which are the best/typical use cases for each of them? Some document says python shell job is suitable for simple jobs whereas spark for more complicated jobs, is that correct?

AWS Glue 是针对 ETL 作业的快速开发 facility/service,由 AWS 提供。 恕我直言,如果您知道在您的 etl 管道中需要完成什么,那么开发速度非常快。

  • Glue 具有发现、开发、部署等组件。 在Discover中... 自动爬取(运行或多次调度爬取)是区别于我观察到的其他工具的重要特征。

  • Glue 似乎具有连接到 AWS 生态系统服务的集成功能(您需要使用 spark)

AWS Glue 的典型用例可能是...
1) 从数据仓库加载数据。
2) 在 amazon s3 上建立数据湖。

See this presentation of AWS for more insight.

Custom Spark Job也可以做同样的事情,但需要从头开发。而且它没有内置的自动爬行功能。

但是,如果您为 etl 开发一个 spark 作业,您将拥有细粒度的控制来实现复杂的作业。

对于 ETL,胶水和 spark 都有相同的目标。 AFAIK,Glue 用于简单的工作,例如从源加载到目标。 Spark 作业可以以受控方式进行各种转换。

Conclusion : For simple use cases of ETL (which can be done with out much development experience ) go with Glue. For customized ETL which has many dependencies/transformations go with spark job.

当您不需要太多的计算能力来 运行 轻型 ETL 工作负载时,请使用 AWS Glue Python shell。当您必须水平、垂直或同时扩展时,将 AWS Glue 与 Spark 结合使用。

来源: