我在尝试将数据存储备份加载到BigQuery中的现有表时遇到问题。我收到以下错误:
TypeError: bigquery.dataset(...).table(...).load is not a function
我正在关注BigQuery cloud Api回购中的一个示例。
我不确定我是否以错误的方式使用它,但我想要实现的只是让我的云功能从Data Store转储中更新此BigQuery表,而不是每天删除和创建 - 这似乎是反击我以前做的很有成效。
这是我的代码:
exports.processFile = function (event, callback) {
const BigQuery = require('@google-cloud/bigquery');
const Storage = require('@google-cloud/storage');
const bucketName = 'nyt-links-backup-dev';
const filename = event.data.name;
const tableId = 'links_data_tbl';
const projectId = 'nyt-sartre-dev';
// Instantiates clients
const bigquery = new BigQuery({
projectId: projectId,
});
const storage = new Storage({
projectId: projectId,
});
const datasetId = 'sartre_sublink_dataset';
const dataset = bigquery.dataset(datasetId);
const metadata = {
sourceFormat: 'AVRO',
};
// Loads data from a Google Cloud Storage file into the table
bigquery
.dataset(datasetId)
.table(tableId)
.load(storage.bucket(bucketName).file(filename), metadata)
.then(results => {
const job = results[0];
// load() waits for the job to finish
assert.equal(job.status.state, 'DONE');
console.log(`Job ${job.id} completed.`);
// Check the job's status for errors
const errors = job.status.errors;
if (errors && errors.length > 0) {
throw errors;
}
})
.catch(err => {
console.error('ERROR:', err);
});
callback();
};
答案 0 :(得分:2)
听起来您正在使用一个版本的BigQuery库,该版本在load
上没有Table
功能。 load
功能于2017年12月在version 0.12.0引入,之前称为import
。