【问题标题】:Updating or replacing a row in BigQuery using Python?使用 Python 更新或替换 BigQuery 中的一行?
【发布时间】:2021-09-13 00:42:46
【问题描述】:

我使用 Python 创建了一个云函数,它接收一些数据并将其插入到 BigQuery 表中。目前,它使用 insert_rows 方法插入新行。

row = client.insert_rows(table, row_to_insert)  # API request to insert row

问题是我在表中已经有了具有唯一主键的数据,我只需要在这些行中更新一个测量值。

我希望它更新或替换该行而不是创建新行(假设表中的主键和输入数据匹配)。这可能吗?

【问题讨论】:

  • 你可以在 BQ 看到这个answer 关于upsert

标签: python sql google-cloud-platform google-bigquery


【解决方案1】:

BigQuery 不是为交易数据而设计的,它更喜欢仅追加。请参阅 Bigquery DML quota 上的文档。这意味着您每天只能在一个表上应用有限数量的 DML 命令。

更新行不适用于 BQ 表。

推荐解决方案:-

  1. 创建 2 个表(T1 和 T2)。
  2. 通过您现有的函数插入 T1 表上的所有事务记录。
  3. 然后编写 BQ-SQL 从 T1 表中读取最近的记录,然后将最近的记录插入到 T2 表中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2023-03-31
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    相关资源
    最近更新 更多