Google BQ - 如何更新插入表中的现有数据?

2023-11-25

我正在使用 Python 客户端库在 BigQuery 表中加载数据。我需要更新这些表中的一些已更改的行。但我不知道如何正确更新它们?我想要一些类似的UPSERT功能 - 仅当行不存在时插入行,否则 - 更新现有行。

在表中使用带有校验和的特殊字段(并在加载过程中比较总和)是否是正确的方法?如果有好的想法,如何用Python客户端解决这个问题? (据我所知,它无法更新现有数据)

请解释一下,最好的做法是什么?


BigQuery 现在支持MERGE,它可以结合INSERT and UPDATE在一个原子操作中,即UPSERT.

使用 Mikhail 的示例表,它看起来像:

MERGE merge_example.table_data T
USING merge_example.table_changes S
ON T.id = S.id
WHEN MATCHED THEN
  UPDATE SET value = s.value
WHEN NOT MATCHED THEN
  INSERT (id, value) VALUES(id, value)

enter image description here

See here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google BQ - 如何更新插入表中的现有数据? 的相关文章

随机推荐

  • gem install Rails 错误:执行 gem 时 ... (Errno::EACCES)

    我不知何故弄乱了我的 PATH 更改了它 并且我的红宝石和 Rails 宝石无法工作 为了解决这个问题 我所做的就是重新安装 RVM 现在我的红宝石在终端中运行良好 跑步时gem install rails我受到这样的欢迎 Permissi
  • 在WebGL中将大数组传递到uniform中

    想知道是否可以将大型数组传递到 WebGL 着色器中 如下所示 array here uniform vec4 huge mydynamicarray void main iterate through the array here to
  • 写入控制台和文本文件

    我从互联网上找到了下面的代码 可以工作 但它不会将打印的控制台写入 omt txt 它只写入System out println第二个 catch 块之后的语句 如果您运行一次代码 您就会明白我的意思 我想要的就是将控制台上的内容写入 om
  • 使用 PostGIS 将点转换为多边形

    我想使用 PostGIS 创建一个多边形表 表中的每一行 point 有三分ID Table point location 有点的位置信息 我用谷歌搜索了这个问题但没有找到答案 下面的代码有什么问题 SELECT ST GeomFromTe
  • 如何在 pygame 中找到两点之间的角度?

    我正在用 Pygame 用 Python 编写一个游戏 我的显示窗口的 坐标是 0 0 在左上角和 640 480 在右下角 角度是 0 当指向上方时 90 当指向右侧时 我有一个位于中心位置的玩家精灵 我希望枪上的炮塔指向玩家 我该怎么做
  • 将 API 调用与 RX Java 相结合

    我是 RXJava 的新手 我无法理解如何将 API 调用的结果链接在一起 我正在使用改造进行两个 API 调用 A 和 B 它们都返回一个可观察的对象列表 两个 API 调用都是独立的 因此我想同时进行这两个调用 但为了实现最终结果 我需
  • 哪些类名表明需要重构? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我发现了一些类似的文章th
  • 如何使用R绘制美国所有州的地图以及每个州发生的犯罪数量?

    我仍在学习 R 我想绘制美国各州的地图 并标出每个州发生的犯罪数量的标签 我想创建下面的图像 我使用了以下在线可用的代码 但我无法标记犯罪数量 library ggplot2 library fiftystater data fifty s
  • Java 类型级别注释和私有成员可见性

    我正在尝试外部化 spring 的 baseurl Controller变成静态String控制器类的成员 如果我这样做 我必须声明该成员为公开成员 否则它将不可见 RequestMapping注解 我不明白为什么 注释不是类的一部分吗 有
  • 在 SQLite 中选择随机行

    在 MySQL 中 您可以使用以下语句选择 X 随机行 SELECT FROM table ORDER BY RAND LIMIT X 然而 这在 SQLite 中不起作用 有同等的吗 对于一个很多更好的性能 use SELECT FROM
  • 字符前未转义反斜杠的正确正则表达式是什么?

    假设我想代表 q 或任何其他特定的 反斜杠转义字符 也就是说 我想匹配 q但不是 q 因为后者是反斜杠转义的反斜杠后跟q Yet q会匹配 因为它是一个反斜杠转义的反斜杠 后面跟着一个反斜杠转义的q 嗯 它会匹配 q最后 不是 在一开始 我
  • Pandas:ValueError:无法将浮点 NaN 转换为整数

    I get ValueError 无法将浮点 NaN 转换为整数对于以下内容 df pandas read csv zoom11 csv df x df x astype int x 是 csv 文件中的一列 我看不到任何浮点数 NaN在文
  • 推送到 Github 时遇到问题,无法生成 sh:没有这样的文件或目录

    我在推送到 Github 时遇到了困难 我有一个克隆的存储库 并且我对其进行了更改 我想将其推送回 github 在存储库中时 我执行以下操作 git add 当我没有得到回应时 这似乎有效 然后当我这样做时 git commit m te
  • http.get 和 ISO-8859-1 编码响应

    我即将编写一个 RSS 提要获取器 但遇到了一些字符集问题 与编码相比 加载和解析提要非常容易 我正在加载提要http get我将每个数据事件的块放在一起 后来我用 npm lib 解析整个字符串feedparser它适用于给定的字符串 可
  • Gradle:如何在控制台实时显示测试结果?

    我想查看测试结果 system out err 来自正在测试的组件的日志消息 当他们奔跑时在我运行的同一个控制台中 gradle test 并且不要等到测试完成才查看测试报告 仅在测试完成时生成 因此我无法在测试运行时 tail f 任何内
  • 配置 Maven 以使用带有基本身份验证的 CXF wsdl2java

    我有一个应用程序需要与 SharePoint 的 Web 服务之一集成 该Web服务无法自由访问 需要身份验证 因此 当执行生成源阶段时 我的应用程序中的标准 wsdl2java Maven 插件会给出 HTTP 401 错误 有没有办法设
  • Microsoft Graph 401 未经访问令牌授权

    无法从 Microsoft Graph API 获取数据 private String getUserNamesFromGraph throws Exception String bearerToken Bearer getAccessTo
  • Rails 3.1 资产管道 - 为什么我的图像没有预编译用于生产?

    运行时 rake assets precompile all RAILS ENV production RAILS GROUPS assets 一切都预编译但不是我的 app assets images 我什至尝试将其添加到我的enviro
  • pip install-找不到满足要求的版本

    我正在尝试安装一个名为got使用点 但它一直显示 无法找到满足要求的版本 的错误 我在网上搜索了解决方案 有一些解释说尝试 pip freeze gt requirements txt 但它对我来说仍然是一个黑匣子 这里有什么问题以及我应该
  • Google BQ - 如何更新插入表中的现有数据?

    我正在使用 Python 客户端库在 BigQuery 表中加载数据 我需要更新这些表中的一些已更改的行 但我不知道如何正确更新它们 我想要一些类似的UPSERT功能 仅当行不存在时插入行 否则 更新现有行 在表中使用带有校验和的特殊字段