Проблемы с загрузкой данных в таблицу BigQuery с помощью облачной функции - PullRequest
0 голосов
/ 16 мая 2018

У меня возникают проблемы при попытке загрузить резервную копию хранилища данных в существующую таблицу в 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();
};

1 Ответ

0 голосов
/ 17 мая 2018

Звучит так, как будто вы используете версию библиотеки BigQuery, у которой нет функции load на Table с.Функция load была введена в декабре 2017 года в версии 0.12.0 и ранее называлась import.

...