如何在BigQuery中基于bigquery-public-data创建所属项目下的目标表
公共数据集导入个人BigQuery项目操作步骤
前置准备
操作前需满足以下条件:
- 已注册GCP账号,且个人所属项目已开通BigQuery API
- 持有个人项目的BigQuery数据编辑/管理员权限,可正常创建、写入表资源
方法1:通过Google Cloud控制台可视化操作
- 打开BigQuery控制台,在左侧资源栏的「公共数据集」分类下找到
bigquery-public-data,定位到你需要导入的目标数据集和对应表 - 点击目标表进入详情页,点击页面顶部的「复制」按钮
- 在弹出的复制表配置框中:
- 目标项目选择你自己的个人项目
- 目标数据集选择你个人项目下已创建的目标数据集(如果没有需要先新建数据集)
- 填写目标表名,可选配置是否覆盖已存在的同名表、是否复制表的分区/聚类配置
- 确认配置无误后点击「复制」,等待后台任务完成即可
方法2:运行SQL查询写入个人表
该方法支持按需求筛选字段、过滤数据,灵活性更高:
- 在BigQuery控制台的SQL编辑器中运行以下格式的查询,注意修改对应的项目、数据集、表名和筛选条件:
CREATE OR REPLACE TABLE `你的个人项目ID.你的目标数据集.目标表名` -- 可选配置分区字段、聚类字段,示例:按date分区、按user_id聚类 -- PARTITION BY date -- CLUSTER BY user_id AS SELECT * -- 可自行修改需要查询的字段,减少不必要的扫描 FROM `bigquery-public-data.对应公共数据集名.对应公共表名` -- WHERE 自定义筛选条件
- 点击运行,等待查询完成后数据就会写入你指定的个人项目表中
*注意:该操作会产生对应的查询扫描费用,如果你只需要部分数据建议不要直接SELECT ,添加筛选条件减少扫描量
方法3:通过bq命令行工具操作
适合自动化脚本执行场景:
- 首先确认你已经安装gcloud CLI,且已经通过
gcloud auth login登录并切换到你的个人项目 - 复制全表的话直接运行以下命令:
bq cp bigquery-public-data.公共数据集名.公共表名 你的个人项目ID.目标数据集名.目标表名 - 如果需要筛选数据写入,用bq query命令执行上述SQL语句即可:
bq query --use_legacy_sql=false 'CREATE TABLE你的个人项目ID.目标数据集.目标表名AS SELECT * FROMbigquery-public-data.公共数据集.公共表'
注意事项
- 所有操作需要确保你个人项目的BigQuery配额足够,导入大表前可以先查看表的存储大小,避免超出配额
- 公共数据集本身是公开可访问的,不需要额外申请权限,但写入个人项目的存储会按照你的项目的BigQuery存储费率计费
- 如果需要定期同步公共数据集的更新,可以搭配BigQuery的定时查询功能,定期执行增量写入的SQL语句
内容的提问来源于stack exchange,提问作者Karl Turner
相关产品推荐
相关产品推荐

