gcloud-sdk命令" bq load"可以将本地文件作为输入。
在命令的输出中,看起来该文件首先被上传到谷歌云存储某处,然后才安排bigquery加载作业。鉴于bigquery schedule-load-job端点的REST api也只需要" gs://" url,并且load-job需要数据可以访问,我很确定这样上传到云存储(虽然我无法找到任何明确的文档)描述" bq加载"使用本地文件。
我的问题是:有人可以告诉我哪里本地文件暂时上传到?它是gcloud项目云存储桶之一,还是其他地方?是否保证在加载作业完成后删除它?
我要求数据仅保存在特定的地理区域,因此(假定的)临时存储的位置非常重要。
我可以将数据明确上传到存储,然后使用" bq load"参考云存储,但随后需要安排删除数据,这是一个小小的不便。具有"生命周期规则的专用存储"至少可以在1天后删除,但是" bq加载.. localfile"方法更清洁..
答案 0 :(得分:0)
如果您运行bq --help
,则可以看到其中global bq_flags
之一是--location
。它的定义如下:
- location:“创建数据集或确定作业应在何处运行时使用的默认地理位置(否则时忽略) 适用。)”
如果你跑:
bq load --location=eu {your-table} {your-source}
对于位于欧盟的数据集,工作应该成功,所有相关的工作都应该在欧盟运行。