首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在向表中添加新列后,BigQuery批量更新json文件中现有的表行

在向表中添加新列后,BigQuery批量更新json文件中现有的表行
EN

Stack Overflow用户
提问于 2021-08-27 14:44:10
回答 1查看 831关注 0票数 0

我有一个bigQuery表,它有大约200万行从JSON文件中加载。JSON文件中的实际字段为10,但表中有7列与初始DDL相同。现在,我修改了表,并添加了其余三列。更改后,新添加的列中的值将被填充为NULL。

现在,我想在现有的200万行中回填数据,但只有这三个新添加的列具有来自json文件的实际数据。如何大容量更新表,使现有列值保持不变,并且只更新新列值。

注意:表启用了流缓冲区,并且表没有分区。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-28 21:24:09

现在,我想在现有的200万行中回填数据,但只对这三个新添加的列使用json文件中的实际数据进行回填。

因为加载数据是免费的,所以我会用WRITE_TRUNCATE选项重新加载整个表,以覆盖现有的数据。

你说的话让我困惑,因为:

  • 如果你的2M行和JSON文件中的数据相同,你为什么关心它们是否被触摸?
  • ,如果你的2M行在

表中被以某种方式改变了,你如何期望JSON文件中的行在每行的基础上与修改后的数据匹配(以回填丢失的列)?

-更新:根据注释,似乎已以某种方式修改了加载的行。然后:

对于现有数据,如果没有一个(逻辑)主键可用于匹配行,则从技术上讲,“匹配和更新”是不可能的。如果您的现有数据确实有一个逻辑主键,并且您不介意成本,您可以将完整表加载到一个临时表中,然后使用DML来回填缺少的列。

对于未来的数据加载,如果您希望加载是增量的(无论是在行上还是在列上),最好是让加载的表保持不变,以便它表示“完全事实”,并将“更改后的行”保存在一个单独的表中,前提是您有一个与之匹配的逻辑主键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68955350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档