我将此问题作为一个新问题发布,因为它与我在此问题上的原始问题略有不同。
我有一个应用程序脚本来在BigQuery中运行查询。该脚本正在运行并与BigQuery进行通信,但该作业并未按预期工作。我目前在BigQuery中收到以下错误:
已存在:表fiery-cabinet-111 ****:***。Test4(错误代码:重复)
这是脚本:
layout_gravity
答案 0 :(得分:1)
您正在编写查询结果的表已存在。您需要将WRITE_DISPOSITION
设置为:
默认值为WRITE_EMPTY。
https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.query
configuration.query.writeDisposition
答案 1 :(得分:0)
您的选择查询中似乎缺少数据集名称。更改查询以包括数据集名称
query: 'SELECT *' +
'FROM 11****101.Test2;',
并通过查看执行记录和日志来验证语法
请注意,如果您具有访问权限并且语法(即项目,表和数据集名称)正确,您的代码将只使用BigQuery记录表插入作业,然后完成。
完成的脚本与完成的BigQuery作业不同,因为您必须轮询作业状态。例如,您可以尝试插入已存在的表,这将成功发布作业,但在执行时失败(取决于设置的参数)。
请尝试以下操作以获取已完成的查询状态
var queryResults = BigQuery.Jobs.insert(job, projectId);
var jobId = queryResults.jobReference.jobId;
var response = 'Running'
var sleepTimeMs = 500;
while (response != 'DONE') {
Utilities.sleep(sleepTimeMs);
response = BigQuery.Jobs.get(projectId, jobId).status.state;
}
Logger.log('Job status : ' + queryResults.status);