【发布时间】:2019-04-01 18:22:42
【问题描述】:
我正在学习 AWS Glue。对于传统的 ETL,一个常见的模式是从目标表中查找主键来决定是否需要进行更新或插入(又名 upsert 设计模式)。使用胶水似乎没有相同的控制。简单地写出动态框架只是一个插入过程。我可以想到两种设计模式来解决这个问题:
- 将目标加载为数据框并在 spark 中,左外连接只插入新行(如果需要,您将如何更新行?删除然后插入???因为我是新来的 spark,这是最陌生的我)
- 将数据加载到暂存表中,然后使用 SQL 执行最终合并
这是我首先探索的第二种方法。 AWS Glue 作业完成后,我如何在 AWS 世界中执行 SQL 脚本或存储过程?你做 python-shell 工作,lambda,直接作为胶水的一部分,或者其他方式吗?
【问题讨论】:
-
您在哪个数据库中写入数据(AWS Redshift、RDS)?
-
本地,MS SQL Server。我有 JDBC 连接工作,我可以将我的数据框写入表。所以我知道我至少弄清楚了网络和连接部分。
-
你可以使用 py4j stackoverflow.com/questions/64775753/…
标签: python amazon-web-services apache-spark pyspark aws-glue