运行 BigQuery 的应用脚本脚本时出现神秘重复

Posted

技术标签:

【中文标题】运行 BigQuery 的应用脚本脚本时出现神秘重复【英文标题】:Mystery Duplications when running an AppScript script for BigQuery 【发布时间】:2018-08-01 02:44:31 【问题描述】:

以下代码应将基于查询的数据集附加到统一表中,但是它当前正在复制此数据并附加它。我相信这是谷歌方面的回归问题。任何帮助都将不胜感激!

谢谢 - 马克

function runQuery1() 
  var configuration = 
     "query": 
     "useQueryCache": false,
     "destinationTable": 
        "projectId": "projectID",
        "datasetId": "datasetID",
       "tableId": "Consolidated"
      ,
    "writeDisposition": "WRITE_APPEND",
    "allowLargeResults": true,
    "useLegacySql": false,
     "query": "SELECT cast(PARSE_DATETIME('%e/%m/%E4Y %H:%M',Date) as Date) as Date, Centre FROM Source.Temp",
     
  ;

  var job = 
    "configuration": configuration
   ;

  var jobResult = BigQuery.Jobs.insert(job, "projectID");
 Logger.log(jobResult);
  

runQuery1();

【问题讨论】:

使用 bq ls -j --all 检查您的工作历史记录,看看您是否发现查询的多次调用。使用 bq --format=prettyjson show -j <job ID> 查看特定作业的查询文本。 【参考方案1】:

为防止重复作业运行,请考虑声明作业 ID:

var configuration = 
  ...
  "jobReference": 
    "jobId": string,
  ...

来自文档:

如果您使用自己的作业 ID,则可以随时检查作业的状态,并且可以在相同的作业 ID 上重试,以确保作业恰好开始一次。

https://cloud.google.com/bigquery/docs/running-jobs#generate-jobid

【讨论】:

以上是关于运行 BigQuery 的应用脚本脚本时出现神秘重复的主要内容,如果未能解决你的问题,请参考以下文章

从 Google Apps 脚本访问 GoogleSheet 链接的 BigQuery 表时出现“获取驱动器凭据时权限被拒绝”错误

使用服务帐户 Google BigQuery API 时出现登录要求错误

尝试重定向我的python脚本的输出时出现语法错误[关闭]

从 Google 脚本将数据插入 BigQuery:遇到“”

在bash脚本中重定向到文件时出现奇怪的字符[重复]

运行此脚本时出现错误代码 401,我该怎么办?