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