如何在App Script中加入两个表并将数据提取到大查询现有表中

时间:2016-09-14 00:01:48

标签: sql google-apps-script google-bigquery

使用谷歌应用脚​​本在谷歌大查询中加入两个表格是一种简单的方法,并将结果保存在谷歌大查询的同一项目文件夹中的现有表格中。

function saveQueryToTable1() {
  var projectId = 'instagram-1314';
  var datasetId = 'Divya_Test';
  var tableId = 'Join';
  var job = {
    configuration: {
      query: {
        query: '((SELECT * FROM [instagram-1314:Divya_Test.Join1_Test]) UNION (SELECT * FROM [instagram-1314:Divya_Test.Join2_Test]))' ,
        destinationTable: {
          projectId: projectId,
          datasetId: datasetId,
          tableId: tableId
       }
      }
    }
 };

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

我尝试了上面的代码,但它没有用。任何人都可以帮我解决这个问题,或者有任何想法,如果可能的话? 谢谢

1 个答案:

答案 0 :(得分:0)

在BigQuery Legacy SQL(您在示例中使用)中没有UNION关键字 - 相反,您应该使用逗号,如下例所示

((SELECT * FROM [instagram-1314:Divya_Test.Join1_Test], [instagram-1314:Divya_Test.Join2_Test]))  

有关此

的更多详情,请参阅FROM clause

以上方法将花费您两次扫描(两个表),每TB 5美元。如果你有小桌子,你很可能不用担心

如果您的表很大,但具有相同的模式(从示例中听起来如此) - 您可以考虑使用复制与查询。复制是免费的。

查看Jobs: insert的更多信息,您可以使用configuration.copy代替configuration.query,而不是现在的示例