如何将Google Drive的CSV文件导入BigQuery作为原生表?
直接将Google Drive的CSV导入BigQuery原生表的方法
当然可以直接把Drive里的CSV文件导入成BigQuery的原生表,不用非得借助Google Cloud Storage!我之前也踩过这个坑,一开始误操作进了外部数据源的专属入口,导致只能创建外部表,后来才发现是操作路径的问题。
方法一:通过BigQuery控制台UI操作
- 打开BigQuery控制台,找到你要存放表的目标数据集,右键点击数据集,选择「创建表」
- 在「数据源」区域:
- 选择「Google Drive」作为数据源类型
- 粘贴CSV文件的Drive共享链接(注意要确保链接有可访问权限),或者点击「浏览」直接从Drive中选择文件
- 在「目标表」区域:
- 填写表名,关键是把「表类型」从默认的「外部表」改成「原生表」(这里就是你之前没找到的选项!别从外部数据源的入口进,一定要从数据集的创建表入口操作)
- 接下来配置CSV的参数:比如是否有表头、分隔符、编码等,也可以勾选「自动检测模式」让BigQuery自动识别字段类型
- 最后点击「创建表」,等待导入完成后,数据就会作为原生表存储在BigQuery中,和原Drive文件彻底脱离关系
方法二:使用bq命令行工具导入
如果你习惯用命令行,可以用bq load命令直接导入,示例如下:
bq load \ --source_format=CSV \ --autodetect \ --skip_leading_rows=1 \ my_project.my_target_dataset.my_target_table \ "https://drive.google.com/file/d/你的文件ID/view?usp=sharing"
- 参数说明:
--autodetect:自动检测CSV的字段类型和表头--skip_leading_rows=1:如果CSV第一行是表头,就加这个参数跳过- 链接部分要确保BigQuery能访问:要么把Drive文件设为「知道链接的人可查看」,要么给BigQuery的服务账号(格式是
你的项目编号@bigquery-robot.iam.gserviceaccount.com)添加Drive文件的查看权限
注意事项
- 权限问题:一定要确保BigQuery有权限访问你的Drive文件,否则会导入失败
- 大文件场景:如果是几十GB以上的超大文件,虽然可以直接导入,但Google Cloud Storage的传输稳定性会更好;但中等规模的文件直接从Drive导入完全没问题
- 原生表优势:导入完成后,数据就存储在BigQuery的托管存储中,后续你可以删除Drive里的原文件,也不会影响BigQuery的表,完美解决你担心的Drive存储不足问题
内容的提问来源于stack exchange,提问作者il_Cozzimo
相关产品推荐
相关产品推荐

