来自java的流插入:templateSuffix

时间:2016-04-26 16:10:33

标签: java google-bigquery

我想使用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是今天的日期)

我是如何使它工作的?

我应该在哪里了解什么是错的?

由于

1 个答案:

答案 0 :(得分:1)

首先,基表projectId:datasetId.MyTable应该存在,并且应该已经有一个模式。这是BigQuery如何知道如何找到创建的模板化表的模式。

其次,您应该在请求中传递MyTable而不是MyTable20160426作为表格ID。

第三,缓存表的存在(或不存在)。所以如果你得到一个"没找到"错误,然后创建表,你仍然得到一个"未找到"错误长达半小时。

听起来你可能会等待再试一次。如果这不起作用,请提供您正在使用的实际项目,数据集和表格ID,并通过电子邮件将详细信息发送到tigani@google.com,我可以帮助您了解正在发生的事情。