将工作从谷歌云存储插入谷歌大查询时路径无效
Posted
技术标签:
【中文标题】将工作从谷歌云存储插入谷歌大查询时路径无效【英文标题】:Invalid Path while inserting job from google cloud storage to google bigquery 【发布时间】:2013-12-17 10:57:12 【问题描述】:我正在尝试通过 HTTP Post 请求插入作业,但我收到 Invalid path 错误。
我的请求正文如下:
"configuration":
"load":
"sourceUris": [
"gs://onianalytics/PersData.csv"
],
"schema":
"fields": [
"name": "Name",
"type": "STRING"
,
"name": "Age",
"type": "INTEGER"
]
,
"destinationTable":
"datasetId": "Test_Dataset",
"projectId": "lithe-anvil-404",
"tableId": "tb_test_Pers"
,
"jobReference":
"jobId": "10",
"projectId": "lithe-anvil-404"
对于 sourceuri 参数,我传递“gs://onianalytics/PersData.csv”,其中 onianalytics 是我的存储桶名称,PersData.csv 是我的 csv 文件(我想从中将数据上传到 google bigquery)。
我收到以下回复:
"status":
"state": "DONE",
"errorResult":
"reason": "invalid",
"message": "Invalid path: gs://onianalytics/PersData.csv"
,
"errors": [
"reason": "invalid",
"message": "Invalid path: gs://onianalytics/PersData.csv"
]
,
"statistics":
"creationTime": "1387276603674",
"startTime": "1387276603751",
"endTime": "1387276603751"
请解释为什么会出现这个错误?
【问题讨论】:
【参考方案1】:您的存储桶是否与已激活 BigQuery 服务且您请求令牌的 projectId 相同?如果没有,您是否尝试过为该项目启用读/写访问权限?
【讨论】:
是的,我的存储桶位于激活了 BigQuery 服务的同一 projectid 下。如何为该项目启用读/写访问权限。 在请求令牌时,您是否包括 googleapis.com/auth/cloud-platform 范围以在 Google Cloud Platform 上查看和管理您的数据? 是的,这个范围已经包含了。事实上,我是通过“试试看!”插入这份工作的。 developers.google.com/bigquery/docs/reference/v2/jobs/insert 上提供的链接。添加了以下范围:googleapis.com/auth/bigquery、googleapis.com/auth/cloud-platform、googleapis.com/auth/cloud-platform、googleapis.com/auth/devstorage.read_only、googleapis.com/auth/devstorage.read_only。请帮我解决这个问题,我被卡住了。 奇怪。在您的 Google API 控制台中,您是否在 API 和 Auth 下启用了 Google Cloud Storage? 是的,它已启用。事实上,我可以通过 API 在 goggle 云存储中创建存储桶和对象。但是当我尝试从上传的对象(这是一个 csv 文件)中插入作业时,我得到了“无效路径”错误。以上是关于将工作从谷歌云存储插入谷歌大查询时路径无效的主要内容,如果未能解决你的问题,请参考以下文章
从谷歌云存储中的 csv 加载数据作为 bigquery 'in' 查询