2014-12-08 32 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混淆。

我已經在我們的內部跟蹤器上記錄了一個問題來解決這個問題。感謝您的錯誤報告!

相關問題