You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python向BigQuery插入CSV数据时数据被覆盖问题排查

问题定位

原有数据被覆盖的直接原因是LoadJobConfig中write_disposition参数配置错误,你当前设置的bigquery.WriteDisposition.WRITE_TRUNCATE逻辑为:写入新数据前,先清空目标表的全部存量数据,仅保留本次加载的CSV内容,必然会导致旧数据被覆盖。

BigQuery 三种写入规则说明

BigQuery 加载任务支持三种写入行为,可根据业务场景选择:

  • WRITE_TRUNCATE:清空目标表所有存量数据后写入新数据,适合全量重刷表的场景
  • WRITE_APPEND:完全保留目标表存量数据,将新数据追加到表末尾,是你当前追加CSV数据场景需要使用的配置
  • WRITE_EMPTY:仅当目标表为空时才执行写入,若表内已有存量数据则直接抛出错误终止任务,适合做防误覆盖校验
修正后的配置代码

将job_config段替换为如下内容即可实现追加写入,不会覆盖原有数据:

job_config = bigquery.LoadJobConfig(
    source_format=bigquery.SourceFormat.CSV,
    skip_leading_rows=1,
    autodetect=True,
    write_disposition=bigquery.WriteDisposition.WRITE_APPEND
)

提示:非明确需要全量替换表数据的场景,不要使用WRITE_TRUNCATE配置,避免误删存量数据。

内容的提问来源于stack exchange,提问作者Dede Soetopo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:57:20