databricks:在dataframe中用delta数据更新azuresql表

vcudknz3  于 2021-05-19  发布在  Spark
关注(0)|答案(0)|浏览(270)

我正在尝试通过存储在azuredatabricks上的dataframe(具有数千行)中的delta数据将数据向上插入到azuresql事务表(具有数千行),delta数据存储昨天最后修改的行,并作为批处理作业每晚运行。两者之间的模式是相同的,有一个主键列[id]。目标是在将Dataframe追加到azure sql表之前,在delta data dataframe中出现[id]时更新/删除azure sql表中的行,以便用新的/更新的事务不断更新目标表。
我正在使用sqlspark连接器将数据拉入dataframe,并且可以使用该连接器将dataframe附加到pyspark上的azuresql表上。
到目前为止,我想有两种方法来解决这个问题:
将delta数据的[id]列转换为数组,删除delta数组中出现的目标azure sql行,并将delta dataframe附加到azure sql表中。
答。我遇到的问题是,我缺乏利用[id]数组将这些行删除到带有连接器的azuresql中的知识。连接器仍在开发中,文档很少。
b。从技术上讲,我可以使用连接器将整个目标表拉入pysparkDataframe,删除deltaDataframe中匹配的[id](我在pyspark上也很难实现这一点),并每天将整个表覆盖回azure。但是,这绝对是非常低效的,而且是对计算能力的浪费,特别是当表包含数千万个事务行时。
我找到了关于databricks的文档,这些文档使用delta表来实现我所需要的功能。然而,这似乎只适用于delta-lake表,但我想知道是否有一种方法也可以连接azuresql表。
抱歉的基本问题,但希望得到指针来解决这个问题!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题