Следуя примеру из

https://github.com/gsuitedevs/apps-script-samples/blob/master/advanced/bigquery.gs#L26-L28

Я пытался выполнить запрос в bigquery, но получаю "Недопустимое имя таблицы: my_db:my_dataset.my_table [Попробуйте использовать стандартный SQL ( https://cloud.google.com/bigquery/docs/reference/standard-sql/enpting-standard-sql)]. (строка 68, файл "bigquery")

Что мне нужно сделать, чтобы заставить это работать?

1
Joyce 4 Окт 2018 в 20:37

1 ответ

Лучший ответ

Если вы хотите выполнить следующий запрос:

SELECT TOP(word, 300) AS word, COUNT(*) AS word_count ' +
      'FROM publicdata:samples.shakespeare WHERE LENGTH(word) > 10;'

В консоли BigQuery, которая предоставляется в Legacy Dialect, убедитесь, что вы включили параметр: Use Legacy SQL in Параметры

Или вы можете перенести запрос из LEGACY в STANDARD SQL:

 SELECT APPROX_TOP_COUNT(word, 300) AS word, COUNT(*) AS word_count 
    FROM `publicdata.samples.shakespeare` WHERE LENGTH(word) > 10;

Кроме того, если вы хотите запускать СТАНДАРТНЫЕ SQL-запросы из Google App Script, добавьте флаг useLegacySql, как показано ниже:

var job = {
configuration: {
  query: {
    query: 'SELECT APPROX_TOP_COUNT(word, 300) AS word, COUNT(*) AS word_count +
        FROM `publicdata.samples.shakespeare` WHERE LENGTH(word) > 10;',
    useLegacySql: false
    }
3
rtbf 4 Окт 2018 в 19:23