我想使用templateSuffix将我的java代码中的数据流式传输到BigQuery表,但我无法使其正常工作。我的代码:
return bigquery.tabledata()
.insertAll(
projectId,
datasetId,
tableId,
new TableDataInsertAllRequest()
.setTemplateSuffix(templateSuffix)
.setRows(singletonList(row))
).execute();
当我使用projectId,datasetId,MyTable20160426和20160426运行它时,我收到错误:
"message" : "404 Not found: Table projectId:datasetId.MyTable20160426"
当我使用projectId,datasetId,MyTable和20160426运行它时,我收到错误:
"message" : "404 Not found: Table projectId:datasetId.MyTable"
MyTable表已经存在并且已经在日期模板化了(我使用了GCS的批量上传)(20160426是今天的日期)
我是如何使它工作的?
我应该在哪里了解什么是错的?
由于
答案 0 :(得分:1)
首先,基表projectId:datasetId.MyTable
应该存在,并且应该已经有一个模式。这是BigQuery如何知道如何找到创建的模板化表的模式。
其次,您应该在请求中传递MyTable
而不是MyTable20160426
作为表格ID。
第三,缓存表的存在(或不存在)。所以如果你得到一个"没找到"错误,然后创建表,你仍然得到一个"未找到"错误长达半小时。
听起来你可能会等待再试一次。如果这不起作用,请提供您正在使用的实际项目,数据集和表格ID,并通过电子邮件将详细信息发送到tigani@google.com,我可以帮助您了解正在发生的事情。