BigQuery返回400是查询中找不到的数据集

时间:2014-12-08 07:55:24

标签: google-bigquery

如果未创建数据集且查询引用它,则BigQuery将返回400 Bad Request。

  {
    "code" : 400,
    "errors" : [ {
      "domain" : "global",
      "location" : "query",
      "locationType" : "other",
      "message" : "Error preparing subsidiary query: Dataset deft-virtue-628:account_875 not found",
      "reason" : "invalidQuery"
    } ],
    "message" : "Error preparing subsidiary query: Dataset deft-virtue-628:account_875 not found"
  }

理想情况下,它应返回404 Not found,因为未创建数据集。有没有办法改变这种行为。

更新

仅在查询非常复杂的情况下返回400 Bad Request,其中包含表通配符的内部查询/查询中缺少数据集/表。

对于此类查询"SELECT * FROM [no_dataset.no_table]"将返回404 Not Found。

以下查询返回400 Bad Request

SELECT * FROM (TABLE_QUERY(dataset_exists, 'table_id CONTAINS "not_exist"'))

1 个答案:

答案 0 :(得分:1)

引用查询中不存在的表时,应返回404 / notFound错误。

请注意,今天的大多数查询都是如此。例如,查询select a from doesNotExist.doesNotExist为表“doesNotExist.doesNotExist”返回404 / notFound。但是,我确实看到一些具有更高级查询功能的案例,将此错误与400 / invalidQuery混淆。

我在内部跟踪器上记录了一个问题来解决此问题。感谢错误报告!