У меня возникают проблемы при попытке загрузить резервную копию хранилища данных в существующую таблицу в BigQuery. Я получаю следующую ошибку:
TypeError: bigquery.dataset(...).table(...).load is not a function
Я следую одному из примеров в облаке BigQuery Api repo.
Не уверен, что я использую это неправильно, но я пытаюсь добиться, чтобы моя облачная функция обновляла эту таблицу 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();
};