AWS Data Glue ETL 过滤器根据作业参数提取输入

AWS Data Glue ETL Filter Extract Input Based on Job Parameter

A​​WS Glue ETL 处理的新手,并尝试实施作业以从特定客户的 RDS MySQL 数据库中提取数据,执行一些转换并将结果写入 S3。

过滤从源中选择的数据输入的最佳方法是什么 table 这可以作为源提取的一部分完成,还是需要基于特定键进行单独的过滤转换?

如果将此实现为过滤器转换,是否可以根据作业输入参数使其动态化?理想情况下,此作业将作为用户启动的工作流的一部分由事件触发。

如有任何帮助,我们将不胜感激。 TIA

What is the best approach to filter the data input selected from the source table can this be done as part of the source extract or does this need to be a separate Filter Transformation based on a specific key?

Glue 基本上是托管的 Spark。 Spark 有一种叫做 PushDownPredicate 的技术可以优化过滤操作。 Spark很可能会通过修改read语句,将filter操作直接push到read操作中。

您可以通过使用 .toDF() 方法将 Glue DynamicFrame 转换为本机 Spark DataFrame 并对该 DataFrame 调用 explain 操作来检查您的情况是否发生这种情况。

If implementing this as a Filter Transformation is there a way to make this dynamic based on Job input parameters? Ideally this job will be triggered by an event as part of a user initiated workflow.

可以,但不能通过 Glue Studio 的 Visual UI,您需要手动修改 ETL 脚本。