Понимание больших таблиц запросов - PullRequest
0 голосов
/ 12 ноября 2018

Я все еще изучаю большой запрос, и у меня есть несколько вопросов о том, как работают наборы данных и таблицы. Я выполнил запрос и сохранил результаты в таблице BigQuery. Теперь, является ли эта таблица снимком данных, которые я извлекла, или будет ли таблица обновляться, если новые данные поступают в соответствии с исходным запросом?

Если это снимок. Может кто-нибудь предложить некоторую помощь с обновлением / заменой данных в таблице BigQuery программно с использованием Nodejs.

Спасибо за любую помощь

1 Ответ

0 голосов
/ 12 ноября 2018

Таблица представляет собой «снимок» и не будет обновляться автоматически. Что касается использования Node для программного обновления / замены таблицы, я бы предложил создать для этого отдельный вопрос и постараться дать как можно больше подробностей. Сэмплов на репозитории Node GitHub может быть достаточно для начала работы. Например :

function loadCSVFromGCS(datasetId, tableId, projectId) {
  // [START bigquery_load_table_gcs_csv]
  // Imports the Google Cloud client libraries
  const {BigQuery} = require('@google-cloud/bigquery');
  const {Storage} = require('@google-cloud/storage');

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const projectId = "your-project-id";
  // const datasetId = "my_dataset";
  // const tableId = "my_table";

  /**
   * This sample loads the CSV file at
   * https://storage.googleapis.com/cloud-samples-data/bigquery/us-states/us-states.csv
   *
   * TODO(developer): Replace the following lines with the path to your file.
   */
  const bucketName = 'cloud-samples-data';
  const filename = 'bigquery/us-states/us-states.csv';

  // Instantiates clients
  const bigquery = new BigQuery({
    projectId: projectId,
  });

  const storage = new Storage({
    projectId: projectId,
  });

  // Configure the load job. For full list of options, see:
  // https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.load
  const metadata = {
    sourceFormat: 'CSV',
    skipLeadingRows: 1,
    schema: {
      fields: [
        {name: 'name', type: 'STRING'},
        {name: 'post_abbr', type: 'STRING'},
      ],
    },
  };

  // 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
      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);
    });
  // [END bigquery_load_table_gcs_csv]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...