【问题标题】:Google BigQuery - How to upsert using google-cloud-bigquery gem?Google BigQuery - 如何使用 google-cloud-bigquery gem 进行更新插入?
【发布时间】:2021-12-07 01:23:39
【问题描述】:

如何使用 google-cloud-bigquery gem 进行更新插入?

如果不可能,我将如何在 Ruby 应用程序中实现它?

我需要创建一个新表并将唯一的行复制到其中吗?

【问题讨论】:

    标签: google-bigquery rubygems


    【解决方案1】:

    为此,请查看 Bigquery MERGE clause

    MERGE 语句是一种 DML 语句,它可以将 INSERT、UPDATE 和 DELETE 操作组合到单个语句中并以原子方式执行操作

    您可以在此堆栈thread 中找到此语句实际用法的一个很好的示例。

    我假设 Bigquery Ruby clientMERGE 查询语句附加到适当的 bigquery.query_job method 最终创建一个 Bigquery Job 对象就足够了。

    如有更多疑问/疑虑,请随时扩展最初的问题,探索有关您当前用例的更多上下文。

    【讨论】:

    • 你好@user1186842。这是answer your question吗?
    • 谢谢@nick_kh!这非常有帮助,可以满足我的需求。只是想仔细检查一下 MERGE 只有在表中已经有一些数据时才起作用,否则没有什么可比较/更新/插入的?
    • MERGE 子句中总是有选项来提供三个选项:MATCHEDNOT MATCHED BY TARGETNOT MATCHED BY SOURCE 灵活设置相应的动作,更详细的查看命令reference .它接近你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2019-08-18
    • 2015-12-14
    相关资源
    最近更新 更多