2014-12-08 58 views
1

如果未创建数据集并且查询引用它,BigQuery将返回400错误请求。BigQuery返回400是查询中找不到的数据集

{ 
    "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未找到,因为未创建数据集。有没有办法改变这种行为。

UPDATE:

400错误的请求仅在非常复杂的查询,其中数据集/表是在含有表通配符内查询/查询丢失的情况下返回。

对于像这样的查询"SELECT * FROM [no_dataset.no_table]"返回404 Not Found。

下面的查询返回400错误的请求

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

回答

1

404/NOTFOUND错误引用应该不会在查询中存在的表时返回。

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

我已经在我们的内部跟踪器上记录了一个问题来解决这个问题。感谢您的错误报告!

相关问题