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

时间:2019-01-25 16:19:07

标签: amazon-web-services pyspark etl aws-glue

我正在尝试对从RDS移至Redshift的数据使用Glue进行ETL。

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用查询通过过滤源JDBC数据库中的数据来查找更新的记录,如下例所示。我已将date用作参数,因此在此示例中,每次运行我只能从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()