如何使用REST请求创建BigQuery视图

时间:2018-09-03 09:08:02

标签: rest view google-bigquery create-view

我尝试使用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创建视图,但是该代码方法在修补视图时会引发异常。

我们非常感谢您的帮助。我宁愿不必在代码中维护两种不同的视图管理方式。

谢谢。

1 个答案:

答案 0 :(得分:3)

从您的请求中删除"type": "VIEW",

这不是输入参数。这是响应中的输出字段。

https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#resource

enter image description here