使用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

我想使用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

谷歌没有关于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中也不起作用。请参阅下面我的答案(我根据您的答案进行了另一次尝试)以了解正确的配置。