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

Posted

技术标签:

【中文标题】如何在 App Script 中加入两个表并将数据提取到大查询现有表中【英文标题】:How to Join two tables in App Script and fetch the data into big query existing table 【发布时间】:2016-09-14 00:01:48 【问题描述】:

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

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】:

在 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

【讨论】:

以上是关于如何在 App Script 中加入两个表并将数据提取到大查询现有表中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Magento 2.3 中加入两个自定义表

如何在 symfony 5 中加入两个表?

如何在 mvc 3.0 EF 5 中加入两个模型并在视图中显示它们

如何在我的 Android 应用程序中加入两个 SQLite 表?

如何在 C# Web API 中加入两个表

如何在 Nhibernate 中加入两个表