我已成功创建了自己的职位ID的Google查询职位。并且能够再次使用作业ID并且昨天获得了成功的结果。 但同样的工作ID不能正常工作。 我在google bigquery UI中尝试了带有项目ID的作业ID,得到的错误与下面的“404”相同
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "Not Found: Table<projectId:some random generated String.some random generated String>"
}
],
"code": 404,
"message": "Not Found: Table <projectId:some random generated String.some random generated String>
}
}
请帮帮我,约伯有没有续航时间?或创建作业ID以永久工作时所需的任何特定配置?
我正在使用Google Bigquery的Java API来执行上述实现。找到下面使用的逻辑: 查询职位创建逻辑:
String query = "SELECT count(*) AS TOTAL_RECORDS FROM :dataset.:tablename;"
String expectedJobId = "someuniqueString";
JobConfigurationQuery queryConfig = new JobConfigurationQuery()
.setQuery(query);
queryConfig.setUseQueryCache(true);
JobConfiguration config = new JobConfiguration()
.setQuery(queryConfig);
JobReference jobReference = new JobReference();
jobReference.setJobId(expectedJobId);
jobReference.setProjectId(PROJECT_ID);
Job job = new Job().setId(expectedJobId).setConfiguration(
config);
job.setJobReference(jobReference);
job = bigqueryService.jobs()
.insert(PROJECT_ID, job).execute();
使用上面的JobId检索结果:
GetQueryResults queryRequest = bigqueryService.jobs()
.getQueryResults(PROJECT_ID, expectedJobId);
GetQueryResultsResponse queryResponse = queryRequest.execute();
答案 0 :(得分:1)
您查看的错误不是查找作业但查找结果表的问题。正如您所注意到的,getQueryResults()
对于特定工作只能工作24小时;之后,为存储结果而创建的表将过期并清理。
如果您发现这种情况发生在24小时内,您可能需要检查以确保作业实际成功完成。您可以使用bigqueryService.jobs.get()
查找作业状态。
如果这没有帮助,如果您发送作业ID,我们(BigQuery团队)可以在服务器日志中查找该作业的内容。
答案 1 :(得分:0)
有时问题是数据集位置不正确。在我的代码中,我有一个配置,我根据它在执行查询时设置数据集位置。我弄乱了位置并开始收到此错误。经过2个小时的调试终于找到问题所在。
更正了数据集的位置,效果很好。