使用javascript API将查询作为作业插入
我想使用API方法将查询作为作业插入。我想使用javascript API,但我似乎没有得到任何相同的示例。当我尝试传入这样一个查询时:使用javascript API将查询作为作业插入,javascript,google-bigquery,Javascript,Google Bigquery,我想使用API方法将查询作为作业插入。我想使用javascript API,但我似乎没有得到任何相同的示例。当我尝试传入这样一个查询时: function insertQueryAsJob() { var request = ggapi.client.bigquery.jobs.insert({ 'projectId':project_id, 'query': 'SELECT * FROM [test.test] LIMIT 10' }); reque
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
谷歌没有关于Javascript使用的文档。有人能告诉我吗?我仍然需要尝试使用Javascript,但同时有一个独立于语言的答案: 请查看jobs.insert at的参考,以及中的示例 上述问题试图插入:
{
'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
);
现在有了一个结构良好的主体和作业配置:
body = {
'configuration': {
'query': {
'query': 'SELECT * FROM [test.test] LIMIT 10'
}
}
}
ggapi.client.bigquery.jobs.insert(
projectId=project_id,
body=body
);
这提供了如何调用Javascript API的详细信息。基于此,“body”参数应作为“resource”属性发送。因此:
var request = gapi.client.bigquery.jobs.insert({
'projectId':project_id,
resource:{
'configuration': {
'query': {
'query': 'SELECT * FROM [test.test] LIMIT 10'
}
}
}});
很好用 感谢您提供的指针,但这在Javascript中也不起作用。请参阅下面我的答案(我根据您的答案进行了另一次尝试)以了解正确的配置。