尝试使用JAVA API设置加载作业时,我收到503 - 后端错误。
我尝试加载的文件位于Google云端存储上,如果我尝试从BigQuery网络界面加载数据,告诉我要从Google云端存储加载,一切 的工作原理。
我使用API的方式可能有问题。
以下是代码:
String url = "[GOOGLE_CLOUD_STORAGE_URL];
Job job = new Job();
JobConfiguration config = new JobConfiguration();
JobConfigurationLoad loadConfig = new JobConfigurationLoad();
config.setLoad(loadConfig);
job.setConfiguration(config);
List<String> sources = new ArrayList<String>();
sources.add("gs://" + url);
loadConfig.setSourceUris(sources);
TableReference tableRef = new TableReference();
tableRef.setDatasetId("Foo");
tableRef.setTableId("Bar");
tableRef.setProjectId(PROJECT_ID);
loadConfig.setDestinationTable(tableRef);
List<TableFieldSchema> fields = new ArrayList<TableFieldSchema>();
TableFieldSchema field = new TableFieldSchema();
..... A LOT OF FIELDS
field.setName("real_dollars_balance");
field.setType("float");
fields.add(field);
TableSchema schema = new TableSchema();
schema.setFields(fields);
loadConfig.setSchema(schema);
Insert insert = bigquery.jobs().insert(PROJECT_ID, job);
insert.setProjectId(PROJECT_ID);
JobReference jobId = insert.execute().getJobReference();
由于插入操作失败,我无法获得有效的Job引用,我在BigQuery上看不到任何新工作。 我在BigQuery上进行了正确的身份验证,我可以浏览数据集和表。 我想念一下吗?
编辑 - “execute()”方法调用抛出一个包含以下内容的执行,即GoogleJsonResponseException:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 503 Service Unavailable
{
"code" : 503,
"errors" : [ {
"domain" : "global",
"message" : "Backend Error",
"reason" : "backendError"
} ],
"message" : "Backend Error"
}
而且,它永远不会变得“可用”。 我真的不知道我错过了什么。 您是如何设置自动程序以在Google BigQuery上加载数据的?谷歌上的文档并不像我预期的那样明确。