那么有人可以提出如何更新一组行的想法吗?
I understand the concept of query -> new table, then dumping the "old" table and re-naming the "new", but to be honest this is very hokey.
I don't see anything in the documentation, web, or in the new ideas that will lead me to believe in the appearance of an "update" statement either.
Thoughts anyone?
[更新此答案已过时]
BigQuery目前不支持对各行进行直接更新.您可以附加到表,并且可以截断/覆盖表,但是不能将更新应用于单个行,同时保持表的其余部分不变.
您提到的流程(创建新表,替换旧表)是一种合理的方法.如果有帮助,请注意您不需要两个单独的步骤来用新表替换旧表.由于BigQuery以原子方式应用作业副作用,因此可以通过将最终复制作业上的writeDisposition设置为WRITE_TRUNCATE来一步替换旧表.例如,您可以执行以下操作:
query table -> table with WRITE_TRUNCATE
Run Code Online (Sandbox Code Playgroud)
就像更新一样,您应该注意到这对旧表具有破坏性.但是,如果您未更改架构,则可以使用快照装饰器从截断发生之前的时间开始读取表.
在执行此更新过程时,您可以使针对"table"运行查询作业,并确保这些作业可以看到旧内容或新内容,两者之间没有不一致或错误的状态.
| 归档时间: |
|
| 查看次数: |
13766 次 |
| 最近记录: |