我正在尝试使用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
}
}
}
} ;
答案 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);
}