BigQuery tables.insert 404 错误
Posted
技术标签:
【中文标题】BigQuery tables.insert 404 错误【英文标题】:BigQuery tables.insert 404 Error 【发布时间】:2016-01-11 20:08:23 【问题描述】:在 BigQuery 文档中,它说 tables.insert 创建了一个新的空表 (https://cloud.google.com/bigquery/docs/reference/v2/tables/insert)
但是当我尝试在页面中测试该端点时,我得到一个 404 Table not found 错误。
请求:
POST https://www.googleapis.com/bigquery/v2/projects/myProject/datasets/temp/tables?key=YOUR_API_KEY
"expirationTime": "1452627594",
"tableReference":
"tableId": "myTable"
回应:
404 OK
- Show headers -
"error":
"errors": [
"domain": "global",
"reason": "notFound",
"message": "Not found: Table myProject.myTable"
],
"code": 404,
"message": "Not found: Table myProject:temp.myTable"
我确信对 404 错误有一个合理的解释,但我无法理解它,因为我正在尝试创建该表,如果不存在应该没问题?
谢谢
【问题讨论】:
【参考方案1】:您在请求正文中提供的信息不足以让 BigQuery 创建新表
至少 - 添加架构 - 如下所示(仅作为示例):
"schema":
"fields": [
"name": "page_event",
"mode": "repeated",
"type": "RECORD",
"fields": [
"name": "id",
"type": "STRING"
,
"name": "description",
"type": "STRING"
]
]
在Tables resource 中查看更多信息,了解您可以在请求正文中提供的内容
以下是上面应该可以工作的虚拟模式的示例:
POST https://www.googleapis.com/bigquery/v2/projects/myProject/datasets/temp/tables?key=YOUR_API_KEY
"schema":
"fields": [
"name": "page_event",
"mode": "repeated",
"type": "RECORD",
"fields": [
"name": "id",
"type": "STRING"
,
"name": "description",
"type": "STRING"
]
]
,
"expirationTime": "1452560523000",
"tableReference":
"tableId": "myTable"
编辑:
从你的问题中它不能与"expirationTime": "1452627594"
一起工作的原因是因为它指向过去
【讨论】:
用 cloud.google.com/bigquery/docs/reference/v2/tables/insert 尝试过,仍然收到 "message": "Not found: Table myProject:temp.myTable" 我还在 Tables 资源中检查了进一步所需的参数。我不确定我是否理解正确,但例如参数“externalDataConfiguration.sourceFormat”被标记为“必需”,但我不想要任何 externalDataConfiguration,我想要的只是一个带有到期日期的空表。无论如何,谢谢,我会继续努力,直到成功为止。 以上示例对我有用,没有任何问题。试着看看你能做些什么不同的事情。我假设您实际上拥有您使用的那些 ProjectID 和 DatasetID 在我的回答中查看更正 - 删除你的到期时间,它会起作用 - 我实际上没有检查它提供的号码的正确性,只是从你的问题中复制 那么,是否可以创建一个带有过期时间的空表?如果我添加该参数,它会给出 404。如果我按照您的指示在添加表后运行“补丁”或“更新”处理程序,则表从 BigQuery UI 中消失,很奇怪。 1.是的 - 我能够创建模式空表(以前从未这样做过/使用过) 2. 在任何情况下,补丁都允许您在不重写表的情况下修补模式(例如)。 3. 确保您提供适当的过期时间(甚至暂时跳过它),我认为最好在首次创建时提供架构以上是关于BigQuery tables.insert 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
Snowpipe 无法读取由 BigQuery 导出的 DEFLATE 压缩的 AVRO
BigQuery 从 bq 命令行工具加载数据 - 如何跳过标题行