使用bq命令行将Google Sheets数据导入BigQuery的操作方法问询
使用bq CLI将Google Sheets数据导入BigQuery操作指南
前提条件
- 已完成gcloud CLI及bq组件的安装与认证,当前激活账号同时持有目标Google Sheets的查看权限、目标BigQuery数据集的写入权限
- 若使用服务账号操作,需将服务账号邮箱添加至Google Sheets的共享列表,授予查看权限
两种实现方式
方式1:创建外部表直接映射Google Sheets数据
无需导入数据,表内容会随Sheets实时更新,适合需要同步源表变动的场景,命令格式如下:
bq mk \ --external_table_definition="GOOGLE_SHEETS:<表格ID>@<工作表gid,首表为0>" \ --schema=<字段1:类型,字段2:类型...> \ --skip_leading_rows=1 \ <目标数据集名>.<目标表名>
参数说明:
--skip_leading_rows=1:适配Sheets首行为表头的场景,无表头可删除该参数- 表格ID可从Sheets链接中提取,格式为
https://docs.google.com/spreadsheets/d/<表格ID>/edit中d/与/edit之间的字符串
方式2:导入数据为BigQuery原生表
数据一次性导入到BQ存储,后续Sheets变动不会同步,适合固定数据的分析场景,命令格式如下:
bq load \ --source_format=GOOGLE_SHEETS \ --skip_leading_rows=1 \ <目标数据集名>.<目标表名> \ "https://docs.google.com/spreadsheets/d/<表格ID>/export?format=csv" \ <字段1:类型,字段2:类型...>
常见报错排查
- 权限报错:优先执行
gcloud auth list确认当前激活账号,核对该账号是否在Google Sheets的共享列表内 - 类型转换报错:检查Sheets对应列是否存在格式不一致的内容,比如整数列混入字符串,可调整字段类型为STRING规避,或清理源数据
内容的提问来源于stack exchange,提问作者kalitsov
相关产品推荐
相关产品推荐

