如何在Big Query沙箱中覆盖写入数据至已有表?
覆盖写入BigQuery已有表的实操方法
一、通过BigQuery UI界面操作
1. CSV文件覆盖导入
- 打开目标表的详情页面,点击顶部的导入按钮
- 数据源选择「本地文件」,上传你的CSV文件后,在「目标」区域确认选中的是已存在的目标表(不要勾选“创建新表”选项)
- 展开高级选项,找到「写入模式」,选择「覆盖现有表(WRITE_TRUNCATE)」
- 确认CSV列顺序、数据类型与目标表完全匹配后,点击「运行」完成覆盖
2. Google Sheet覆盖导入
- 进入目标表详情页,点击导入,数据源选择「Google Drive」并关联对应的Sheet文件
- 在「目标」区域指定已有的目标表,展开高级选项,设置「写入模式」为「覆盖现有表(WRITE_TRUNCATE)」
- 注意:需确保Sheet的列结构、数据类型与目标表一致,避免导入失败
提示:之前找不到覆盖选项,大概率是因为你走了“创建新表”的流程,而非从已有表的入口发起导入操作。
二、使用bq命令行工具
1. CSV覆盖导入
bq load --replace --source_format=CSV \ 你的项目ID.你的数据集ID.目标表名 \ 本地CSV文件路径 \ # 若表结构已匹配,可省略schema文件参数
--replace参数即为指定覆盖现有表。
2. Google Sheet覆盖导入
bq load --replace --source_format=GOOGLE_SHEETS \ 你的项目ID.你的数据集ID.目标表名 \ "https://docs.google.com/spreadsheets/d/你的SheetID/edit" \ --range="Sheet1!A1:Z"
三、使用SQL语句(针对Google Sheet数据)
需先创建BigQuery与Google Sheet的连接,再通过以下方式覆盖:
方法1:INSERT OVERWRITE
INSERT OVERWRITE 你的项目ID.你的数据集ID.目标表名 SELECT * FROM EXTERNAL_QUERY( 'projects/你的项目ID/locations/你的区域/connections/你的连接名', 'SELECT * FROM `你的SheetID.Sheet1`' );
方法2:CREATE OR REPLACE TABLE
CREATE OR REPLACE TABLE 你的项目ID.你的数据集ID.目标表名 AS SELECT * FROM EXTERNAL_QUERY( 'projects/你的项目ID/locations/你的区域/connections/你的连接名', 'SELECT * FROM `你的SheetID.Sheet1`' );
内容的提问来源于stack exchange,提问作者Michael Wright
相关产品推荐
相关产品推荐

