我正在尝试使用node.js API从Google云端功能创建外部表。该功能将从GCS存储桶更改中触发。我可以创建一个本机表,但不能创建外部表。在导入here的node.js api中,configuration.load元数据没有将其指定为外部表的设置。这是我到目前为止创建本机表的代码。我的问题是“如何使用Node.js Api为GCS存储桶创建外部表”
const projectId = "N"
const bigquery = BigQuery({
projectId: projectId
});
const storage = Storage({
projectId: projectId
});
const dataset = bigquery.dataset("dataset");
const table = dataset.table("test_data");
const bucket = storage.bucket("my-bucket");
const file = bucket.file("2017/03/02/*");
let job;
// Imports data from a GCS file into a table
return table.import(file,{"sourceFormat":"AVRO"})
.then((results) => {
job = results[0];
console.log(`Job ${job.id} started.`);
return job.promise();
})
.then((results) => {
console.log(`Job ${job.id} completed.`);
return results;
});
答案 0 :(得分:1)
我在阅读了一些文档之后找到了解决方案。联合表通过加载/导入它们不起作用。它们只是用externalConfig设置。所以这段代码对我有用
const dataset = bigquery.dataset("dataset");
var options = {
"externalDataConfiguration": {
"sourceUris": ["gs://my-bucket/2017/03/20/*"],
"sourceFormat": "AVRO",
"maxBadRecords": 0,
"autodetect": true
}
}
dataset.createTable("test_data_20170320",options, function(err, table, apiResponse){
console.log(err)
console.log(table)
console.log(apiResponse)
})