使用 AWS Glue 时如何查找更新的行?

How to look for updated rows when using AWS Glue?

我正在尝试对从 RDS 移动到 Redshift 的数据使用 Glue for ETL。

据我所知,Glue 书签仅使用指定的主键查找新行,不会跟踪更新的行。

然而,我正在处理的数据往往会频繁更新行,我正在寻找可能的解决方案。我对 pyspark 有点陌生,所以如果可以在 pyspark 中做到这一点,我将非常感谢一些指导或正确方向的观点。如果在 Spark 之外有可能的解决方案,我也很想听听。

您可以使用查询通过过滤源 JDBC 数据库中的数据来查找更新的记录,如下例所示。我已将日期作为参数传递,因此对于每个 运行,在此示例中我只能从 mysql 数据库中获取最新值。

query= "(select ab.id,ab.name,ab.date1,bb.tStartDate from test.test12 ab join test.test34 bb on ab.id=bb.id where ab.date1>'" + args['start_date'] + "') as testresult"

datasource0 = spark.read.format("jdbc").option("url", "jdbc:mysql://host.test.us-east-2.rds.amazonaws.com:3306/test").option("driver", "com.mysql.jdbc.Driver").option("dbtable", query).option("user", "test").option("password", "Password1234").load()