Что
Кто-нибудь знает лучший способ определения / разграничения представления или запроса, написанных на устаревшем или стандартном SQL, с использованием API BigQuery?
Единственный метод, который пришел в голову, - запустить SQL со свойством dryRun
, установленным на true
(это приведет к минимальным накладным расходам на обработку), и, если произойдет сбой, с сообщением, содержащим фразу «Попробуйте использовать стандартный SQL "Я могу предположить, что это был устаревший SQL, иначе он работает и является стандартным. Э.Г.
{
...
"code": 400,
"message":
"Invalid table name: `my-project.my_dataset.hello_world`
[Try using standard SQL (https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql)]."
}
Почему
Я поддерживаю слой интеграции (написанный в Cloud Functions - Node.js 8), который переносит данные с помощью API BigQuery.
К сожалению, сообществу пользователей разрешено писать представления и запросы либо в стандартном, либо в устаревшем SQL. Из-за многочисленных ограничений при работе с устаревшим SQL я хотел бы определить, какие запросы и представления пишутся с его использованием, что позволяет мне соответствующим образом изменить метод обработки.