我想用這個例子的代碼中插入一行:的BigQuery:無效的表ID
https://developers.google.com/bigquery/streaming-data-into-bigquery#streaminginsertexamples
我收到一個錯誤:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Invalid table ID \"projectid:datasetid.tableid\".",
"reason" : "invalid"
} ],
"message" : "Invalid table ID \"projectid:datasetid.tableid\"."
}
項目,數據集和表都存在。當我從錯誤報告中複製實際projectid:datasetid.tableid並將其粘貼到BigQuery Web UI中時,它可以正常工作。投影中有一個' - ',其餘的是字母數字。爲什麼API會抱怨Web UI接受的ID?
更新回答Jordan的問題。這是我的電話:
TableDataInsertAllResponse response =
bigquery
.tabledata()
.insertAll(projectId, datasetId, table.getId(), content)
.execute();
在我調用這個之前,我通過獲取它們來確保項目,數據集和表格都存在。然後我使用表的實際ID。
新的信息:原來(當你懷疑)的table.getId()返回完全合格的ID,包括項目和數據集。當我對縮短的ID進行硬編碼以排除它們時,它就起作用了。
這聽起來像你發送一個名稱作爲表名稱,而不是將它分成組件。如果情況並非如此,您可以發送您打給您的實際代碼嗎? –
嗨,喬丹。更新。 (順便說一句,謝謝你們加入SO的努力。) –