使用Apps脚本将Google BigQuery中的表格提取到Google云端存储

时间:2018-01-19 13:35:37

标签: google-apps-script google-bigquery google-cloud-storage

我正在尝试使用Apps脚本将现有BigQuery表提取到云存储桶,因为我需要为频繁运行安排它。云设置(计费,api已启用)已完成,当我通过Web UI提取表时,一切正常。

请帮我查看Apps脚本代码。下面你可以看到我在写什么。它不使用任何错误消息,但它不会在Storage中创建json文件。

function SQLTest() {

var projectId = 'xx_my_project';
var datasetId = 'xx_my_dataset';      
var tableId = 'xx_my_table';   
var destinationUris = 'gs://my_bucket/my_file.json';
var destinationFormat = 'NEWLINE_DELIMITED_JSON';


var job = {            
  configuration: {

extract: {
  sourceTable: {
    projectId: projectId,
    datasetId: datasetId,
    tableId: tableId
  }
  ,
 destinationUris: [destinationUris],
 destinationFormat: destinationFormat

}  
} 
}
} ;

2 个答案:

答案 0 :(得分:0)

除非我遗漏了什么,否则你没有在这里调用任何API。

请按照本指南了解如何从Apps脚本中调用Bigquery API: https://developers.google.com/apps-script/advanced/bigquery

请按照本指南提取表格: https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert

答案 1 :(得分:0)

完全更正的脚本

function SQLTest() {

var projectId = 'xx_my_project';
var datasetId = 'xx_my_dataset';      
var tableId = 'xx_my_table';   
var destinationUris = 'gs://my_bucket/my_file.json';
var destinationFormat = 'NEWLINE_DELIMITED_JSON';          
var job = {            
configuration: {

extract: {
  sourceTable: {
    projectId: projectId,
    datasetId: datasetId,
    tableId: tableId
  }
  ,
 destinationUris: [destinationUris],

  destinationFormat: destinationFormat

}  
}
};

var request = BigQuery.Jobs.insert(job,projectId);
}