Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Bigquery API:使用destinationTable运行查询不会保存结果_Google Apps Script_Google Bigquery - Fatal编程技术网

Google apps script Bigquery API:使用destinationTable运行查询不会保存结果

Google apps script Bigquery API:使用destinationTable运行查询不会保存结果,google-apps-script,google-bigquery,Google Apps Script,Google Bigquery,我正在尝试使用谷歌应用程序脚本来自动化每日聚合过程。其思想是在一个数据集中的几个表上运行,并将其结果保存到第二个数据集中的一个表中。我的用户对这两个相关数据集都有权限 我的要求如下 var request = { "maxResults": 10000, "useQueryCache": false, "destinationTable": { "projectId": "project_name_obf

我正在尝试使用谷歌应用程序脚本来自动化每日聚合过程。其思想是在一个数据集中的几个表上运行,并将其结果保存到第二个数据集中的一个表中。我的用户对这两个相关数据集都有权限

我的要求如下

        var request = {
        "maxResults": 10000,
        "useQueryCache": false,
        "destinationTable": {
              "projectId": "project_name_obfuscated",
              "datasetId": "project_114151_shared",
              "tableId": "test123"
            },
        "writeDisposition": "WRITE_TRUNCATE",
        "createDisposition": "CREATE_IF_NEEDED",
        "allowLargeResults": true,
        "query": "query syntax here"
      };

  var queryResults = BigQuery.Jobs.query(request, "project_name_obfuscated");
(出于保密原因,我混淆了项目名称和查询本身)

查询实际上运行良好,但是,它没有保存到我定义的指定项目/数据集/表中

在BQ UI中,我看到如下内容:

Job ID: project_name_obfuscated:job_NhkQpi110p3i5yoOO7nzXp3tTKY
Start Time: 5:47pm, 20 Oct 2014
End Time: 5:47pm, 20 Oct 2014
Bytes Processed: 0 B
Destination Table: project_name_obfuscated:_138c3340e691065e8db0b55781b5a41c6b4bcd49.anonev_SOiiRC10lfetj000kcj4rmXNc5E
var configuration = {
  "query": {
    "useQueryCache": false,
    "destinationTable": {
          "projectId": "project_name_obfuscated",
          "datasetId": "project_114151_shared",
          "tableId": "test123"
        },
    "writeDisposition": "WRITE_TRUNCATE",
    "createDisposition": "CREATE_IF_NEEDED",
    "allowLargeResults": true,
    "query": "query syntax here"
  }
};
var job = {
    "configuration": configuration
};

var jobResult = BigQuery.Jobs.insert(job, "project_name_obfuscated");

var jobId = jobResult.jobReference.jobId;

// The job might not actually be done; wait until it is marked
// complete.
var sleepTimeMs = 500;
while (true) {
    Utilities.sleep(sleepTimeMs);
    sleepTimeMs *= 2;
    queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId, {
      "maxResults": 10000);
    if (!queryResults.jobComplete) {
      break;
    }
}

知道我做错了什么吗?

您使用的参数只能通过Jobs.query方法中的Jobs.insert获得。Jobs.query用于快速、同步查询,不支持Jobs.insert(异步版本)中提供的全部选项

尝试以下方法:

Job ID: project_name_obfuscated:job_NhkQpi110p3i5yoOO7nzXp3tTKY
Start Time: 5:47pm, 20 Oct 2014
End Time: 5:47pm, 20 Oct 2014
Bytes Processed: 0 B
Destination Table: project_name_obfuscated:_138c3340e691065e8db0b55781b5a41c6b4bcd49.anonev_SOiiRC10lfetj000kcj4rmXNc5E
var configuration = {
  "query": {
    "useQueryCache": false,
    "destinationTable": {
          "projectId": "project_name_obfuscated",
          "datasetId": "project_114151_shared",
          "tableId": "test123"
        },
    "writeDisposition": "WRITE_TRUNCATE",
    "createDisposition": "CREATE_IF_NEEDED",
    "allowLargeResults": true,
    "query": "query syntax here"
  }
};
var job = {
    "configuration": configuration
};

var jobResult = BigQuery.Jobs.insert(job, "project_name_obfuscated");

var jobId = jobResult.jobReference.jobId;

// The job might not actually be done; wait until it is marked
// complete.
var sleepTimeMs = 500;
while (true) {
    Utilities.sleep(sleepTimeMs);
    sleepTimeMs *= 2;
    queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId, {
      "maxResults": 10000);
    if (!queryResults.jobComplete) {
      break;
    }
}

需要一个小的修正以标记为已解决-配置的全部内容需要位于另一个“查询”参数后面(例如配置->查询->)。否则,您将从API中获得错误。var configuration={“query”:{“useQueryCache”:false,谢谢。已修复(看起来您建议的更新由于某种原因被SO版主拒绝,但我还是申请了)。