写入附加的大查询公式运行但不返回任何内容?

Posted

技术标签:

【中文标题】写入附加的大查询公式运行但不返回任何内容?【英文标题】:Big query formula to write-append runs but doesn't return anything? 【发布时间】:2016-09-15 05:52:18 【问题描述】:
function appendJoin12() 
  var job = 
    configuration: 
      query: 
        query: 'SELECT * FROM [projectId:datasetId.Join2_Test],
                              [projectId:datasetId.Join1_Test] ',
        writeDisposition:'WRITE_APPEND',
        destinationTable: 
          projectId: 'projectId',
          datasetId: 'datasetId',
          tableId: 'tableId'
       
     
   
 ;

 var queryResults = BigQuery.Jobs.insert(job, projectId);
 Logger.log(queryResults.status);

这是文件Join1_Test的内容

ID  Name
1   cat
2   dog
3   mouse
4   turtle
5   fish

这是文件Join2_Test的内容

ID  Name
6   apple
7   orange
8   kiwi
9   banana
10  peach

这是我想要Join12的RESULTING文件的内容(这是tableID)

ID  Name
1   cat
2   dog
3   mouse
4   turtle
5   fish
6   apple
7   orange
8   kiwi
9   banana
10  peach

上面的代码运行但什么也没返回,为什么以及如何解决这个问题。这是在谷歌表格中使用的。

没有错误信息,目标表为空

代码与标准大查询中的附加和写入选项一起使用,其中显示“显示选项”,但这种方法的原因是自动化它。

上述选择查询有效。

如果以上正确,我是否需要启用某些功能或更改某些设置。

【问题讨论】:

【参考方案1】:

我不得不声明这个过程对我来说完全正常,我无法复制这个问题。

insert 是异步的。

此方法立即返回。您必须调用 jobs.get() 并检查 作业完成时要了解的作业状态。你包括一个和 您的工作资源中只有以下子属性之一。这 您包含的子属性定义了它的作业类型。

您可能会遇到的情况是,由于脚本是异步的,它会立即完成,并且插入作业被删除但从未完全执行完成。 在记录结果并终止之前,您可能需要等到函数完成

var jobId = queryResults.jobReference.jobId;
while (!queryResults.jobComplete) 
  Utilities.sleep(1000);
  queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId);

【讨论】:

以上是关于写入附加的大查询公式运行但不返回任何内容?的主要内容,如果未能解决你的问题,请参考以下文章

具有动态内容的动态附加 iframe 在内容元素上写入 jquery 事件句柄不起作用

如何在 Access VBA 中运行附加查询以根据表单字段中的数量创建一定数量的相同记录?

计算工作天数的公式,但不包括Google表格中的重叠天数或部分重叠天数

如何从应用引擎将写入附加到谷歌云存储文件?

为啥附加到调试器的运行如此缓慢?

使用Spark SQL数据帧写入方法附加MySQL表行