我尝试使用Google Tables: insert页面使用以下值(经过过滤)构建和发送REST请求:
请求参数
projectId:prj-name
datasetId:dataset_name
请求正文
{
"view": {
"useLegacySql": false,
"query": "SELECT * FROM `prj-name.dataset_name.hello_world`"
},
"type": "VIEW",
"tableReference": {
"projectId": "prj-name",
"datasetId": "dataset_name",
"tableId": "v_hello_world"
}
}
This post建议这些参数应该起作用,但是Google返回以下响应:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Output field used as input"
}
],
"code": 400,
"message": "Output field used as input"
}
}
我已经尝试过REST属性,并且我认为400问题是由于包含tableReference属性引起的。但是如果我排除它,则会出现以下替代错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter is missing"
}
],
"code": 400,
"message": "Required parameter is missing"
}
}
在此错误消息中未命名“必填参数”真是可惜!
我可以使用this code method创建视图,但是该代码方法在修补视图时会引发异常。
我们非常感谢您的帮助。我宁愿不必在代码中维护两种不同的视图管理方式。
谢谢。
答案 0 :(得分:3)
从您的请求中删除"type": "VIEW",
。
这不是输入参数。这是响应中的输出字段。
https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#resource