Я пытаюсь написать облачную функцию, которая загружает файлы GCS, соответствующие шаблону, в BigQuery. Все примеры, которые я могу видеть и в справочнике API, являются методом загрузки, который задает определенное имя файла c через метод bigquery.dataset.table.load.
Какой метод можно использовать для запуска загрузки файла с использованием подстановочных знаков? Я знаю, что могу указать источник метаданных uri, но не могу увидеть пример метода загрузки до go. Любая помощь приветствуется.
Вот мой код.
exports.importReadyToIngestFiles = (event, context) => {
const pubsubMessage = event.data;
console.log(Buffer.from(pubsubMessage, 'base64').toString());
const bucketName = Buffer.from(pubsubMessage, 'base64').toString();
const {BigQuery} = require('@google-cloud/bigquery');
const {Storage} = require('@google-cloud/storage');
//specify projectID and bigquery datasetID below
const projectId = "test-3";
const datasetId = "Data";
const filename = "p_*";
const gcsFile = `${bucketName}/p_*`;
const tableId = "numeric";
const bigquery = new BigQuery({
projectId: projectId,
});
const storage = new Storage({
projectId: projectId,
});
let job;
// Loads data from a Google Cloud Storage file into the table
bigquery
.dataset(datasetId)
.table(tableId)
.load(storage.bucket(bucketName).file(filename))
.then(results => {
job = results[0];
console.log(`Job ${job.id} started.`);
// Wait for the job to finish
return job;
})
.then(metadata => {
// Check the job's status for errors
const errors = metadata.status.errors;
if (errors && errors.length > 0) {
throw errors;
}
})
.then(() => {
console.log(`Job ${job.id} completed.`);
})
.catch(err => {
console.error('ERROR:', err);
});
// callback();
};
ОБНОВЛЕНИЕ: Аа, я выяснил, просмотрев ошибку истории заданий BigQuery, что мой файл разделен конвейером, поэтому произошло несоответствие столбцов. Теперь, где я могу найти, как указать разделитель? Это только я или документация nodejs bigquery api немного неясно.