运行 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 时出现登录要求错误