我有一个Google App脚本,可以通过从Google云端存储中获取更新的数据来自动更新Bigquery中的表格。
function loadCloudStorageFileToBigQuery(source,ProjectId, datasetId, tableId, schema) {
try{
source="xxxxx";
ProjectId="xxxxxx";
datasetId="xxxxxx";
tableId="xxxxxxx";
schema={"configuration.load.autodetect":'true'};
var tableReference = BigQuery.newTableReference();
tableReference.setProjectId(ProjectId);
tableReference.setDatasetId(datasetId);
tableReference.setTableId(tableId);
var load = BigQuery.newJobConfigurationLoad();
load.setDestinationTable(tableReference);
load.setSourceUris([source]);
load.setSourceFormat('CSV');
load.setMaxBadRecords(0);
load.setWriteDisposition('WRITE_APPEND');
var configuration = BigQuery.newJobConfiguration();
configuration.setLoad(load);
var newJob = BigQuery.newJob();
newJob.setConfiguration(configuration);
var job = BigQuery.Jobs.insert(newJob, ProjectId);
}catch(err){
Logger.log('Table upload error: %s', err);
}
}
脚本似乎工作正常,因为我可以在Big查询中看到作业历史记录中的错误。该错误表示未定义架构。我想将架构设置为自动检测。有人可以建议我需要在我的脚本中进行更改吗?
答案 0 :(得分:1)
添加" load.setAutodetect(true);"
更多细节: https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.load