从脚本访问 BigQuery 保存的项目查询

Posted

技术标签:

【中文标题】从脚本访问 BigQuery 保存的项目查询【英文标题】:Accessing BigQuery Saved Project Query from Script 【发布时间】:2017-01-23 15:24:13 【问题描述】:

我正在尝试使用 Google Apps 脚本通过一系列选择/插入语句来处理和重塑 BigQuery 数据

我的 15 多条 Select 语句很复杂,为了便于维护,最好属于 BigQuery(而不是嵌入在 javascript 中)。我想从 Google Scripts 中引用 BigQuery 中的 Saved Project Query 来代替嵌入式查询。所以下面的查询语句

body = 

    configuration: 
    
        query: 
        
            query: 'SELECT foo, bar FROM FooBarProjcet;',
            writeDisposition:'WRITE_APPEND',
            destinationTable: 
            
                projectId: projectId,
                datasetId: datasetId,
                tableId: 'TestScript'
            
        ,
    

会变成类似

    body = 

    configuration: 
    
        query: 
        
            query: BigQuery.ProjectQuery.FooBarSelect,
            writeDisposition:'WRITE_APPEND',
            destinationTable: 
            
                projectId: projectId,
                datasetId: datasetId,
                tableId: 'TestScript'
            
        ,
    

这可能吗? BigQuery 保存的项目查询是否会暴露给 API?

【问题讨论】:

【参考方案1】:

据我所知 - 保存和共享查询旨在通过查询链接在用户之间共享查询,而不是无论如何执行该链接。 因此,在您的情况下,您可以将查询保存为视图,然后按如下方式使用它们

   query: 
    
        query: 'SELECT * FROM YourView',
        writeDisposition:'WRITE_APPEND',
        destinationTable: 
        
            projectId: projectId,
            datasetId: datasetId,
            tableId: 'TestScript'
        
    ,

【讨论】:

把这个留给 OP,以防他们需要更多关于 BigQuery 视图的信息 - cloud.google.com/bigquery/querying-data#views

以上是关于从脚本访问 BigQuery 保存的项目查询的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Big Query cli 运行保存的查询并将结果导出到 CSV?

将数组保存到Big Query

使用 Google Apps 脚本将查询中的数据加载到 Big Query - 缺少必需参数

通常如何从 Google Apps 脚本访问 BigQuery

使用应用程序脚本在 Big Query 中创建视图 |错误:对 bigquery.tables.insert 的 API 调用失败并出现错误:缺少必需的参数(第 21 行

Big Query 未成功执行