Как передать оператор запроса в bigquery в среде node.js - PullRequest
1 голос
/ 12 марта 2019

Во время большого запроса параметры функции в операторе SQL Я хочу обновить результат оператора SQL, вставив его как @ имя переменной. Однако не существует метода для поддержки node.js.

Для python существуют методы, подобные следующему примеру. Вы можете использовать параметры функции как @ имена переменных.

query = "" "
SELECT word, word_count
FROM `bigquery-public-data.samples.shakespeare`
WHERE corpus = @ corpus
AND word_count> = @min_word_count
ORDER BY word_count DESC;"" "
query_params = [
bigquery.ScalarQueryParameter ('corpus', 'STRING', 'romeoandjuliet'),
bigquery.ScalarQueryParameter ('min_word_count', 'INT64', 250)]
job_config = bigquery.QueryJobConfig ()
job_config.query_parameters = query_params

связанный документ: https://cloud.google.com/bigquery/docs/parameterized-queries#bigquery-query-params-python

Я хотел бы попросить совета.

Ответы [ 2 ]

3 голосов
/ 17 марта 2019

Клиент BigQuery node.js поддерживает параметризованные запросы, когда вы передаете их с ключом params в опциях. Только что обновил документы , чтобы показать это. Надеюсь, это поможет!

Пример:

const sqlQuery = `SELECT word, word_count
      FROM \`bigquery-public-data.samples.shakespeare\`
      WHERE corpus = @corpus
      AND word_count >= @min_word_count
      ORDER BY word_count DESC`;

const options = {
  query: sqlQuery,
  // Location must match that of the dataset(s) referenced in the query.
  location: 'US',
  params: {corpus: 'romeoandjuliet', min_word_count: 250},
};

// Run the query
const [rows] = await bigquery.query(options);
0 голосов
/ 12 марта 2019

есть два способа использования переменных в запросе / строке.

  1. Выход из режима использования узла-myql Проверьте эту ссылку: https://github.com/mysqljs/mysql/blob/master/Readme.md#escaping-query-values

Пример:

connection.query('select * from ??', ['employee'], function (error, results, fields) {
  if (error) throw error;
  // ...
});

  1. или если вы просто хотите поместить переменные для подготовки необработанного запроса, тогда вы используете функцию es6, то есть многострочную строку Пример,
Const tableName = `employee`;

// used backticks
Const exampleString = `select * from ${tableName}`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...