【发布时间】:2020-07-01 10:08:27
【问题描述】:
我已经使用网络用户界面为 BigQuery 表设置了标签。但是,当我使用 Python 或 Nodejs 客户端库(请参阅下面的代码示例)将新数据附加到表中时,标签会消失。这是预期的行为吗?如果是这样,有没有办法在不丢失标签的情况下更新表数据? 节点:
const metadata = {
sourceFormat: "NEWLINE_DELIMITED_JSON",
autodetect: true,
writeDisposition: "WRITE_APPEND",
};
const [job] = await bigquery
.dataset(datasetId)
.table(tableId)
.load(filename, metadata);
Python:
data.to_gbq(
'datasetname.tablename',
project_id='projectid',
if_exists='replace'
)
【问题讨论】:
-
你能分享你尝试过的 Python 代码或者你的代码更大的 sn-p 吗?
-
我尝试使用 Python 重现您的问题,但它对我来说工作正常
-
hhmmm 这就是我所希望的行为,这是个好消息,谢谢!我添加了正在使用的 Python 代码。我猜 if_exists='replace' 实际上会破坏表,而不仅仅是替换数据。我的 Nodejs 示例是专门附加数据的,所以我确信这种行为是错误的。我已经为 Nodejs 客户端填写了一个问题。
-
是的,这个替换属性类似于“删除表并创建另一个表”。现在它是有道理的。关于节点代码,它应该可以工作
-
我正在等待对我在 nodejs 库中提出的问题的回复。我认为接受的答案应该指定是否可以使用 nodejs 库保留标签,或者它是否是类似的错误。不过,您的回答非常有帮助,我给了您赞成票。
标签: google-bigquery