为什么BigQuery导出作业产生内部错误?

时间:2014-04-01 20:17:14

标签: java google-bigquery

我正在尝试使用之前有效的代码将数据从BigQuery导出到GCS:

logger.log("Exporting BigQuery data for date:" + dayString + "<br/>");

JobConfigurationExtract extractConfig = new JobConfigurationExtract();
extractConfig.setDestinationFormat("NEWLINE_DELIMITED_JSON");
String applicationId = ServerUtils.getApplicationId();
String dataFile = "gs://"+applicationId+"_analytics/" + accountName + "-" + dayString + "-*.json";
extractConfig.setDestinationUri(dataFile);

String tableName = dayString.replaceAll("-","_");
TableReference bigQuerytableToExtractFrom = new TableReference().setProjectId(BigQueryUtils.PROJECT_NUMBER).setDatasetId(getDatasetName(accountName)).setTableId(tableName);

extractConfig.setSourceTable(bigQuerytableToExtractFrom);

JobConfiguration config = new JobConfiguration().setExtract(extractConfig);
Job job = new Job().setConfiguration(config);
Job queuedJob = BigqueryUtils.getClient().jobs().insert(BigQueryUtils.PROJECT_NUMBER, job).execute();


String jobIdString = queuedJob.getJobReference().getJobId();
jobIdString = jobIdString.substring(jobIdString.indexOf(':')+1);

return jobIdString;

但是,今天的工作信息总是会返回:

{"errorResult":{"message":"Unexpected. Please try again.","reason":"internalError"},"errors":[{"message":"Unexpected. Please try again.","reason":"internalError"}],"state":"DONE"}

BigQuery今天有问题吗?如果是,那么在预期修复时会有ETA吗?

根据Pentium 10的建议,这里有几个失败的工作ID:job_nGY3gTVibV07Y38PWJRIQ79SxaE,job_lJJBUibG_W42Lrl8Bwux0_RD_yw,

1 个答案:

答案 0 :(得分:4)

啊......问题是您尝试导出的表已通过流式导入写入。这当前不起作用,因为我们的导出管道不知道如何读出流缓冲区。我提交了一个错误。

作为一种解决方法,如果您复制表(通过bq cp,通过Web UI),它应该生成一个可导出的表,尽管可能缺少最后几分钟的数据。如果您想要一个绝对最新版本的表,可以使用allowLargeResults和目标表运行select *查询,然后将其导出。