【问题标题】:How to overwrite column values in bigquery existing table如何覆盖 bigquery 现有表中的列值
【发布时间】:2021-08-16 17:45:14
【问题描述】:

我需要覆盖/更新 bigquery 中的列值。 下面解决方案的问题是每次需要上传少量记录时都会加载大量数据。 需要一个更优化的解决方案,只上传匹配的 id。

额外:如果它可以检查值是否相同会更好,否则它不会更新记录。 我认为它会随着负载减少更多

表 1:

name   id    value
jose   1     10
jack   5     15
lex    4   12

表 2:

id   value
1    200
2    200
3    700
4    800
5    200

查询:

select
t1.name,
t1.id,
t2.value

from table 1 as t1
left join table2 as t2
on t1.id=t2.id

下面链接中的示例创建了一个新表,因此不起作用。它需要更新现有表中的值。

changing column values in bigquery

【问题讨论】:

    标签: mysql google-bigquery


    【解决方案1】:

    你错了。

    在 BigQuery 中,您支付所读内容,而不是所写内容。因此,如果您需要读取很多行进行比较,则每次读取您都需要付费,并且写入是免费的。因此,您应该使用 WHERE 逻辑减少您“阅读”的项目数量以降低成本。

    【讨论】:

      猜你喜欢
      • 2019-11-14
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多