我想使用insert API方法将查询作为作业插入。我想使用javascript API,我似乎没有得到任何相同的例子。当我尝试传递这样的查询时:
function insertQueryAsJob() {
var request = ggapi.client.bigquery.jobs.insert({
'projectId':project_id,
'query': 'SELECT * FROM [test.test] LIMIT 10'
});
request.execute(function(response) {
$('#result_box').html(JSON.stringify(response, null));
});
}
我收到如下错误:
Job configuration must contain exactly one job-specific configuration object
(e.g., query, load, extract, spreadsheetExtract), but there were 0
Google没有关于Javascript使用情况的文档。有人可以告诉我吗?
答案 0 :(得分:1)
我仍然需要尝试使用Javascript,但在此期间还有一个与语言无关的答案:
查看https://developers.google.com/bigquery/docs/reference/v2/jobs/insert上jobs.insert的参考资料,以及https://developers.google.com/bigquery/querying-data上的示例。
上述问题试图插入:
{
'projectId':project_id,
'query': 'SELECT * FROM [test.test] LIMIT 10'
}
问题是jobs.insert不接受'查询',而是带有作业配置的主体:
body = {
'configuration': {
'query': {
'query': 'SELECT * FROM [test.test] LIMIT 10'
}
}
}
现在有一个结构良好的身体,有一个工作配置:
ggapi.client.bigquery.jobs.insert(
projectId=project_id,
body=body
);
答案 1 :(得分:1)
此link提供了有关如何调用Javascript API的详细信息。基于此,'body'参数应作为'resource'属性发送。所以:
var request = gapi.client.bigquery.jobs.insert({
'projectId':project_id,
resource:{
'configuration': {
'query': {
'query': 'SELECT * FROM [test.test] LIMIT 10'
}
}
}});
工作正常。