在Apps脚本中,BigQuery调用在自定义函数中失败

时间:2012-06-01 06:03:07

标签: google-apps-script google-bigquery

我在Apps脚本中编写了一个自定义函数,它使用函数参数构造查询,并调用提供查询的BigQuery服务(我使用API​​密钥启用)。但是当我在电子表格中使用该函数时,它总是返回服务器错误。

error: We're sorry, a server error occurred. Please wait a bit and try again.

这是我的代码(当我通过手动提供变量在调试器中运行它时它起作用):

function GetAge(first_name, last_name) {
  var select_text = "SELECT first_name, last_name, age FROM Testing.FullNames WHERE ";
  var filter_text = "first_name = '" + first_name + "' AND last_name= '" + last_name + "' ";
  var group_text = "GROUP BY 1,2;";
  var query_text = select_text + filter_text + group_text;

  var query = {'query': query_text};
  var response = BigQuery.Jobs.query('<My Project Id>', query);

  var value = response.getRows()[0].getF()[2].getV();

  return value;
}

3 个答案:

答案 0 :(得分:1)

启用了v2 API?首次尝试运行时,是否提示您完成OAuth流程?

注意 - 一旦超过此初始错误,您将需要更改查询参数。查询调用只接受String作为第二个参数:

var response = BigQuery.Jobs.query('project_id', query_text);

答案 1 :(得分:1)

BigQuery服务v2beta1目前仅限于受信任测试人员的子集。如果您改为使用v2版本(它接受字符串查询),它应该可以工作。

答案 2 :(得分:0)

有一个关于如何从Google Apps脚本here调用BigQuery API的教程。