【问题标题】:How to perform upsert operation in PostgreSQL on Cloud Data Fusion如何在 Cloud Data Fusion 上的 PostgreSQL 中执行 upsert 操作
【发布时间】:2022-01-26 09:44:35
【问题描述】:

我想在写入 Cloud Data Fusion 上的 PostgreSQL 之前进行操作 upsert,我可以使用 sink 插件轻松编写,但是如果值已经存在,我找不到如何进行更新,谢谢。

【问题讨论】:

  • 查看插入冲突子句
  • Data Fusion 中没有可用于在 PostgreSQL 中执行 upsert 操作的特定插件。 PostgreSQL 中有一个 INSERT ON CONFLICT 语句,可用于您在上面评论中提到的要求。您可以查看此link,它显示了可在数据融合控制台的 PostgreSQL 接收器中使用的特定 PostgreSQL upsert 实现。
  • @ShipraSarkar 所以我是否应该创建另一个表来保存数据,然后在使用 postgresql sink 插件保存数据后,添加另一个插件 postgresql 执行器并编写“on conflit”命令以写入我的表,我理解对了吗?
  • 是的,@Robs,您的理解是对的。您可以先使用 Postgres 接收器将数据保存到临时表中,然后使用 Postgres 执行器运行查询以将其与目标表。
  • 嗨@Robs,你的问题解决了吗?

标签: postgresql google-cloud-platform cloud upsert google-cloud-data-fusion


【解决方案1】:

正如@ShipraSarkar 所指出的,Postgres 接收器插件中没有用于 upsert 操作的选项。因此,PostgreSQL 中的 INSERT ON CONFLICT 语句可以用于相同的目的。正如您正确指出的那样,第一个可以使用接收器插件将数据放入临时表中,然后使用 Postgres 执行器运行查询以将其与目标表合并(即 upsert)。

【讨论】:

    猜你喜欢
    • 2021-05-14
    • 2023-01-31
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2021-08-11
    • 2022-08-19
    • 2022-08-04
    相关资源
    最近更新 更多